using Elwig.Helpers; using Elwig.Helpers.Billing; using Elwig.Models.Dtos; using Elwig.Models.Entities; using System.Collections.Generic; using System.Linq; namespace Elwig.Documents { public class PaymentVariantSummary : Document { public new static string Name => "Auszahlungsvariante"; public PaymentVariantSummaryData Data; public PaymentVar Variant; public BillingData BillingData; public string CurrencySymbol; public int MemberNum; public int DeliveryNum; public int DeliveryPartNum; public List ModifierStat; public Dictionary Modifiers; public PaymentVariantSummary(PaymentVar v, PaymentVariantSummaryData data) : base($"{Name} {v.Year} - {v.Name}") { Variant = v; BillingData = BillingData.FromJson(v.Data); Data = data; CurrencySymbol = v.Season.Currency.Symbol ?? v.Season.Currency.Code; MemberNum = v.Credits.Count; DeliveryNum = v.DeliveryPartPayments.DistinctBy(p => p.DeliveryPart.Delivery).Count(); DeliveryPartNum = v.DeliveryPartPayments.Count; ModifierStat = AppDbContext.GetModifierStats(v.Year, v.AvNr).GetAwaiter().GetResult(); Modifiers = v.Season.Modifiers.ToDictionary(m => m.ModId); } } }