public ActionResult CurrentLessonContentPieData(TrainingExecutionViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            var item = models.GetTable <TrainingExecution>().Where(f => f.ExecutionID == viewModel.ExecutionID).FirstOrDefault();

            if (item == null)
            {
                return(Json(new object[] { }, JsonRequestBehavior.AllowGet));
            }

            return(Json(item.TrainingExecutionStage
                        .Select(r => new
            {
                label = r.TrainingStage.Stage + " " + String.Format("{0:.#}", r.TotalMinutes) + "分鐘",
                data = r.TotalMinutes
            }).ToArray(), JsonRequestBehavior.AllowGet));
        }
        public ActionResult EditEmphasis(TrainingExecutionViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

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

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

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

            return(View("~/Views/Training/Module/EditEmphasis.ascx", item));
        }
        public ActionResult SwitchLessonFavorite(TrainingExecutionViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (models.GetTable <FavoriteLesson>().Any(f => f.ExecutionID == viewModel.ExecutionID && f.UID == viewModel.UID))
            {
                models.ExecuteCommand("delete FavoriteLesson where ExecutionID = {0} and UID = {1}", viewModel.ExecutionID, viewModel.UID);
            }
            else
            {
                models.ExecuteCommand(@"
                        insert FavoriteLesson (ExecutionID,UID)
                        SELECT        TrainingPlan.ExecutionID, UserProfile.UID
                        FROM            TrainingPlan CROSS JOIN
                                                 UserProfile
                        WHERE        (TrainingPlan.ExecutionID = {0}) AND (UserProfile.UID = {1})", viewModel.ExecutionID, viewModel.UID);
            }

            return(Json(new { result = true, message = models.GetTable <FavoriteLesson>().Where(f => f.ExecutionID == viewModel.ExecutionID).Count() }));
        }
        public ActionResult CommitEmphasis(TrainingExecutionViewModel viewModel)
        {
            ViewResult        result = (ViewResult)EditEmphasis(viewModel);
            TrainingExecution model  = result.Model as TrainingExecution;

            if (model == null)
            {
                return(result);
            }

            viewModel.Emphasis = viewModel.Emphasis.GetEfficientString();
            if (viewModel.Emphasis == null)
            {
                return(Json(new { result = false, message = "Unfinished?!" }));
            }
            else if (viewModel.Emphasis.Length > 20)
            {
                return(Json(new { result = false, message = "太長了!超過20個中英文字" }));
            }
            model.Emphasis = viewModel.Emphasis;
            models.SubmitChanges();

            return(Json(new { result = true }));
        }