115 lines
5.1 KiB
C#
115 lines
5.1 KiB
C#
using LCU.Api.Internal.DispatcherLib.Repositories;
|
|
using Microsoft.Data.SqlClient;
|
|
using System.Collections.Generic;
|
|
|
|
namespace LCU.Api.Internal.Dispatcher.Services
|
|
{
|
|
public class CleanUpJobSettingService : ICleanUpJobSettingService
|
|
{
|
|
private readonly ICleanUpJobSettingRepository _cleanUpJobSettingRepository;
|
|
private readonly IUnitOfWork _unitOfWork;
|
|
|
|
public CleanUpJobSettingService(IUnitOfWork unitOfWork,
|
|
ICleanUpJobSettingRepository cleanUpJobSettingRepository)
|
|
{
|
|
_unitOfWork = unitOfWork;
|
|
_cleanUpJobSettingRepository = cleanUpJobSettingRepository;
|
|
}
|
|
|
|
public async Task<IEnumerable<CleanUpJobSetting>> GetAsync()
|
|
{
|
|
try
|
|
{
|
|
return await _cleanUpJobSettingRepository.ListAsync();
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Log.Error(exception, "Failure retrieving CleanUpJobSetting.");
|
|
throw new ServiceException("Failure retrieving CleanUpJobSetting.");
|
|
}
|
|
}
|
|
|
|
public async Task<CleanUpJobSetting> GetByCleanUpJobSettingIdAsync(int cleanUpJobSettingId)
|
|
{
|
|
try
|
|
{
|
|
return await _cleanUpJobSettingRepository.FindByCleanUpJobSettingIdAsync(cleanUpJobSettingId);
|
|
}
|
|
catch (ArgumentNullException exception)
|
|
{
|
|
Log.Error(exception, $"Failure getting dispatcher Clean Up Job Settings by Id. CleanUpJobSettingId was null");
|
|
return null;
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Log.Error(exception, "Failure retrieving dispatcher Clean Up Job Settings. CleanUpJobSettingId: {@cleanUpJobSettingId}", cleanUpJobSettingId);
|
|
throw new ServiceException($"Failure retrieving dispatcher Clean Up Job Settings. CleanUpJobSettingId: {cleanUpJobSettingId}");
|
|
}
|
|
}
|
|
|
|
public async Task<CleanUpJobSetting> SaveAsync(CleanUpJobSetting request)
|
|
{
|
|
try
|
|
{
|
|
var result = await _cleanUpJobSettingRepository.AddAsync(request);
|
|
await _unitOfWork.CompleteAsync();
|
|
return result;
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Log.Error(exception, "Failure saving dispatcher Clean Up Job Settings. CleanUpJobSettingId: {@request.CleanUpJobSettingId}", request.CleanUpJobSettingId);
|
|
throw new ServiceException($"Failure saving dispatcher Clean Up Job Settings. CleanUpJobSettingId: {request.CleanUpJobSettingId}");
|
|
}
|
|
}
|
|
|
|
public async Task<CleanUpJobSetting> UpdateAsync(CleanUpJobSetting request)
|
|
{
|
|
try
|
|
{
|
|
var existing = await GetByCleanUpJobSettingIdAsync(request.CleanUpJobSettingId);
|
|
if(existing == null)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
existing.CompletionDaysPast = request.CompletionDaysPast;
|
|
_cleanUpJobSettingRepository.Update(existing);
|
|
await _unitOfWork.CompleteAsync();
|
|
|
|
return existing;
|
|
}
|
|
catch (SqlException sqlException)
|
|
{
|
|
Log.Error(sqlException, "SQL Failure updating dispatcher Clean Up Job Settings. CleanUpJobSettingId: {@request.CleanUpJobSettingId}", request.CleanUpJobSettingId);
|
|
throw new ServiceException($"SQL Failure updating dispatcher Clean Up Job Settings. CleanUpJobSettingId: {request.CleanUpJobSettingId}");
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Log.Error(exception, "SQL Failure updating dispatcher Clean Up Job Settings. CleanUpJobSettingId: {@request.CleanUpJobSettingId}", request.CleanUpJobSettingId);
|
|
throw new ServiceException($"SQL Failure updating dispatcher Clean Up Job Settings. CleanUpJobSettingId: {request.CleanUpJobSettingId}");
|
|
}
|
|
}
|
|
|
|
public async Task DeleteAsync(int cleanUpJobSettingId)
|
|
{
|
|
try
|
|
{
|
|
var cleanUpJobSetting = await _cleanUpJobSettingRepository.FindByCleanUpJobSettingIdAsync(cleanUpJobSettingId);
|
|
ArgumentNullException.ThrowIfNull(cleanUpJobSetting);
|
|
_cleanUpJobSettingRepository.Remove(cleanUpJobSetting);
|
|
await _unitOfWork.CompleteAsync();
|
|
}
|
|
catch (SqlException sqlException)
|
|
{
|
|
Log.Error(sqlException, "SQL Failure removing dispatcher Clean Up Job Settings. CleanUpJobSettingId: {@cleanUpJobSettingId}", cleanUpJobSettingId);
|
|
throw new ServiceException($"SQL Failure removing dispatcher Clean Up Job Settings. CleanUpJobSettingId: {cleanUpJobSettingId}");
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Log.Error(exception, "Failure removing dispatcher Clean Up Job Settings. CleanUpJobSettingId: {@cleanUpJobSettingId}", cleanUpJobSettingId);
|
|
throw new ServiceException($"Failure removing dispatcher Clean Up Job Settings. CleanUpJobSettingId: {cleanUpJobSettingId}");
|
|
}
|
|
}
|
|
}
|
|
}
|