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 })); }
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 })); }
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)); }
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)); }