This commit is contained in:
Zeeshaun
2026-04-27 10:50:07 -05:00
parent 8b528fa00b
commit b5edd55420
141 changed files with 9602 additions and 0 deletions
@@ -0,0 +1,10 @@
using LCU.Library.Internal.ApiResponse.Models;
using LCU.Library.Internal.FileOperationsModels.Models;
using System.Threading.Tasks;
namespace LCU.Api.Internal.FileOperations.Services.QueueServices;
public interface IQueueFileOperationsService
{
Task QueueFileOperations<TRequest>(TRequest originalRequest, FileOperationType operationType) where TRequest : ReturnResponse;
Task QueueFileOperationsRequest(QueueRequest queueRequest);
}
@@ -0,0 +1,65 @@
using System;
using System.Threading.Tasks;
using System.Threading;
using Newtonsoft.Json;
using Serilog;
using MassTransit;
using LCU.Library.Internal.LcuMassTransitModels;
using LCU.Library.Internal.Exceptions;
using LCU.Library.Internal.FileOperationsModels.Models;
using LCU.Library.Internal.ApiResponse.Models;
namespace LCU.Api.Internal.FileOperations.Services.QueueServices;
public class QueueFileOperationsService : IQueueFileOperationsService
{
private readonly ISendEndpoint _sendEndpoint;
private readonly ReceiveEndpointConfiguration _receiveEndpointConfiguration;
public QueueFileOperationsService(IBusControl busControl,
ReceiveEndpointConfiguration receiveEndpointConfiguration)
{
_receiveEndpointConfiguration = receiveEndpointConfiguration;
_sendEndpoint = busControl.GetSendEndpoint(_receiveEndpointConfiguration.ReceiveEndpointUri).Result;
}
public async Task QueueFileOperations<TRequest>(TRequest originalRequest, FileOperationType operationType) where TRequest : ReturnResponse
{
try
{
QueueRequest queueRequest = new QueueRequest()
{
ReturnResponse = originalRequest,
FileOperationType = operationType,
Request = JsonConvert.SerializeObject(originalRequest),
Attempts = 0,
QueueTimeStamp = DateTime.Now
};
await QueueFileOperationsRequest(queueRequest);
}
catch (Exception ex)
{
Log.Error(ex, $"Failed to Queue File Operations. FileOperationType: {operationType.ToString()}");
throw new ServiceException($"Failed to Queue File Operation Request. FileOperationType: {operationType.ToString()}");
}
}
public async Task QueueFileOperationsRequest(QueueRequest queueRequest)
{
try
{
var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(30));
await _sendEndpoint.Send(queueRequest, cancellationTokenSource.Token);
}
catch (TaskCanceledException exception)
{
Log.Error(exception, $"Failed to Queue File Operation Request. FileOperationType: {queueRequest.FileOperationType}");
throw new ServiceException(exception.Message);
}
catch (Exception exception)
{
Log.Error(exception, $"Failed to Queue File Operation Request. FileOperationType: {queueRequest.FileOperationType}");
throw new ServiceException($"Failed to Queue File Operation Request. FileOperationType: {queueRequest.FileOperationType}");
}
}
}