Files
2026-04-27 10:50:07 -05:00

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}");
}
}
}