public ActionResult AdmissionsReport(AdmissionsVM AdmitVM) { var NewAdmit = new AdmissionsVM(); int year = DateTime.Now.Year; int month = AdmitVM.SelectedMonth; //int day = DateTime.Now.Day; int day = 13; //Daily NewAdmit.DailyTotal = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Day == day && m.AdmissionsDate.Value.Month == DateTime.Now.Month && m.AdmissionsDate.Value.Year == year); //Weekly int weekno = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday); NewAdmit.WeeklyTotal = db.ADMITTED_BY.ToList().Count (m => CultureInfo.InvariantCulture.Calendar.GetWeekOfYear (m.AdmissionsDate.Value, CalendarWeekRule.FirstDay, DayOfWeek.Monday) == weekno); int WeekDay = (((int)DateTime.Today.DayOfWeek + 6) % 7) + 1; NewAdmit.WeeklyAvg = NewAdmit.WeeklyTotal / WeekDay; //Monthly NewAdmit.MonthlyTotal = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == month && m.AdmissionsDate.Value.Year == year); NewAdmit.MonthlyAvg = NewAdmit.MonthlyTotal / day; //Yearly NewAdmit.YearlyTotal = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year); NewAdmit.YearlyAvg = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year) / DateTime.Today.DayOfYear; NewAdmit.YearlyAvgPerMonth = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year) / DateTime.Today.Month; for (int i = 1; i <= DateTime.Now.Month; i++) { int MonthCount = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year && m.AdmissionsDate.Value.Month == i); if (MonthCount > NewAdmit.YearlyAvgPerMonth) { NewAdmit.SpikedMonths.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i)); } } //Rainouts int count = 0; //Count Current Month int DayCount; //IF current month, go up to current day if (month == DateTime.Now.Month) { DayCount = day; } else { DayCount = DateTime.DaysInMonth(year, month); } for (int i = 1; i <= DayCount; i++) { int DayCheck = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == month && m.AdmissionsDate.Value.Day == i && m.AdmissionsDate.Value.Year == year); if (DayCheck == 0) { count++; } } NewAdmit.MonthlyRainouts = count; //Need to reset count, so as not to double count a month accidentally //Count Previous Months month = DateTime.Now.Month; count = 0; for (int i = 1; i < month; i++) { for (int j = 1; j <= DateTime.DaysInMonth(year, i); j++) { int DayCheck = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == i && m.AdmissionsDate.Value.Day == j && m.AdmissionsDate.Value.Year == year); if (DayCheck == 0) { count++; } } } for (int i = 1; i <= day; i++) { int DayCheck = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == month && m.AdmissionsDate.Value.Day == i && m.AdmissionsDate.Value.Year == year); if (DayCheck == 0) { count++; } } NewAdmit.Rainouts = count; return(View(NewAdmit)); }
public ActionResult AdmissionsReport() { if (ApplicationSession.AccessLevel == "Manager") { var AdmitVM = new AdmissionsVM(); //Create Dropdown list to chose what month it is? int year = DateTime.Now.Year; int month = DateTime.Now.Month; //int day = DateTime.Now.Day; int day = 13; //Daily AdmitVM.DailyTotal = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Day == day && m.AdmissionsDate.Value.Month == month && m.AdmissionsDate.Value.Year == year); //Weekly int weekno = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday); AdmitVM.WeeklyTotal = db.ADMITTED_BY.ToList().Count (m => CultureInfo.InvariantCulture.Calendar.GetWeekOfYear (m.AdmissionsDate.Value, CalendarWeekRule.FirstDay, DayOfWeek.Monday) == weekno); int WeekDay = (((int)DateTime.Today.DayOfWeek + 6) % 7) + 1; AdmitVM.WeeklyAvg = AdmitVM.WeeklyTotal / WeekDay; //Monthly AdmitVM.MonthlyTotal = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == month && m.AdmissionsDate.Value.Year == year); AdmitVM.MonthlyAvg = AdmitVM.MonthlyTotal / day; //Yearly AdmitVM.YearlyTotal = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year); AdmitVM.YearlyAvg = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year) / DateTime.Today.DayOfYear; AdmitVM.YearlyAvgPerMonth = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year) / DateTime.Today.Month; //If (spiked month) //AdmitVM.SpikedMonths.append(Month.tostring()) for (int i = 1; i <= month; i++) { int MonthCount = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year && m.AdmissionsDate.Value.Month == i); if (MonthCount > AdmitVM.YearlyAvgPerMonth) { AdmitVM.SpikedMonths.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i)); } } //Rainouts int count = 0; //Count Current Month for (int i = 1; i <= day; i++) { int DayCheck = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == month && m.AdmissionsDate.Value.Day == i && m.AdmissionsDate.Value.Year == year); if (DayCheck == 0) { count++; } } AdmitVM.MonthlyRainouts = count; //Count Previous Months for (int i = 1; i < month; i++) { for (int j = 1; j <= DateTime.DaysInMonth(year, i); j++) { int DayCheck = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == i && m.AdmissionsDate.Value.Day == j && m.AdmissionsDate.Value.Year == year); if (DayCheck == 0) { count++; } } } AdmitVM.Rainouts = count; return(View(AdmitVM)); } else { return(Redirect(ApplicationSession.RedirectToHomeURL)); } }