public ActionResult SelectTrainingAids(TrainingItemViewModel viewModel)
        {
            ViewResult result = (ViewResult)EditTrainingItem(viewModel);

            result.ViewName = "~/Views/Training/Module/SelectTrainingAids.ascx";
            return(result);
        }
        public ActionResult EditBreakInterval(TrainingItemViewModel viewModel)
        {
            ViewResult result = (ViewResult)EditTrainingItem(viewModel);

            result.ViewName = "~/Views/Training/Module/EditBreakInterval.ascx";
            return(result);
        }
Example #3
0
        public ActionResult EditBreakInterval(TrainingItemViewModel viewModel)
        {
            ViewResult result = (ViewResult)EditTrainingItem(viewModel);

            result.ViewName = "~/Views/LearnerProfile/ProfileModal/EditBreakInterval.cshtml";
            return(result);
        }
        public ActionResult CommitBreakInterval(TrainingItemViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            //if (!ModelState.IsValid)
            //{
            //    ViewBag.ModelState = this.ModelState;
            //    return View(Settings.Default.ReportInputError);
            //}

            TrainingExecution execution = models.GetTable <TrainingExecution>().Where(t => t.ExecutionID == viewModel.ExecutionID).FirstOrDefault();

            if (execution == null)
            {
                return(Json(new { result = false, message = "預編課程項目不存在!!" }));
            }

            var stage = models.GetTable <TrainingStage>().Where(s => s.StageID == viewModel.StageID).FirstOrDefault();

            if (stage == null)
            {
                return(View("~/Views/Shared/JsAlert.cshtml", model: "資料錯誤!!"));
            }

            TrainingItem item = execution.TrainingItem.Where(i => i.ItemID == viewModel.ItemID).FirstOrDefault();

            if (item == null)
            {
                item = new TrainingItem
                {
                    ExecutionID = execution.ExecutionID,
                    Sequence    = execution.TrainingItem.Count,
                    TrainingID  = stage.TrainingStageItem
                                  .Select(t => t.TrainingType)
                                  .Where(t => t.BreakMark == true)
                                  .Select(t => t.TrainingID).FirstOrDefault()
                };
                execution.TrainingItem.Add(item);
            }

            item.BreakIntervalInSecond = viewModel.BreakInterval = viewModel.BreakInterval.GetEfficientString();
            item.Repeats = viewModel.Repeats = viewModel.Repeats.GetEfficientString();
            item.Remark  = viewModel.Remark;

            models.SubmitChanges();

            if (item.Repeats != null)
            {
                calculateTotalMinutes(execution, stage.StageID);
            }

            return(Json(new { result = true, message = "", stage.StageID }));
        }
