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);
 }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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);
 }