public HomePageViewModel(Guid userid) { SettingsViewModel settings = SettingsViewModel.GetSettings(userid); this.Paychecks = new List <PaycheckDetailsViewModel>(); DayViewModel day = null; PaycheckSummaryViewModel summary = null; PBProxy p = new PBProxy(); Payday PayDaySeed = p.GetPaydays(userid).FirstOrDefault(); SetSeed(ref PayDaySeed, settings.PreviousPeriodsToShow); ListBillsViewModel AllBills = new ListBillsViewModel(userid); int CurrentMonth = 0; bool WillMonthChange = false; for (int checkIndex = 0; checkIndex < settings.ChecksToShow; checkIndex++) { DateTime thisdate = PayDaySeed.Paydate.AddDays(checkIndex * 14); string PaycheckType = thisdate.Day <= 14 ? "A" : "B"; PaycheckDetailsViewModel paycheckdetails = new PaycheckDetailsViewModel(); PaycheckViewModel Paycheck = new PaycheckViewModel(userid, PaycheckType); summary = new PaycheckSummaryViewModel(); summary.Payday = thisdate; summary.Credits = Paycheck.PayCheck.Amount; #region For Each Day In Pay Period for (int dayIndex = 0; dayIndex < 14; dayIndex++) { DateTime tempdate = thisdate.AddDays(dayIndex); if (CurrentMonth == 0 | tempdate.Day == 31 | tempdate.Day < 28) { WillMonthChange = false; } else { WillMonthChange = tempdate.AddDays(1).Month != CurrentMonth; } CurrentMonth = tempdate.Month; day = new DayViewModel(); day.Date = tempdate; #region Tithe if (dayIndex == 0) { if (settings.AddTithe) { BillViewModel Tithe = new BillViewModel(); Tithe.Name = "Tithe"; Tithe.Amount = Paycheck.PayCheck.Amount * settings.TitheMultiplier; Tithe.BackgroundColor = settings.TitheBGColor; Tithe.ForeColor = settings.TitheForeColor; summary.Debits += Tithe.Amount; Tithe.DueDay = tempdate.Day; day.Bills.Add(Tithe); } } #endregion if (tempdate.ToShortDateString() == DateTime.Now.ToShortDateString()) { summary.CurrentClass = "list-group-item-info"; } if (AllBills.Bills.Any(b => b.DueDay == tempdate.Day)) { List <BillViewModel> todaysbills = AllBills.Bills.Where(b => b.DueDay == tempdate.Day).ToList(); foreach (BillViewModel todaysbill in todaysbills) { CustomBillsViewModel CustomBills = new CustomBillsViewModel(todaysbill.Id); CustomBillViewModel thiscustombill = CustomBills.CustomBills.FirstOrDefault( cb => cb.BillDate.Year == tempdate.Year && cb.BillDate.Month == tempdate.Month); if (thiscustombill != null) { BillViewModel billcopy = new BillViewModel(todaysbill); //billcopy.Name = "* " + billcopy.Name; billcopy.Amount = thiscustombill.Amount; day.Bills.Add(billcopy); summary.Debits += billcopy.Amount; } else { day.Bills.Add(todaysbill); summary.Debits += todaysbill.Amount; } } } #region Month Changed if (WillMonthChange) { for (int d = tempdate.Day + 1; d < 32; d++) { if (AllBills.Bills.Any(b => b.DueDay == d)) { List <BillViewModel> todaysbills = AllBills.Bills.Where(b => b.DueDay == d).ToList(); foreach (BillViewModel todaysbill in todaysbills) { CustomBillsViewModel CustomBills = new CustomBillsViewModel(todaysbill.Id); CustomBillViewModel thiscustombill = CustomBills.CustomBills.FirstOrDefault(cb => cb.BillDate.Month == CurrentMonth); if (thiscustombill != null) { BillViewModel billcopy = new BillViewModel(todaysbill); //billcopy.Name = "* " + billcopy.Name + " (" + d.ToString() + ")"; billcopy.Amount = thiscustombill.Amount; day.Bills.Add(billcopy); summary.Debits += billcopy.Amount; } else { //todaysbill.Name = todaysbill.Name + " (" + d.ToString() + ")"; day.Bills.Add(todaysbill); summary.Debits += todaysbill.Amount; } } } } } #endregion paycheckdetails.Days.Add(day); } #endregion paycheckdetails.Summary = summary; summary = null; this.Paychecks.Add(paycheckdetails); paycheckdetails = null; } p = null; }
public NewHomePageViewModel(Guid userid) { var currentMonth = -1; var currentMonthIndex = -1; string[] monthColors = { "C4FFEA", "D1D7FF", "FFCCF9", "FFF6D8" }; Days = new List <DayViewModel>(); var db = new PBProxy(); var settings = SettingsViewModel.GetSettings(userid); var AllBills = new ListBillsViewModel(userid); var PayDaySeed = db.GetPaydays(userid).FirstOrDefault(); var CurrentMonth = 0; SetSeed(ref PayDaySeed, settings.PreviousPeriodsToShow); var payChecks = GetPaydays(PayDaySeed.Paydate); var firstDay = FindFirstDay(PayDaySeed); var currentCheckIndex = 0; PaycheckSummaryViewModel summary = null; var paycheckdetails = new PaycheckDetailsViewModel(); var daysShowing = (settings.ChecksToShow + 1) * 14; var showData = false; for (var dayIndex = 0; dayIndex < daysShowing; dayIndex++) { #region For Each Day In Pay Period var tempdate = firstDay.AddDays(dayIndex); if (tempdate.Month != currentMonth) { currentMonth = tempdate.Month; currentMonthIndex++; } var day = new DayViewModel { Date = tempdate, Index = dayIndex, MonthColor = monthColors[currentMonthIndex] }; var paycheckType = tempdate.Day <= 14 ? "A" : "B"; if (payChecks.Any(a => a == tempdate)) { DayIndexOfCurrentPeriod = tempdate > DateTime.Now ? DayIndexOfCurrentPeriod : dayIndex; var inLastPaycheck = (daysShowing - dayIndex) < 13; showData = !inLastPaycheck; if (currentCheckIndex > 0) { paycheckdetails = new PaycheckDetailsViewModel { Summary = summary }; Days.FirstOrDefault(a => a.Index == currentCheckIndex).Paycheck = paycheckdetails; summary = new PaycheckSummaryViewModel(); } currentCheckIndex = dayIndex; summary = new PaycheckSummaryViewModel { Payday = tempdate, Credits = new PaycheckViewModel(userid, paycheckType).PayCheck.Amount }; #region Tithe if (showData && settings.AddTithe) { var tithe = new BillViewModel { Name = "", Icon = "fa-heart-o", Amount = summary.Credits * settings.TitheMultiplier, BackgroundColor = settings.TitheBGColor, ForeColor = settings.TitheForeColor, DueDay = tempdate.Day }; day.Bills.Add(tithe); #endregion } } day.PaydayIndex = currentCheckIndex; //day.Bills.Add(new BillViewModel() { Amount = 0, Name = dayIndex.ToString()}); var WillMonthChange = false; if (CurrentMonth == 0 | tempdate.Day == 31 | tempdate.Day < 28) { WillMonthChange = false; } else { WillMonthChange = tempdate.AddDays(1).Month != CurrentMonth; } CurrentMonth = tempdate.Month; if (showData) { if (tempdate.ToShortDateString() == DateTime.Now.ToShortDateString()) { if (summary != null) { summary.CurrentClass = "list-group-item-info"; } } if (AllBills.Bills.Any(b => b.DueDay == tempdate.Day)) { var todaysbills = AllBills.Bills.Where(b => b.DueDay == tempdate.Day).ToList(); foreach (var todaysbill in todaysbills) { var CustomBills = new CustomBillsViewModel(todaysbill.Id); var thiscustombill = CustomBills.CustomBills.FirstOrDefault( cb => cb.BillDate.Year == tempdate.Year && cb.BillDate.Month == tempdate.Month); if (thiscustombill != null) { var billcopy = new BillViewModel(todaysbill); billcopy.Amount = thiscustombill.Amount; day.Bills.Add(billcopy); if (summary != null) { summary.Debits += billcopy.Amount; } } else { day.Bills.Add(todaysbill); if (summary != null) { summary.Debits += todaysbill.Amount; } } } } #region Month Changed if (WillMonthChange) { for (var d = tempdate.Day + 1; d < 32; d++) { if (AllBills.Bills.Any(b => b.DueDay == d)) { var todaysbills = AllBills.Bills.Where(b => b.DueDay == d).ToList(); foreach (BillViewModel todaysbill in todaysbills) { var CustomBills = new CustomBillsViewModel(todaysbill.Id); var thiscustombill = CustomBills.CustomBills.FirstOrDefault(cb => cb.BillDate.Month == CurrentMonth); if (thiscustombill != null) { var billcopy = new BillViewModel(todaysbill); billcopy.Amount = thiscustombill.Amount; day.Bills.Add(billcopy); } else { day.Bills.Add(todaysbill); } } } } } #endregion } this.Days.Add(day); } summary.Debits = 0; paycheckdetails = new PaycheckDetailsViewModel { Summary = summary }; Days.FirstOrDefault(a => a.Index == currentCheckIndex).Paycheck = paycheckdetails; #endregion db = null; }