using Mogafa.Common; using System.Collections.Generic; using System.Threading.Tasks; namespace Mogafa.App.LogEvents.Intercepts { public class PurchaseEventParameterIntercept : MogafaBase, ILogEventParameterIntercept { public string Name => "PurchaseEventParameter"; public int Order => 100; private readonly IPurchaseDataProviderForEventParameter purchaseDataProvider; public PurchaseEventParameterIntercept(IPurchaseDataProviderForEventParameter purchaseDataProvider) { this.purchaseDataProvider = purchaseDataProvider ?? throw new System.InvalidOperationException("purchaseDataProvider is null"); } public async Task> Execute(string eventName, Dictionary parameters) { var newParameters = new Dictionary(); if (purchaseDataProvider != null) { var value = await purchaseDataProvider.GetCumulativeValue(); newParameters.Add("ddbEventCumulativePurchase", value.ToString("F10")); value = await purchaseDataProvider.GetValue(); newParameters.Add("ddbEventPurchase", value.ToString("F10")); } return newParameters; } } }