using System; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using WotBlitzStatisticsPro.Logic.AccountInformationPipeline.OperationContext; using WotBlitzStatisticsPro.Logic.Pipeline; namespace WotBlitzStatisticsPro.Logic.AccountInformationPipeline.Operations { public class CheckLastBattleDateOperation : IOperation { private readonly ILogger _logger; public CheckLastBattleDateOperation(ILogger logger) { _logger = logger; } public Task Invoke(IOperationContext context, Func? next) { var contextData = context.Get(); if (contextData.DbAccountInfo == null || contextData.DbAccountInfo.LastBattleTime < contextData.AccountInfo?.LastBattleTime) { if (next != null) return next.Invoke(context); } _logger.LogInformation($"Exiting without saving. Db LastBattleTime: {contextData.DbAccountInfo?.LastBattleTime}, WG LastBattleTime: {contextData.AccountInfo?.LastBattleTime}"); return Task.CompletedTask; } } }