Adding
This commit is contained in:
+114
@@ -0,0 +1,114 @@
|
||||
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}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user