ComplianceServer/code/Hg.Core.WebApi/Workers/ComplaintWorker.cs

37 lines
1.4 KiB
C#

using Hg.Core.Domain;
using Hg.Core.Domain.Impl;
namespace Hg.Core.WebApi.Workers
{
public class ComplaintWorker : BackgroundService
{
private readonly IServiceProvider _serviceProvider;
public ComplaintWorker(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
using IServiceScope scope = _serviceProvider.CreateScope();
var outComplaintDomain = scope.ServiceProvider.GetRequiredService<IOutComplaintDomain>();
var inComplaintDomain = scope.ServiceProvider.GetRequiredService<IInComplaintDomain>();
var orderRefundApplyDomain = scope.ServiceProvider.GetRequiredService<IOrderRefundApplyDomain>();
while (!stoppingToken.IsCancellationRequested)
{
var now = DateTime.Now;
if (now.Minute == 0)
{
if (now.Hour == 0)
{
await outComplaintDomain.SyncOutComplaintStatus();
}
await inComplaintDomain.SyncInComplaintStatus();
await orderRefundApplyDomain.SyncOrderRefundApplyStatus();
}
await Task.Delay(60 * 1000);
}
}
}
}