Exemple #1
0
        public IViewComponentResult Invoke(FullCalendarViewModel viewModel)
        {
            models      = (ModelSource <UserProfile>)HttpContext.Items["Models"];
            _modelState = ViewContext.ModelState;

            return(CalendarEventItems(viewModel));
        }
Exemple #2
0
        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"));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        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"));
 }
Exemple #8
0
        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));
        }
Exemple #9
0
        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));
        }
Exemple #10
0
 public ActionResult CoachCalendar(FullCalendarViewModel viewModel)
 {
     ViewBag.ViewModel = viewModel;
     return(View("~/Views/CoachFacet/Module/CoachCalendar.ascx"));
 }
Exemple #11
0
        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));
        }