public IViewComponentResult Invoke(FullCalendarViewModel viewModel) { models = (ModelSource <UserProfile>)HttpContext.Items["Models"]; _modelState = ViewContext.ModelState; return(CalendarEventItems(viewModel)); }
public ActionResult BookingByCoach(FullCalendarViewModel viewModel) { ViewBag.ViewModel = viewModel; var item = models.GetTable <CoachWorkplace>().Where(w => w.CoachID == viewModel.CoachID).FirstOrDefault(); if (item != null) { viewModel.BranchID = item.BranchID; } return(View("~/Views/CoachFacet/Module/BookingByCoach.ascx")); }
public IViewComponentResult CalendarEventItems(FullCalendarViewModel viewModel) { ViewViewComponentResult result = (ViewViewComponentResult)CalendarEvents(viewModel, true); if (viewModel.MasterVer == Naming.MasterVersion.Ver2020) { result.ViewName = "~/Views/ConsoleHome/Index/Coach/EventItems.cshtml"; } else { result.ViewName = "~/Views/ConsoleHome/Module/EventItems.cshtml"; } return(result); }
public ActionResult VipLessonEvents(FullCalendarViewModel viewModel) { ViewBag.ViewModel = viewModel; DataLoadOptions ops = new DataLoadOptions(); ops.LoadWith <LessonTime>(i => i.GroupingLesson); ops.LoadWith <LessonTime>(i => i.RegisterLesson); ops.LoadWith <GroupingLesson>(i => i.RegisterLesson); ops.LoadWith <RegisterLesson>(i => i.UserProfile); ops.LoadWith <RegisterLesson>(i => i.LessonPriceType); models.GetDataContext().LoadOptions = ops; IQueryable <LessonTime> dataItems = models.GetTable <LessonTime>() .Join(models.GetTable <GroupingLesson>() .Join(models.GetTable <RegisterLesson>().Where(r => r.UID == viewModel.UID), g => g.GroupID, r => r.RegisterGroupID, (g, r) => g), l => l.GroupID, g => g.GroupID, (l, g) => l); if (viewModel.DateFrom.HasValue) { dataItems = dataItems.Where(t => t.ClassTime >= viewModel.DateFrom.Value); } if (viewModel.DateTo.HasValue) { dataItems = dataItems.Where(t => t.ClassTime < viewModel.DateTo.Value.AddDays(1)); } if (viewModel.BranchID.HasValue) { dataItems = dataItems.Where(t => t.BranchID == viewModel.BranchID); } //if (viewModel.CoachID.HasValue) //{ // dataItems = dataItems.Where(t => t.AttendingCoach == viewModel.CoachID); //} IEnumerable <CalendarEvent> items; if (viewModel.DefaultView == "month") { items = dataItems.ToFullCalendarEventMonthView(); } else { items = dataItems.ToFullCalendarEventWeekView(); } return(Json(items, JsonRequestBehavior.AllowGet)); }
public ActionResult DailyBookingList(FullCalendarViewModel viewModel) { IQueryable <LessonTime> items = models.GetTable <LessonTime>(); if (viewModel.LessonDate.HasValue) { items = items.Where(l => l.ClassTime >= viewModel.LessonDate && l.ClassTime < viewModel.LessonDate.Value.AddDays(1)); } else { items = items.Where(t => false); } //if (viewModel.Category == "coach") //{ // items = items.Where(l => l.RegisterLesson.LessonPriceType.Status == (int)Naming.DocumentLevelDefinition.教練PI); //} //else if (viewModel.Category == "trial") //{ // items = items.Where(l => l.RegisterLesson.LessonPriceType.Status == (int)Naming.DocumentLevelDefinition.體驗課程); //} if (viewModel.BranchID.HasValue) { items = items.Where(l => l.BranchID == viewModel.BranchID); } if (viewModel.QueryType == "attendee") { items = items.Join(models.GetTable <GroupingLesson>() .Join(models.GetTable <RegisterLesson>().Where(r => r.UID == viewModel.UID), g => g.GroupID, r => r.RegisterGroupID, (g, r) => g), l => l.GroupID, g => g.GroupID, (l, g) => l); } else { if (viewModel.CoachID.HasValue) { items = items.Where(l => l.AttendingCoach == viewModel.CoachID); } } return(View("~/Views/CoachFacet/Module/DailyBookingList.ascx", items)); }
public IActionResult GetAvailabilities() { return(Json(FullCalendarViewModel.ToList(_context.Availabilities.Include(a => a.User) .ThenInclude(u => u.Instruments)))); }
public ActionResult BookingByCoach(FullCalendarViewModel viewModel) { ViewBag.ViewModel = viewModel; return(View("~/Views/ClassFacet/Module/BookingByCoach.ascx")); }
public ActionResult LearnerCalendarEvents(FullCalendarViewModel viewModel, bool?toHtml = false) { ViewBag.ViewModel = viewModel; DataLoadOptions ops = new DataLoadOptions(); ops.LoadWith <LessonTime>(i => i.GroupingLesson); ops.LoadWith <LessonTime>(i => i.RegisterLesson); ops.LoadWith <GroupingLesson>(i => i.RegisterLesson); ops.LoadWith <RegisterLesson>(i => i.UserProfile); ops.LoadWith <RegisterLesson>(i => i.LessonPriceType); models.DataContext.LoadOptions = ops; IQueryable <LessonTime> dataItems = viewModel.LearnerID.Value.PromptLearnerLessons(models); IQueryable <LessonTime> coachPI = viewModel.LearnerID.Value.PromptCoachPILessons(models); IQueryable <UserEvent> eventItems = models.GetTable <UserEvent>() .Where(e => !e.SystemEventID.HasValue) .Where(e => e.UID == viewModel.LearnerID || e.GroupEvent.Any(g => g.UID == viewModel.LearnerID)); IQueryable <LessonTime> givingItems = models.GetTable <LessonTime>().Where(l => l.AttendingCoach == viewModel.LearnerID); if (viewModel.DateFrom.HasValue && viewModel.DateTo.HasValue) { dataItems = dataItems.Where(t => t.ClassTime >= viewModel.DateFrom.Value && t.ClassTime < viewModel.DateTo.Value.AddDays(1)); coachPI = coachPI.Where(t => t.ClassTime >= viewModel.DateFrom.Value && t.ClassTime < viewModel.DateTo.Value.AddDays(1)); eventItems = eventItems.Where(t => (t.StartDate >= viewModel.DateFrom.Value && t.StartDate < viewModel.DateTo.Value.AddDays(1)) || (t.StartDate >= viewModel.DateFrom.Value && t.StartDate < viewModel.DateTo.Value.AddDays(1)) || (t.EndDate >= viewModel.DateFrom.Value && t.EndDate < viewModel.DateTo.Value.AddDays(1)) || (t.StartDate < viewModel.DateFrom.Value && t.EndDate >= viewModel.DateTo.Value)); givingItems = givingItems.Where(t => t.ClassTime >= viewModel.DateFrom.Value && t.ClassTime < viewModel.DateTo.Value.AddDays(1)); } else if (viewModel.DateFrom.HasValue) { dataItems = dataItems.Where(t => t.ClassTime >= viewModel.DateFrom.Value); coachPI = coachPI.Where(t => t.ClassTime >= viewModel.DateFrom.Value); eventItems = eventItems.Where(t => t.StartDate >= viewModel.DateFrom.Value); givingItems = givingItems.Where(t => t.ClassTime >= viewModel.DateFrom.Value); } else if (viewModel.DateTo.HasValue) { dataItems = dataItems.Where(t => t.ClassTime < viewModel.DateTo.Value.AddDays(1)); coachPI = coachPI.Where(t => t.ClassTime < viewModel.DateTo.Value.AddDays(1)); eventItems = eventItems.Where(t => t.EndDate < viewModel.DateTo.Value.AddDays(1)); givingItems = givingItems.Where(t => t.ClassTime < viewModel.DateTo.Value.AddDays(1)); } var items = dataItems .ToList() .Select(d => new CalendarEventItem { EventTime = d.ClassTime, EventItem = d }).ToList(); items.AddRange(coachPI.Select(v => new CalendarEventItem { EventTime = v.ClassTime, EventItem = v })); items.AddRange(eventItems.Select(v => new CalendarEventItem { EventTime = v.StartDate, EventItem = v })); items.AddRange(givingItems.Select(v => new CalendarEventItem { EventTime = v.ClassTime, EventItem = v })); if (toHtml == true) { } else { Response.ContentType = "application/json"; } return(View("~/Views/LearnerProfile/Module/LearnerCalendarEvents.cshtml", items)); }
public ActionResult CalendarEvents(FullCalendarViewModel viewModel) { ViewBag.ViewModel = viewModel; DataLoadOptions ops = new DataLoadOptions(); ops.LoadWith <LessonTime>(i => i.GroupingLesson); ops.LoadWith <LessonTime>(i => i.RegisterLesson); ops.LoadWith <GroupingLesson>(i => i.RegisterLesson); ops.LoadWith <RegisterLesson>(i => i.UserProfile); ops.LoadWith <RegisterLesson>(i => i.LessonPriceType); models.GetDataContext().LoadOptions = ops; IQueryable <LessonTime> dataItems = models.GetTable <LessonTime>(); IQueryable <UserEvent> eventItems = models.GetTable <UserEvent>().Where(e => e.EventType == 1); if (viewModel.DateFrom.HasValue && viewModel.DateTo.HasValue) { dataItems = dataItems.Where(t => t.ClassTime >= viewModel.DateFrom.Value && t.ClassTime < viewModel.DateTo.Value.AddDays(1)); eventItems = eventItems.Where(t => (t.StartDate >= viewModel.DateFrom.Value && t.StartDate < viewModel.DateTo.Value.AddDays(1)) || (t.StartDate >= viewModel.DateFrom.Value && t.StartDate < viewModel.DateTo.Value.AddDays(1)) || (t.EndDate >= viewModel.DateFrom.Value && t.EndDate < viewModel.DateTo.Value.AddDays(1)) || (t.StartDate < viewModel.DateFrom.Value && t.EndDate >= viewModel.DateTo.Value)); } else if (viewModel.DateFrom.HasValue) { dataItems = dataItems.Where(t => t.ClassTime >= viewModel.DateFrom.Value); eventItems = eventItems.Where(t => t.StartDate >= viewModel.DateFrom.Value); } else if (viewModel.DateTo.HasValue) { dataItems = dataItems.Where(t => t.ClassTime < viewModel.DateTo.Value.AddDays(1)); eventItems = eventItems.Where(t => t.EndDate < viewModel.DateTo.Value.AddDays(1)); } if (viewModel.BranchID.HasValue) { dataItems = dataItems.Where(t => t.BranchID == viewModel.BranchID); eventItems = eventItems.Where(t => t.BranchID == viewModel.BranchID); } if (viewModel.CoachID.HasValue) { dataItems = dataItems.Where(t => t.AttendingCoach == viewModel.CoachID); eventItems = eventItems.Where(t => t.UID == viewModel.CoachID || t.GroupEvent.Any(g => g.UID == viewModel.CoachID)); } else { eventItems = eventItems.Where(f => false); } IEnumerable <CalendarEvent> items; if (viewModel.DefaultView == "month") { items = dataItems.ToFullCalendarEventMonthView() .Concat(eventItems.ToFullCalendarCustomizedEventMonthView()); } else { items = dataItems.ToFullCalendarEventWeekView() .Concat(eventItems.ToFullCalendarCustomizedEventWeekView()); } return(Json(items, JsonRequestBehavior.AllowGet)); }
public ActionResult CoachCalendar(FullCalendarViewModel viewModel) { ViewBag.ViewModel = viewModel; return(View("~/Views/CoachFacet/Module/CoachCalendar.ascx")); }
public IViewComponentResult CalendarEvents(FullCalendarViewModel viewModel, bool?toHtml = false) { ViewBag.ViewModel = viewModel; if (viewModel.KeyID != null) { viewModel.UID = viewModel.DecryptKeyValue(); } IQueryable <LessonTime> learnerLessons = models.PromptLearnerLessons(); IQueryable <LessonTime> coachPI = models.PromptCoachPILessons(); IQueryable <UserEvent> eventItems = models.GetTable <UserEvent>().Where(e => !e.SystemEventID.HasValue); if (viewModel.DateFrom.HasValue && viewModel.DateTo.HasValue) { learnerLessons = learnerLessons.Where(t => t.ClassTime >= viewModel.DateFrom.Value && t.ClassTime < viewModel.DateTo.Value.AddDays(1)); coachPI = coachPI.Where(t => t.ClassTime >= viewModel.DateFrom.Value && t.ClassTime < viewModel.DateTo.Value.AddDays(1)); eventItems = eventItems.Where(t => (t.StartDate >= viewModel.DateFrom.Value && t.StartDate < viewModel.DateTo.Value.AddDays(1)) || (t.StartDate >= viewModel.DateFrom.Value && t.StartDate < viewModel.DateTo.Value.AddDays(1)) || (t.EndDate >= viewModel.DateFrom.Value && t.EndDate < viewModel.DateTo.Value.AddDays(1)) || (t.StartDate < viewModel.DateFrom.Value && t.EndDate >= viewModel.DateTo.Value)); } else if (viewModel.DateFrom.HasValue) { learnerLessons = learnerLessons.Where(t => t.ClassTime >= viewModel.DateFrom.Value); coachPI = coachPI.Where(t => t.ClassTime >= viewModel.DateFrom.Value); eventItems = eventItems.Where(t => t.StartDate >= viewModel.DateFrom.Value); } else if (viewModel.DateTo.HasValue) { learnerLessons = learnerLessons.Where(t => t.ClassTime < viewModel.DateTo.Value.AddDays(1)); coachPI = coachPI.Where(t => t.ClassTime < viewModel.DateTo.Value.AddDays(1)); eventItems = eventItems.Where(t => t.EndDate < viewModel.DateTo.Value.AddDays(1)); } if (viewModel.BranchID.HasValue) { learnerLessons = learnerLessons.Where(t => t.BranchID == viewModel.BranchID); coachPI = coachPI.Where(t => t.BranchID == viewModel.BranchID); eventItems = eventItems.Where(t => t.BranchID == viewModel.BranchID); } if (viewModel.UID.HasValue) { learnerLessons = learnerLessons.Where(t => t.AttendingCoach == viewModel.UID || t.RegisterLesson.UID == viewModel.UID); coachPI = coachPI.Where(t => t.RegisterLesson.UID == viewModel.UID); eventItems = eventItems.Where(t => t.UID == viewModel.UID || t.GroupEvent.Any(g => g.UID == viewModel.UID)); } else { eventItems = eventItems.Where(f => false); } var items = learnerLessons .Select(d => new CalendarEventItem { EventTime = d.ClassTime, EventItem = d }).ToList(); items.AddRange(coachPI.GroupBy(l => l.GroupID) .ToList() .Select(d => new CalendarEventItem { EventTime = d.First().ClassTime, EventItem = d.First() })); items.AddRange(eventItems.Select(v => new CalendarEventItem { EventTime = v.StartDate, EventItem = v })); if (toHtml == true) { } else { //Response.ContentType = "application/json"; } return(View("~/Views/ConsoleHome/Module/CalendarEvents.cshtml", items)); }