Updating
This commit is contained in:
+44
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using Serilog;
|
||||
using MassTransit;
|
||||
using TimeZoneConverter;
|
||||
using LCU.Library.Internal.ArchiverApiModel.Models;
|
||||
using LCU.Api.Internal.ArchiverApi.Configuration;
|
||||
using LCU.Library.Internal.LcuMassTransitModels;
|
||||
using LCU.Library.Internal.Exceptions;
|
||||
namespace LCU.Api.Internal.ArchiverApi.Services;
|
||||
|
||||
public class QueueArchiverService : IQueueArchiverService
|
||||
{
|
||||
private readonly ISendEndpoint _sendEndpoint;
|
||||
private readonly ReceiveEndpointConfiguration _receiveEndpointsConfiguration;
|
||||
private readonly ArchiverApiConfig _archiverApiConfig;
|
||||
|
||||
public QueueArchiverService(IBusControl busControl,
|
||||
ReceiveEndpointConfigurations receiveEndpointsConfiguration,
|
||||
ArchiverApiConfig archiverApiConfig)
|
||||
{
|
||||
_receiveEndpointsConfiguration = receiveEndpointsConfiguration.ArchiverReceiveEndpoint;
|
||||
_archiverApiConfig = archiverApiConfig;
|
||||
_sendEndpoint = busControl.GetSendEndpoint(_receiveEndpointsConfiguration.ReceiveEndpointUri).Result;
|
||||
}
|
||||
|
||||
public void QueueArchiver(ArchiveRequest archiveRequest)
|
||||
{
|
||||
try
|
||||
{
|
||||
var dateToConvert = archiveRequest.EffectiveDate == null ?
|
||||
DateTime.Now.AddDays(archiveRequest.DaysFromDate) :
|
||||
Convert.ToDateTime(archiveRequest.EffectiveDate).AddDays(archiveRequest.DaysFromDate);
|
||||
|
||||
var assumedTimezone = TZConvert.GetTimeZoneInfo(_archiverApiConfig.TimeZone);
|
||||
archiveRequest.EffectiveDate = TimeZoneInfo.ConvertTime(dateToConvert, assumedTimezone).Date;
|
||||
_sendEndpoint.Send(archiveRequest);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex, $"Failed to queue archive request with effective date. Effective Date: {archiveRequest.EffectiveDate}");
|
||||
throw new ServiceException($"Failed to queue archive request with effective date. Effective Date: {archiveRequest.EffectiveDate}");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user