using System; using System.Threading.Tasks; using WotBlitzStatisticsPro.Common.Model; using WotBlitzStatisticsPro.Logic.AccountInformationPipeline.OperationContext; using WotBlitzStatisticsPro.Logic.Calculations; using WotBlitzStatisticsPro.Logic.Pipeline; namespace WotBlitzStatisticsPro.Logic.AccountInformationPipeline.Operations { public class FillPeriodDifferenceOperation : IOperation { public Task Invoke(IOperationContext context, Func? next) { var contextData = context.Get(); if (contextData?.History != null && contextData.History.Length > 1) { contextData.PeriodDifference = new StatisticsDifference(); var historyLastIndex = contextData.History.Length - 1; contextData.PeriodDifference.FillDifference(contextData.History[0], contextData.History[historyLastIndex]); } return next != null ? next.Invoke(context) : Task.CompletedTask; } } }