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 static ClassDetail ToViewModel(this GymClass gymClass, bool isDisplayDateFormat) { ClassDetail cd = new ClassDetail(); if (gymClass == null) { return cd; } cd.Description = gymClass.Description; cd.GymClassId = gymClass.GymClassId; cd.MaxCapacity = gymClass.MaxCapacity; cd.MaxWaitList = gymClass.MaxWaitList; cd.GymClassTypeId = gymClass.GymClassTypeId; cd.GymClassTypeName = gymClass.Type.Name; cd.ClassDateTime = gymClass.ClassDateTime; if (isDisplayDateFormat) { cd.ClassDate = gymClass.ClassDateTime.ToString("dddd dd MMM"); cd.ClassTime = gymClass.ClassDateTime.ToString("HH:mm"); } else { cd.ClassTime = gymClass.ClassDateTime.ToString("HH:mm"); cd.ClassDate = gymClass.ClassDateTime.ToString("dd/MM/yyyy"); } cd.IsEditable = gymClass.ClassDateTime < DateTime.Now; cd.nBookings = gymClass.Bookings.Count(); return cd; }
public static GymClass ToModel(this ClassDetail classDetail) { GymClass gymClass = new GymClass(); gymClass.Description = classDetail.Description; gymClass.GymClassId = classDetail.GymClassId; gymClass.GymClassTypeId = classDetail.GymClassTypeId; gymClass.MaxCapacity = classDetail.MaxCapacity; gymClass.MaxWaitList = classDetail.MaxWaitList; if (classDetail.ClassDateTime != null && classDetail.ClassDateTime > DateTime.Now) { gymClass.ClassDateTime = classDetail.ClassDateTime; } else if (!String.IsNullOrEmpty(classDetail.ClassDate) && !String.IsNullOrEmpty(classDetail.ClassTime)) { DateTime d; bool dateOk = DateTime.TryParseExact(classDetail.ClassDate + " " + classDetail.ClassTime, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out d); if (dateOk) { gymClass.ClassDateTime = d; } } return(gymClass); }
// GET: GymClass/Create public ActionResult Create() { ClassDetail gymClass = new ClassDetail(); gymClass.ClassDate = DateTime.Now.AddDays(1).ToString("dd/MM/yyyy"); gymClass.Types = db.GymClassTypes.OrderBy(ct=>ct.Name).ToList(); return View(gymClass); }