public ActionResult DeleteRange(string classDateFrom, string classDateTo) { DateTime dFrom; DateTime dTo; ClassReport classReport = new ClassReport(); classReport.ClassDateFrom = classDateFrom; classReport.ClassDateTo = classDateTo; bool dateFromOk = DateTime.TryParseExact(classDateFrom, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dFrom); bool dateToOk = DateTime.TryParseExact(classDateTo, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dTo); if (dateFromOk && dateToOk) { var bookings = db.MemberClassBookings.Where(bk => bk.GymClass.ClassDateTime >= dFrom && bk.GymClass.ClassDateTime <= dTo).ToList(); db.MemberClassBookings.RemoveRange(bookings); var classes = db.GymClass.Where(bk => bk.ClassDateTime >= dFrom && bk.ClassDateTime <= dTo).ToList(); db.GymClass.RemoveRange(classes); db.SaveChanges(); } return RedirectToAction("Report", classReport); }
public ActionResult Report(ClassReport classReport) { DateTime dFrom; DateTime dTo; DateTime dNow = DateTime.Now; bool dateFromOk = DateTime.TryParseExact(classReport.ClassDateFrom, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dFrom); bool dateToOk = DateTime.TryParseExact(classReport.ClassDateTo, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dTo); if (dateFromOk && dateToOk) { classReport.TotalAttended = db.MemberClassBookings.Where(bk => bk.Attended && bk.GymClass.ClassDateTime >= dFrom && bk.GymClass.ClassDateTime <= dTo).Count(); classReport.TotalBookings = db.MemberClassBookings.Where(bk => !bk.Waiting && bk.GymClass.ClassDateTime >= dFrom && bk.GymClass.ClassDateTime <= dTo).Count(); classReport.TotalWaitingList = db.MemberClassBookings.Where(bk => bk.Waiting && bk.GymClass.ClassDateTime >= dFrom && bk.GymClass.ClassDateTime <= dTo).Count(); if (dFrom < dNow && dNow < dTo) { dTo = dNow; } if (dFrom < dNow && dTo <= dNow){ classReport.NoShowMembers = NoShowList(dFrom, dTo); } } return View(classReport); }