Example #5
0
        public ActionResult EditTrainingItem(TrainingItemViewModel viewModel)
        {
            if (!models.GetTable <TrainingExecution>().Any(t => t.ExecutionID == viewModel.ExecutionID))
            {
                return(View("~/Views/ConsoleHome/Shared/AlertMessage.cshtml", model: "資料錯誤!!"));
            }

            var stage = models.GetTable <TrainingStage>().Where(s => s.StageID == viewModel.StageID).FirstOrDefault();

            if (stage == null)
            {
                return(View("~/Views/ConsoleHome/Shared/AlertMessage.cshtml", model: "資料錯誤!!"));
            }
            ViewBag.TrainingStage = stage;

            TrainingItem item = models.GetTable <TrainingItem>().Where(x => x.ItemID == viewModel.ItemID).FirstOrDefault();

            if (item != null)
            {
                viewModel.ItemID            = item.ItemID;
                viewModel.TrainingID        = item.TrainingID;
                viewModel.GoalTurns         = item.GoalTurns;
                viewModel.GoalStrength      = item.GoalStrength;
                viewModel.ExecutionID       = item.ExecutionID;
                viewModel.Description       = item.Description;
                viewModel.ActualStrength    = item.ActualStrength;
                viewModel.ActualTurns       = item.ActualTurns;
                viewModel.Remark            = item.Remark;
                viewModel.Repeats           = item.Repeats;
                viewModel.DurationInSeconds = item.DurationInMinutes * 60;
                viewModel.BreakInterval     = item.BreakIntervalInSecond;
                viewModel.PurposeID         = item.PurposeID;

                viewModel.AidID = item.TrainingItemAids.Select(s => s.AidID).ToArray();
            }

            ViewBag.ViewModel = viewModel;
            if (item == null)
            {
                return(View("~/Views/LearnerProfile/ProfileModal/CreateTrainingItem.cshtml", item));
            }
            else
            {
                return(View("~/Views/LearnerProfile/ProfileModal/EditTrainingItem.cshtml", item));
            }
        }
        public ActionResult DeleteTrainingItem(TrainingItemViewModel viewModel)
        {
            var item = models.GetTable <TrainingItem>().Where(i => i.ItemID == viewModel.ItemID).FirstOrDefault();

            if (item == null)
            {
                return(Json(new { result = false, message = "課程項目不存在!!" }, JsonRequestBehavior.AllowGet));
            }

            var execution = item.TrainingExecution;

            if (item.PurposeID.HasValue)
            {
                models.ExecuteCommand("delete PersonalExercisePurposeItem where ItemID = {0}", item.PurposeID);
            }
            models.ExecuteCommand("delete TrainingItem where ItemID = {0}", item.ItemID);

            calculateTotalMinutes(execution, viewModel.StageID.Value);

            return(Json(new { result = true, viewModel.StageID }, JsonRequestBehavior.AllowGet));
        }
 // GET: Training
 public ActionResult ShowTrainingAids(TrainingItemViewModel viewModel)
 {
     ViewBag.ViewModel = viewModel;
     return(View("~/Views/Training/Module/ShowTrainingAids.ascx"));
 }
        public ActionResult CommitTrainingItem(TrainingItemViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            viewModel.Description = viewModel.Description.GetEfficientString();
            if (viewModel.Description == null)
            {
                ModelState.AddModelError("Description", "請輸入動作");
            }

            //viewModel.ActualStrength = viewModel.ActualStrength.GetEfficientString();
            //if(viewModel.ActualStrength == null)
            //{
            //    ModelState.AddModelError("ActualStrength", "請輸入強度");
            //}

            //viewModel.ActualTurns = viewModel.ActualTurns.GetEfficientString();
            //if (viewModel.ActualTurns == null)
            //{
            //    ModelState.AddModelError("ActualTurns", "請輸入次數");
            //}

            if (!viewModel.DurationInSeconds.HasValue)
            {
                ModelState.AddModelError("DurationInSeconds", "請輸入時間");
            }

            if (!viewModel.TrainingID.HasValue)
            {
                ModelState.AddModelError("TrainingID", "請選擇類別");
            }

            viewModel.Remark = viewModel.Remark.GetEfficientString();
            if (viewModel.PurposeID.HasValue && viewModel.Remark == null)
            {
                ModelState.AddModelError("Remark", "請輸入里程碑內容");
            }

            if (!ModelState.IsValid)
            {
                ViewBag.ModelState = this.ModelState;
                return(View(Settings.Default.ReportInputError));
            }

            TrainingExecution execution = models.GetTable <TrainingExecution>().Where(t => t.ExecutionID == viewModel.ExecutionID).FirstOrDefault();

            if (execution == null)
            {
                return(Json(new { result = false, message = "預編課程項目不存在!!" }));
            }

            TrainingItem item = execution.TrainingItem.Where(i => i.ItemID == viewModel.ItemID).FirstOrDefault();

            if (item == null)
            {
                item = new TrainingItem
                {
                    ExecutionID = execution.ExecutionID,
                    Sequence    = execution.TrainingItem.Count
                };
                execution.TrainingItem.Add(item);
            }

            item.GoalStrength      = viewModel.GoalStrength;
            item.GoalTurns         = viewModel.GoalTurns;
            item.Description       = viewModel.Description;
            item.TrainingID        = viewModel.TrainingID;
            item.Remark            = viewModel.Remark;
            item.DurationInMinutes = viewModel.DurationInMinutes;

            models.SubmitChanges();

            models.ExecuteCommand("delete TrainingItemAids where ItemID = {0}", item.ItemID);
            if (viewModel.AidID != null && viewModel.AidID.Length > 0)
            {
                foreach (var aid in viewModel.AidID)
                {
                    item.TrainingItemAids.Add(new TrainingItemAids {
                        AidID = aid
                    });
                }
                models.SubmitChanges();
            }

            calculateTotalMinutes(execution, viewModel.StageID.Value);
            bool UpdatePurpose = false;

            if (item.PurposeID.HasValue)
            {
                if (viewModel.PurposeID.HasValue)
                {
                    models.ExecuteCommand("Update PersonalExercisePurposeItem set PurposeItem = {0} where ItemID = {1}", viewModel.Remark, item.PurposeID);
                }
                else
                {
                    models.ExecuteCommand("delete PersonalExercisePurposeItem where ItemID = {0}", item.PurposeID);
                }
                UpdatePurpose = true;
            }
            else if (viewModel.PurposeID == -1 && item.Remark != null)
            {
                var purpose = item.TrainingExecution.TrainingPlan.LessonTime.RegisterLesson.UserProfile.AssertPurposeItem(models, item.Remark);
                purpose.CompleteDate = item.TrainingExecution.TrainingPlan.LessonTime.ClassTime;    //DateTime.Now;
                item.PurposeID       = purpose.ItemID;
                models.SubmitChanges();
                UpdatePurpose = true;
            }

            return(Json(new { result = true, message = "", viewModel.StageID, UpdatePurpose }));
        }