public ActionResult CreateWeekClasses(int nWeek = 0) {
     WeekGymClass wgc = new WeekGymClass();
     wgc.SelectedWeek = nWeek;
     wgc.FutureWeeks = new List<SelectListItem>(4);
     DateTime now = DateTime.Now.Date;
     int daysUntilMonday = ((int)DayOfWeek.Monday - (int)now.DayOfWeek + 7) % 7;
     for(int i = 0; i < 4; i++) {
         SelectListItem weekItem = new SelectListItem();
         weekItem.Value = i.ToString();
         weekItem.Text = now.AddDays(daysUntilMonday + i * 7).ToShortDateString();
         weekItem.Selected = (nWeek == i);
         wgc.FutureWeeks.Add(weekItem);            
     }
     wgc.WeekClasses = new List<ClassDetail>();
     foreach(var clt in db.GymClassTypes.OrderBy(ct=>ct.ClassTime).OrderBy(ct => ct.DayOfTheWeek).ToList()) {
         ClassDetail cl = new ClassDetail();
         cl.Description = clt.Description;
         cl.GymClassTypeId = clt.GymClassTypeId;
         cl.GymClassTypeName = clt.Name;
         cl.MaxCapacity = clt.MaxCapacity;
         cl.MaxWaitList = clt.MaxWaitList;
         int daysUntilClassDay = ((int)clt.DayOfTheWeek - (int)now.DayOfWeek + 7) % 7;
         string[] hms = clt.ClassTime.Split(':');
         cl.ClassDateTime = now.AddDays(daysUntilClassDay + 7 * nWeek).AddHours(int.Parse(hms[0])).AddMinutes(int.Parse(hms[1]));
        
         cl.ClassTime = clt.ClassTime;
         cl.ClassDate = cl.ClassDateTime.ToString("dddd dd MMM");
         cl.IsEditable = true;
         wgc.WeekClasses.Add(cl);
     }
     return View(wgc);
 }
 public ActionResult CreateWeekClasses(WeekGymClass weekGymClasses) {
     List<GymClass> newClasses = new List<GymClass>(0);
     foreach(var cl in weekGymClasses.WeekClasses) {
         if (cl.IsEditable) {
             newClasses.Add(cl.ToModel());
         }
     }
     db.GymClass.AddRange(newClasses);
     db.SaveChanges();
     return RedirectToAction("Index");
 }