示例#1
0
        public ActionResult AttendLesson(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            var profile = HttpContext.GetUser();

            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }

            LessonTime item = models.GetTable <LessonTime>().Where(t => t.LessonID == viewModel.LessonID).FirstOrDefault();

            if (item == null)
            {
                return(Json(new { result = false, message = "未登記此上課時間!!" }, JsonRequestBehavior.AllowGet));
            }

            if (item.TrainingPlan.Select(p => p.TrainingExecution.Emphasis).Any(a => a == null))
            {
                return(Json(new { result = false, message = "未輸入課表重點,無法完成上課!!" }, JsonRequestBehavior.AllowGet));
            }

            item.LessonPlan.Remark = viewModel.Remark.GetEfficientString();

            models.AttendLesson(item, profile, viewModel.QuestionnaireGroupID);
            //foreach (var r in item.GroupingLesson.RegisterLesson)
            //{
            //    models.CheckLearnerQuestionnaireRequest(r);
            //}

            return(Json(new { result = true, message = "資料存檔完成!!" }));
        }
        public async Task <ActionResult> CommitCrossBranchAsync(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }

            var profile = await HttpContext.GetUserAsync();

            LessonTime item = profile.PreferredLessonTimeToApprove(models)
                              .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault();

            if (item == null)
            {
                return(Json(new { result = false, message = "課程資料錯誤!!" }));
            }

            item.PreferredLessonTime.ApprovalDate = DateTime.Now;
            item.PreferredLessonTime.ApproverID   = profile.UID;
            models.SubmitChanges();

            return(Json(new { result = true }));
        }
示例#3
0
        public ActionResult CheckLessonEmphasis(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }

            LessonTime item = models.GetTable <LessonTime>().Where(t => t.LessonID == viewModel.LessonID).FirstOrDefault();

            var items = models.GetTable <TrainingPlan>().Where(p => p.LessonID == viewModel.LessonID)
                        .Where(p => p.TrainingExecution.Emphasis == null)
                        .Select(p => p.RegisterLesson);

            int count = items.Count();

            if (count == 1 && item.TrainingPlan.Count() == 1)
            {
                return(Json(new { result = false, message = "請先輸入上課重點!?" }, JsonRequestBehavior.AllowGet));
            }
            else if (count > 0)
            {
                return(Json(new { result = false, message = String.Concat(String.Join("、", items.Select(r => r.UserProfile.RealName)), "的上課重點未完成!?") }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { result = true }, JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult CopyTrainingPlan(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }

            LessonTime copyTo = models.GetTable <LessonTime>()
                                .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault();

            if (copyTo == null)
            {
                return(Json(new { result = false, message = "課程資料錯誤!!" }));
            }

            LessonTime copyFrom = models.GetTable <LessonTime>()
                                  .Where(l => l.LessonID == viewModel.CopyFrom).FirstOrDefault();

            if (copyTo == null)
            {
                return(Json(new { result = false, message = "複製來源課程資料錯誤!!" }));
            }

            var source = copyFrom.AssertLearnerTrainingPlan(models, viewModel.UID.Value);
            var target = copyTo.AssertLearnerTrainingPlan(models, viewModel.UID.Value);

            models.CloneTrainingPlan(source, target, false);

            return(Json(new { result = true }));
        }
示例#5
0
        public ActionResult SelectToCloneCoachPITrainingPlan(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }

            LessonTime item = models.GetTable <LessonTime>()
                              .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault();

            if (item == null)
            {
                return(Json(new { result = false, message = "課程資料錯誤!!" }, JsonRequestBehavior.AllowGet));
            }

            var lessonItems = models.GetTable <LessonTime>().Where(l => l.GroupID == item.GroupID && l.LessonID != item.LessonID);

            if (lessonItems.Count() < 1)
            {
                return(Json(new { result = false, message = "課程非多人團體課!!" }, JsonRequestBehavior.AllowGet));
            }

            var items = lessonItems.Where(l => l.LessonID != item.LessonID)
                        .Select(l => l.RegisterLesson.UserProfile);

            return(View("~/Views/LessonConsole/Module/SelectToCloneTrainingPlan.cshtml", items));
        }
        public ActionResult SelectToCloneLearnerTrainingPlan(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }

            LessonTime item = models.GetTable <LessonTime>()
                              .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault();

            if (item == null)
            {
                return(Json(new { result = false, message = "課程資料錯誤!!" }));
            }

            var lessonItems = item.GroupingLesson.RegisterLesson;

            if (lessonItems.Count() < 2)
            {
                return(Json(new { result = false, message = "課程非一對多!!" }));
            }

            var items = models.GetTable <RegisterLesson>().Where(r => r.RegisterGroupID == item.GroupID)
                        .Where(l => l.UID != viewModel.UID)
                        .Select(l => l.UserProfile);

            return(View("~/Views/LessonConsole/Module/SelectToCloneTrainingPlan.cshtml", items));
        }
