46 lines
1.7 KiB
C#
46 lines
1.7 KiB
C#
using System;
|
|
using Newtonsoft.Json;
|
|
using Serilog;
|
|
using LCU.Library.Internal.FileOperationsModels.Models;
|
|
using LCU.Library.Internal.Exceptions;
|
|
using System.Threading.Tasks;
|
|
using LCU.Library.Internal.ApiResponse.Services;
|
|
using LCU.Library.Internal.ApiResponse.Models;
|
|
|
|
namespace LCU.Api.Internal.FileOperations.Services;
|
|
|
|
public class DirectFileOperationsService : IDirectFileOperationsService
|
|
{
|
|
private readonly IFileOperationsService _fileOperationsService;
|
|
|
|
public DirectFileOperationsService(IFileOperationsService fileOperationsService)
|
|
{
|
|
_fileOperationsService = fileOperationsService;
|
|
}
|
|
|
|
public async Task<RequestResponse> HandleDirectFileOperationsRequest<TRequest>(TRequest request,
|
|
FileOperationType fileOperationType)
|
|
where TRequest : ReturnResponse
|
|
{
|
|
try
|
|
{
|
|
var queueRequest = new QueueRequest
|
|
{
|
|
Request = JsonConvert.SerializeObject(request),
|
|
FileOperationType = fileOperationType,
|
|
Attempts = 0
|
|
};
|
|
|
|
var requestResponse = _fileOperationsService.PerformFileOperation(queueRequest);
|
|
await QueueReturnResponse.QueueResponse(request, requestResponse.IsSuccessful, requestResponse.MessageStack);
|
|
|
|
return requestResponse;
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
var message = "Failure to Handle Direct File Operations Request";
|
|
Log.Error(exception, message);
|
|
throw new ServiceException($"{message}, Exception Message: {exception.Message}");
|
|
}
|
|
}
|
|
} |