laatzen/LaaProductionWeb/LaaProduction.Personalization/SoftwareManager.cs
2024-09-18 15:36:12 +02:00

86 lines
3.2 KiB
C#

namespace LaaProduction.Personalization
{
using LaaProduction.Personalization.Interfaces;
using LaaProduction.Personalization.Models;
using LaaProduction.Personalization.Repositories.Interfaces;
using System;
using System.Collections.Generic;
public class SoftwareManager : ISoftwareManager
{
private readonly IFunctionsRepository functionsRepository;
private readonly ISoftwareRepository softwareRepository;
public SoftwareManager(IFunctionsRepository functionsRepository, ISoftwareRepository softwareRepository)
{
this.functionsRepository = functionsRepository;
this.softwareRepository = softwareRepository;
}
public void AddVersion(Int16 softwareId, String assemblyName, Int32 majorV, Int32 minorV, Int32 buildV, DateTime validUntil, String description)
=> this.softwareRepository.AddVersion(softwareId, assemblyName, majorV, minorV, buildV, validUntil, description);
public void DeleteVersion(Int32 versionId)
=> this.softwareRepository.Delete(versionId);
public void EditVersion(Int32 versionId, DateTime? validUntil, String description)
=> this.softwareRepository.EditVersion(versionId, validUntil, description);
public IEnumerable<String> GetFunctions()
=> this.functionsRepository.All()
?? Array.Empty<String>();
public IEnumerable<String> GetFunctions(String token)
=> this.functionsRepository.Find(token)
?? Array.Empty<String>();
public IEnumerable<Object> ListSoftwares()
=> this.softwareRepository.List()
?? Array.Empty<SoftwareItem>();
public Object SoftwareDeteils(Int32 versionId)
{
var softwareDetails = this.softwareRepository.Details(versionId);
if (softwareDetails != null)
{
softwareDetails.Versions = this.softwareRepository.Versions(softwareDetails.SoftwareId);
softwareDetails.Functions = this.softwareRepository.Functions(softwareDetails.SoftwareId);
}
return softwareDetails;
}
public void UpdateFunction(Int16 softwareId, Int32 functionId, String function, IEnumerable<Int16> employees)
{
if (this.functionsRepository.Exists(softwareId, functionId))
{
this.functionsRepository.DeleteEmployeesFunctions(functionId);
if (String.IsNullOrWhiteSpace(function))
{
this.functionsRepository.DeleteFunction(functionId);
}
else
{
this.functionsRepository.UpdateFunction(functionId, function);
this.functionsRepository.AddEmployeesFunctions(functionId, employees);
}
}
else
{
if (!String.IsNullOrWhiteSpace(function))
{
functionId = this.functionsRepository.AddFunction(softwareId, function);
if (functionId > 0)
{
this.functionsRepository.AddEmployeesFunctions(functionId, employees);
}
}
}
}
}
}