public void Load(string clientId, string practiceId, int numberMonths) { ICashFlowManagerService service = new CashFlowManagerService(); Transactions = service.GetTransactions(new Guid(clientId)); BankAccounts = service.GetBankAccounts(new Guid(clientId)); PracticeId = practiceId; ClientId = clientId; TransactionHelper helper = new TransactionHelper(); var results = helper.GenerateData(Transactions, numberMonths); SummaryChartData = helper.SummariseData(results, BankAccounts); }
public void PopulateClientPosition() { TransactionHelper helper = new TransactionHelper(); foreach (ClientInfo c in Clients) { if (c.ClientPosition == null) c.ClientPosition = new List<ClientPositionIndicator>(); var results = helper.GenerateData(Transactions.Where(t => t.ClientId == c.Id).ToList(), 3); if (Transactions.Any(t => t.ClientId == c.Id)) { var bas = BankAccounts.Where(b => b.ClientId == c.Id).ToList(); SummaryChartData = helper.SummariseData(results, bas); //Forcasting 7 Days ClientPositionIndicator day1 = new ClientPositionIndicator(); day1.Date = DateTime.Now.Date; day1.Name = "Day 1"; var p1 = (from sd in SummaryChartData where sd.Date.Date == day1.Date select sd.CashOnHand).SingleOrDefault(); var e1 = (from sd in SummaryChartData where sd.Date.Date == day1.Date select sd.Expense).SingleOrDefault(); day1.ExpenseToCashOnHandPercentage = ExpenseToCashOnHandPercentage(p1, e1); day1.Position = AssignZone(p1, e1); c.ClientPosition.Add(day1); ClientPositionIndicator day2 = new ClientPositionIndicator(); day2.Date = DateTime.Now.Date.AddDays(1); day2.Name = "Day 2"; var p2 = (from sd in SummaryChartData where sd.Date.Date <= day2.Date select sd.CashOnHand).Sum(); var e2 = (from sd in SummaryChartData where sd.Date.Date <= day2.Date select sd.Expense).Sum(); day2.Position = AssignZone(p2, e2); day2.ExpenseToCashOnHandPercentage = ExpenseToCashOnHandPercentage(p2, e2); c.ClientPosition.Add(day2); ClientPositionIndicator day3 = new ClientPositionIndicator(); day3.Date = DateTime.Now.Date.AddDays(2); day3.Name = "Day 3"; var p3 = (from sd in SummaryChartData where sd.Date.Date <= day3.Date select sd.CashOnHand).Sum(); var e3 = (from sd in SummaryChartData where sd.Date.Date <= day3.Date select sd.Expense).Sum(); day3.Position = AssignZone(p3, e3); day3.ExpenseToCashOnHandPercentage = ExpenseToCashOnHandPercentage(p3, e3); c.ClientPosition.Add(day3); ClientPositionIndicator day4 = new ClientPositionIndicator(); day4.Date = DateTime.Now.Date.AddDays(3); day4.Name = "Day 4"; var p4 = (from sd in SummaryChartData where sd.Date.Date <= day4.Date select sd.CashOnHand).Sum(); var e4 = (from sd in SummaryChartData where sd.Date.Date <= day4.Date select sd.Expense).Sum(); day4.Position = AssignZone(p4, e4); day4.ExpenseToCashOnHandPercentage = ExpenseToCashOnHandPercentage(p4, e4); c.ClientPosition.Add(day4); ClientPositionIndicator day5 = new ClientPositionIndicator(); day5.Date = DateTime.Now.Date.AddDays(4); day5.Name = "Day 5"; var p5 = (from sd in SummaryChartData where sd.Date.Date <= day5.Date select sd.CashOnHand).Sum(); var e5 = (from sd in SummaryChartData where sd.Date.Date <= day5.Date select sd.Expense).Sum(); day5.Position = AssignZone(p5, e5); day5.ExpenseToCashOnHandPercentage = ExpenseToCashOnHandPercentage(p5, e5); c.ClientPosition.Add(day5); ClientPositionIndicator day6 = new ClientPositionIndicator(); day6.Date = DateTime.Now.Date.AddDays(5); day6.Name = "Day 6"; var p6 = (from sd in SummaryChartData where sd.Date.Date <= day6.Date select sd.CashOnHand).Sum(); var e6 = (from sd in SummaryChartData where sd.Date.Date <= day6.Date select sd.Expense).Sum(); day6.Position = AssignZone(p6, e6); day6.ExpenseToCashOnHandPercentage = ExpenseToCashOnHandPercentage(p6, e6); c.ClientPosition.Add(day6); ClientPositionIndicator day7 = new ClientPositionIndicator(); day7.Date = DateTime.Now.Date.AddDays(6); day7.Name = "Day 7"; var p7 = (from sd in SummaryChartData where sd.Date.Date <= day7.Date select sd.CashOnHand).Sum(); var e7 = (from sd in SummaryChartData where sd.Date.Date <= day7.Date select sd.Expense).Sum(); day7.Position = AssignZone(p7, e7); day7.ExpenseToCashOnHandPercentage = ExpenseToCashOnHandPercentage(p7, e7); c.ClientPosition.Add(day7); // Forcasting in a Fortnight ClientPositionIndicator fortnight = new ClientPositionIndicator(); fortnight.Date = DateTime.Now.Date.AddDays(14); fortnight.Name = "Fortnight"; var p9 = (from sd in SummaryChartData where sd.Date.Date <= day7.Date select sd.CashOnHand).Sum(); var e9 = (from sd in SummaryChartData where sd.Date.Date <= day7.Date select sd.Expense).Sum(); fortnight.Position = AssignZone(p9, e9); fortnight.ExpenseToCashOnHandPercentage = ExpenseToCashOnHandPercentage(p9, e9); c.ClientPosition.Add(fortnight); // Forcasting in a Month ClientPositionIndicator oneMonth = new ClientPositionIndicator(); oneMonth.Date = DateTime.Now.Date.AddMonths(1); oneMonth.Name = "Month One"; var p10 = (from sd in SummaryChartData where sd.Date.Date <= oneMonth.Date select sd.CashOnHand).Sum(); var e10 = (from sd in SummaryChartData where sd.Date.Date <= oneMonth.Date select sd.Expense).Sum(); oneMonth.Position = AssignZone(p10, e10); oneMonth.ExpenseToCashOnHandPercentage = ExpenseToCashOnHandPercentage(p10, e10); c.ClientPosition.Add(oneMonth); // Forcasting in two Months ClientPositionIndicator twoMonths = new ClientPositionIndicator(); twoMonths.Date = DateTime.Now.Date.AddMonths(2); twoMonths.Name = "Month Two"; var p11 = (from sd in SummaryChartData where sd.Date.Date <= twoMonths.Date select sd.CashOnHand).Sum(); var e11 = (from sd in SummaryChartData where sd.Date.Date <= twoMonths.Date select sd.Expense).Sum(); twoMonths.Position = AssignZone(p11, e11); twoMonths.ExpenseToCashOnHandPercentage = ExpenseToCashOnHandPercentage(p11, e11); c.ClientPosition.Add(twoMonths); } } }