示例#7
0
        public ActionResult RevokeBooking(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }

            LessonTime item = models.GetTable <LessonTime>().Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault();

            if (item == null)
            {
                return(View("~/Views/ConsoleHome/Shared/JsAlert.cshtml", model: "課程資料錯誤!!"));
            }
            else if (item.ContractTrustTrack.Any(t => t.SettlementID.HasValue))
            {
                return(View("~/Views/ConsoleHome/Shared/JsAlert.cshtml", model: "課程資料已信託,不可取消!!"));
            }
            //else if (item.LessonPlan != null || item.TrainingPlan.Count > 0)
            //{
            //    ViewBag.Message = "請先刪除預編課程!!";
            //    return RedirectToAction("Coach", "Account", new { lessonDate = lessonDate, message= "請先刪除預編課程!!" });
            //}
            item.RevokeBooking(models);

            return(View("~/Views/ConsoleHome/Shared/JsAlert.cshtml", model: "課程預約已取消!!"));
        }
        // GET: LessonConsole
        public ActionResult ProcessCrossBranch(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }
            var item = models.GetTable <LessonTime>().Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault();

            return(View("~/Views/LessonConsole/ProcessModal/ProcessCrossBranch.cshtml", item));
        }
        public ActionResult CloneLearnerTrainingPlan(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }

            LessonTime item = models.GetTable <LessonTime>()
                              .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault();

            if (item == null)
            {
                return(Json(new { result = false, message = "課程資料錯誤!!" }));
            }

            IEnumerable <RegisterLesson> lessonItems = item.GroupingLesson.RegisterLesson;

            if (lessonItems.Count() < 2)
            {
                return(Json(new { result = false, message = "課程非一對多!!" }));
            }

            if (viewModel.CopyFrom.HasValue)
            {
                if (!viewModel.UID.HasValue)
                {
                    return(Json(new { result = false, message = "未指定同步目標之學員!!" }));
                }

                var source = item.AssertLearnerTrainingPlan(models, viewModel.CopyFrom.Value);
                var target = item.AssertLearnerTrainingPlan(models, viewModel.UID.Value);
                models.CloneTrainingPlan(source, target);
            }
            else
            {
                if (!viewModel.UID.HasValue)
                {
                    return(Json(new { result = false, message = "未指定同步來源之學員!!" }));
                }

                var source = item.AssertLearnerTrainingPlan(models, viewModel.UID.Value);
                foreach (var lesson in lessonItems.Where(r => r.UID != viewModel.UID.Value))
                {
                    var target = item.AssertLearnerTrainingPlan(models, lesson.UID);
                    models.CloneTrainingPlan(source, target);
                }
            }
            return(Json(new { result = true }));
        }
        public ActionResult CloneCoachPITrainingPlan(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }

            LessonTime item = models.GetTable <LessonTime>()
                              .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault();

            if (item == null)
            {
                return(Json(new { result = false, message = "課程資料錯誤!!" }));
            }

            var lessonItems = models.GetTable <LessonTime>().Where(l => l.GroupID == item.GroupID && l.LessonID != item.LessonID);

            if (lessonItems.Count() == 0)
            {
                return(Json(new { result = false, message = "課程非一對多!!" }));
            }

            if (viewModel.CopyFrom.HasValue)
            {
                var sourceLesson = item.GroupingLesson.LessonTime.Where(l => l.RegisterLesson.UID == viewModel.CopyFrom).FirstOrDefault();

                if (sourceLesson != null)
                {
                    var target = item.AssertTrainingPlan(models);
                    models.CloneTrainingPlan(sourceLesson.AssertTrainingPlan(models), target);

                    return(Json(new { result = true }));
                }
            }
            else
            {
                var source = item.AssertTrainingPlan(models);
                foreach (var lesson in lessonItems)
                {
                    var target = lesson.AssertTrainingPlan(models);
                    models.CloneTrainingPlan(source, target);
                }
                return(Json(new { result = true }));
            }

            return(Json(new { result = false, message = "複製失敗!!" }));
        }
        public ActionResult LessonContentDetails(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }

            LessonTime item = models.GetTable <LessonTime>()
                              .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault();

            if (item == null)
            {
                return(Json(new { result = false, message = "課程資料錯誤!!" }));
            }

            return(View("~/Views/LessonConsole/Module/LessonContentDetails.cshtml", item));
        }
        public IViewComponentResult LessonContentDetails(LessonTimeBookingViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (viewModel.KeyID != null)
            {
                viewModel.LessonID = viewModel.DecryptKeyValue();
            }

            LessonTime item = models.GetTable <LessonTime>()
                              .Where(l => l.LessonID == viewModel.LessonID).FirstOrDefault();

            if (item == null)
            {
                return(Content("課程資料錯誤!!"));
            }

            return(View("~/Views/LessonConsole/Module/LessonContentDetails.cshtml", item));
        }