} // ExtractValue private void EcommAccounting(List <LocalMp> oModels, AffordabilityType nType) { if ((oModels == null) || (oModels.Count < 1)) { return; } bool bWasAnnualized = false; var oErrorMsgs = new List <string>(); decimal nRevenue = 0; int nCount = 0; foreach (var mm in oModels) { nCount++; var mp = mm.Marketplace; var oModel = mm.Model; if (!string.IsNullOrWhiteSpace(mp.UpdateError)) { oErrorMsgs.Add(mp.UpdateError.Trim()); } nRevenue += oModel.AnnualSales; } // for each account var trend = oModels .SelectMany(x => x.Model.TurnoverTrend) .GroupBy(x => x.TheMonth) .Select(t => new TurnoverTrend { TheMonth = t.Key, Turnover = t.Sum(s => s.Turnover) }) .ToList(); if (nCount > 0) { var oRes = new AffordabilityData { Type = nType, Revenues = nRevenue, IsAnnualized = bWasAnnualized, ErrorMsgs = string.Join(" ", oErrorMsgs).Trim(), TurnoverTrend = trend }; oRes.Fill(); oRes.DateFrom = oModels.Any(x => x.Model.OriginationDate.HasValue) ? oModels.Min(x => x.Model.OriginationDate) : null; oRes.DateTo = oModels.Any(x => x.Model.LastTransactionDate.HasValue) ? oModels.Max(x => x.Model.LastTransactionDate) : null; MpModel.Affordability.Add(oRes); } // if } // EcommAccounting
} // HmrcBank private void Psp(List <LocalMp> oPayPals) { if ((oPayPals == null) || (oPayPals.Count < 1)) { return; } bool bWasAnnualized = false; var oErrorMsgs = new List <string>(); decimal nRevenue = 0; decimal nOpex = 0; foreach (var mm in oPayPals) { var mp = mm.Marketplace; var oModel = mm.Model; if (!string.IsNullOrWhiteSpace(mp.UpdateError)) { oErrorMsgs.Add(mp.UpdateError.Trim()); } nRevenue += oModel.TotalNetInPayments; nOpex += Math.Abs(oModel.TotalNetOutPayments); } // for each account var trend = oPayPals .SelectMany(x => x.Model.TurnoverTrend) .GroupBy(x => x.TheMonth) .Select(t => new TurnoverTrend { TheMonth = t.Key, Turnover = t.Sum(s => s.Turnover) }).ToList(); var oRes = new AffordabilityData { Type = AffordabilityType.Psp, Revenues = nRevenue, Opex = nOpex, IsAnnualized = bWasAnnualized, ErrorMsgs = string.Join(" ", oErrorMsgs).Trim(), TurnoverTrend = trend }; oRes.Fill(); oRes.DateFrom = oPayPals.Any(x => x.Model.OriginationDate.HasValue) ? oPayPals.Min(x => x.Model.OriginationDate) : null; oRes.DateTo = oPayPals.Any(x => x.Model.LastTransactionDate.HasValue) ? oPayPals.Max(x => x.Model.LastTransactionDate) : null; MpModel.Affordability.Add(oRes); } // Psp