public ActionResult CreateNewSchedule(ScheduleHomeVM vm) { GetDAL get = new GetDAL(); get.OpenConnection(); Event e = get.GetEventByID(vm.SelectedEvent.IntEventID); List <RehearsalPart> rehearsalParts = get.GetRehearsalPartsByEvent(e); foreach (RehearsalPart rp in rehearsalParts) { rp.LstMembers = get.GetUsersByRehearsalPart(rp); } get.CloseConnection(); //List<RehearsalPart> rehearsalParts = vm.LstAllRehearsalParts.Where(x => x.Event.Equals(e)).ToList(); Schedule newSchedule = new Schedule(rehearsalParts, e); ScheduleViewVM model = new ScheduleViewVM(); model.Schedule = newSchedule.FinalSchedule; tmpRehearsalPartsSchedule = model.Schedule; foreach (LocalDate d in uniqueDatesOfRehearsals(model.Schedule.LstScheduledRehearsalParts)) { Rehearsal tmpRehearsal = new Rehearsal(); // get earliest rehearsal on any day DateTime fromDateOnly = new DateTime(d.Year, d.Month, d.Day); // get start of earliest rehearsal part on that day RehearsalPart earliest = model.Schedule.LstScheduledRehearsalParts.Where(x => x.DtmStartDateTime.GetValueOrDefault().Date.Equals(fromDateOnly)).OrderBy(x => x.DtmStartDateTime.GetValueOrDefault()).FirstOrDefault(); tmpRehearsal.DtmStartDateTime = earliest.DtmStartDateTime.GetValueOrDefault(); // get end of latest rehearsal part on that day RehearsalPart lastest = model.Schedule.LstScheduledRehearsalParts.Where(x => x.DtmEndDateTime.GetValueOrDefault().Date.Equals(fromDateOnly)).OrderByDescending(x => x.DtmEndDateTime.GetValueOrDefault()).FirstOrDefault(); tmpRehearsal.DtmEndDateTime = lastest.DtmEndDateTime.GetValueOrDefault(); tmpRehearsal.LstRehearsalParts = model.Schedule.LstScheduledRehearsalParts.Where(x => x.DtmStartDateTime.GetValueOrDefault().Date.Equals(fromDateOnly)).ToList(); model.LstTmpRehearsals.Add(tmpRehearsal); } return(View("ScheduleView", model)); }
// GET: Schedule public ActionResult Index() { if (!Globals.LOGIN_STATUS) { return(RedirectToAction("Login", "Home")); } else { ScheduleHomeVM model = new ScheduleHomeVM(); GetDAL get = new GetDAL(); get.OpenConnection(); model.LstUpcomingRehearsals = get.GetUpcomingRehearsalsByUser(Globals.LOGGED_IN_USER); foreach (var r in model.LstUpcomingRehearsals) { r.LstRehearsalParts = get.GetRehearsalPartsByRehearsal(r); foreach (RehearsalPart rp in r.LstRehearsalParts) { rp.LstMembers = get.GetUsersByRehearsalPart(rp); } } model.LstUserRehearsalParts = get.GetUpcomingRehearsalPartsByUser(Globals.LOGGED_IN_USER); model.LstUnscheduledRehearsalParts = model.LstUserRehearsalParts.Where(x => x.DtmStartDateTime.Equals(null)).ToList(); //foreach (var e in get.GetEventsByUser(Globals.LOGGED_IN_USER.IntUserID)) //{ // get.CloseConnection(); // get.OpenConnection(); // model.LstUserRehearsalParts = model.LstUserRehearsalParts.Concat(get.GetRehearsalPartsByEvent(e)).ToList(); //} //get.CloseConnection(); //get.OpenConnection(); //model.LstUpcomingRehearsalParts = get.GetUpcomingRehearsalPartsByUser(Globals.LOGGED_IN_USER); //model.LstUnscheduledRehearsalParts = model.LstUserRehearsalParts.Where(x => x.DtmStartDateTime.Equals(null)).ToList(); //model.LstUpcomingRehearsalParts = model.LstUpcomingRehearsalParts.Except(model.LstUnscheduledRehearsalParts.ToList()).ToList(); //model.LstUpcomingRehearsals = get.GetUpcomingRehearsalsByUser(Globals.LOGGED_IN_USER); //foreach (var r in model.LstUpcomingRehearsals) //{ // r.LstRehearsalParts = get.GetRehearsalPartsByRehearsal(r); //} //get.CloseConnection(); //get.OpenConnection(); model.LstAdminEvents = get.GetAdminEventsByUser(Globals.LOGGED_IN_USER.IntUserID); //foreach (RehearsalPart rp in model.LstUserRehearsalParts) //{ // rp.LstMembers = get.GetUsersByRehearsalPart(rp); //} //foreach (RehearsalPart rp in model.LstUpcomingRehearsalParts) //{ // rp.LstMembers = get.GetUsersByRehearsalPart(rp); //} get.CloseConnection(); return(View("ScheduleHome", model)); } }