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

            return(LoadCompleteExercisePurposeItems(viewModel));
        }
Пример #2
0
        public override IViewComponentResult Invoke(ExercisePurposeViewModel viewModel)
        {
            models      = (ModelSource <UserProfile>)HttpContext.Items["Models"];
            _modelState = ViewContext.ModelState;

            return(EditExercisePurpose(viewModel));
        }
Пример #3
0
        public virtual IViewComponentResult Invoke(ExercisePurposeViewModel viewModel)
        {
            models      = (ModelSource <UserProfile>)HttpContext.Items["Models"];
            _modelState = ViewContext.ModelState;

            return(View());
        }
Пример #4
0
        public ActionResult CommitLearnerFeature(ExercisePurposeViewModel viewModel)
        {
            ActionResult result = prepareLearner(viewModel, out UserProfile item);

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

            viewModel.AbilityStyle = viewModel.AbilityStyle.GetEfficientString();
            if (viewModel.AbilityStyle == null)
            {
                ModelState.AddModelError("AbilityStyle", "請選擇運動類型");
            }

            if (!viewModel.AbilityLevel.HasValue)
            {
                ModelState.AddModelError("AbilityLevel", "請選擇Level");
            }

            if ((!viewModel.Cardiopulmonary.HasValue || viewModel.Cardiopulmonary == 0) &&
                (!viewModel.MuscleStrength.HasValue || viewModel.MuscleStrength == 0) &&
                (!viewModel.Flexibility.HasValue || viewModel.Flexibility == 0))
            {
                ModelState.AddModelError("StrengthFeature", "請選擇至少一項強度");
            }

            if (!ModelState.IsValid)
            {
                ViewBag.ModelState = ModelState;
                return(View(ConsoleHomeController.InputErrorView));
            }

            if (item.PersonalExercisePurpose == null)
            {
                item.PersonalExercisePurpose = new PersonalExercisePurpose {
                };
            }

            viewModel.Ability = $"{viewModel.AbilityStyle}({viewModel.AbilityLevel})";

            var purpose = item.PersonalExercisePurpose;

            //purpose.Purpose = viewModel.Purpose;
            purpose.PowerAbility    = viewModel.Ability;
            purpose.Flexibility     = viewModel.Flexibility;
            purpose.Cardiopulmonary = viewModel.Cardiopulmonary;
            purpose.MuscleStrength  = viewModel.MuscleStrength;
            purpose.AbilityStyle    = viewModel.AbilityStyle;
            purpose.AbilityLevel    = (int?)viewModel.AbilityLevel;

            models.SubmitChanges();

            return(Json(new { result = true, message = viewModel.Ability }));
        }
Пример #5
0
        public ActionResult LoadCompleteExercisePurposeItems(ExercisePurposeViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            var items = models.GetTable <PersonalExercisePurposeItem>()
                        .Where(p => p.UID == viewModel.UID)
                        .Where(p => p.CompleteDate.HasValue)
                        .OrderByDescending(p => p.CompleteDate);

            return(View("~/Views/LearnerProfile/Module/TrainingMilestoneItems.cshtml", items));
        }
        public ActionResult DeletePurposeItem(ExercisePurposeViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            var item = models.DeleteAny <PersonalExercisePurposeItem>(p => p.UID == viewModel.UID && p.ItemID == viewModel.ItemID);

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

            return(Json(new { result = true }));
        }
        public ActionResult EditPowerAbility(ExercisePurposeViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            var item = models.GetTable <UserProfile>().Where(u => u.UID == viewModel.UID).FirstOrDefault();

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

            return(View("~/Views/ClassFacet/Module/EditPowerAbility.ascx", item));
        }
Пример #8
0
        public IViewComponentResult EditExercisePurpose(ExercisePurposeViewModel viewModel)
        {
            ViewViewComponentResult result = (ViewViewComponentResult)EditLearnerFeature(viewModel);

            if (result.ViewData.Model is not UserProfile)
            {
                return(result);
            }

            result.ViewName = "~/Views/LearnerProfile/Module/EditExercisePurpose.cshtml";
            return(result);
        }
Пример #9
0
        public ActionResult EditExercisePurpose(ExercisePurposeViewModel viewModel)
        {
            ViewResult result = (ViewResult)EditLearnerFeature(viewModel);

            if (!(result.Model is UserProfile item))
            {
                return(result);
            }

            result.ViewName = "~/Views/LearnerProfile/Module/EditExercisePurpose.cshtml";
            return(result);
        }
Пример #10
0
        public ActionResult GetPowerAbility(ExercisePurposeViewModel viewModel)
        {
            ViewResult  result = (ViewResult)EditPowerAbility(viewModel);
            UserProfile item   = result.Model as UserProfile;

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

            var data = item.PersonalExercisePurpose;

            return(Json(new { data.Cardiopulmonary, data.Flexibility, data.MuscleStrength, data.PowerAbility }));
        }
        public ActionResult GetPowerAbility(ExercisePurposeViewModel viewModel)
        {
            ViewResult  result = (ViewResult)EditPowerAbility(viewModel);
            UserProfile item   = result.Model as UserProfile;

            if (item == null || item.PersonalExercisePurpose == null)
            {
                return(Json(new object { }));
            }

            var data = item.PersonalExercisePurpose;

            return(Content(new { data.Cardiopulmonary, data.Flexibility, data.MuscleStrength, data.PowerAbility }.JsonStringify(), "application/json"));
        }
        public ActionResult CompletePurposeItem(ExercisePurposeViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            var item = models.GetTable <PersonalExercisePurposeItem>().Where(p => p.UID == viewModel.UID && p.ItemID == viewModel.ItemID).FirstOrDefault();

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

            item.CompleteDate = DateTime.Now;
            models.SubmitChanges();

            return(Json(new { result = true }));
        }
Пример #13
0
        private ActionResult prepareLearner(ExercisePurposeViewModel viewModel, out UserProfile item)
        {
            ViewBag.ViewModel = viewModel;

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

            item = models.GetTable <UserProfile>().Where(u => u.UID == viewModel.UID).FirstOrDefault();
            if (item == null)
            {
                return(View("~/Views/ConsoleHome/Shared/AlertMessage.ascx", model: "學員資料錯誤!!"));
            }

            return(null);
        }
        public ActionResult CommitPurposeItem(ExercisePurposeViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            var item = models.GetTable <UserProfile>().Where(u => u.UID == viewModel.UID).FirstOrDefault();

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

            viewModel.PurposeItem = viewModel.PurposeItem.GetEfficientString();
            if (viewModel.PurposeItem == null || viewModel.PurposeItem.Length > 20)
            {
                return(Json(new { result = false, message = "請輸入目標最多20個字!!" }));
            }

            item.AssertPurposeItem(models, viewModel.PurposeItem);

            return(Json(new { result = true }));
        }
        public ActionResult ExercisePurposeItemList(ExercisePurposeViewModel viewModel)
        {
            ViewBag.ViewModel  = viewModel;
            ViewBag.IsComplete = viewModel.IsComplete;

            var item = models.GetTable <PersonalExercisePurpose>().Where(u => u.UID == viewModel.UID).FirstOrDefault();

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

            if (viewModel.IsComplete == true)
            {
                return(View("~/Views/ClassFacet/Module/CompletePurposeItemList.ascx", item));
            }
            else
            {
                return(View("~/Views/ClassFacet/Module/ExercisePurposeItemList.ascx", item));
            }
        }
        public ActionResult CommitExercisePurpose(ExercisePurposeViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            var item = models.GetTable <UserProfile>().Where(u => u.UID == viewModel.UID).FirstOrDefault();

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

            if (item.PersonalExercisePurpose == null)
            {
                item.PersonalExercisePurpose = new PersonalExercisePurpose {
                };
            }

            item.PersonalExercisePurpose.Purpose = viewModel.Purpose;
            models.SubmitChanges();

            return(Json(new { result = true, message = viewModel.Purpose }));
        }
        public ActionResult CommitPowerAbility(ExercisePurposeViewModel viewModel)
        {
            ViewResult  result = (ViewResult)EditPowerAbility(viewModel);
            UserProfile item   = result.Model as UserProfile;

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

            if (item.PersonalExercisePurpose == null)
            {
                item.PersonalExercisePurpose = new PersonalExercisePurpose {
                };
            }

            switch (viewModel.Feature)
            {
            case "Flexibility":
                item.PersonalExercisePurpose.Flexibility = viewModel.Point;
                break;

            case "Cardiopulmonary":
                item.PersonalExercisePurpose.Cardiopulmonary = viewModel.Point;
                break;

            case "MuscleStrength":
                item.PersonalExercisePurpose.MuscleStrength = viewModel.Point;
                break;

            default:
                item.PersonalExercisePurpose.PowerAbility = viewModel.Ability;
                break;
            }

            models.SubmitChanges();

            return(Json(new { result = true, message = viewModel.Ability }));
        }
Пример #18
0
        public ActionResult EditLearnerFeature(ExercisePurposeViewModel viewModel)
        {
            ActionResult result = prepareLearner(viewModel, out UserProfile item);

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

            var purpose = item.PersonalExercisePurpose;

            if (purpose != null)
            {
                viewModel.Purpose         = purpose.Purpose.GetEfficientString();
                viewModel.Ability         = purpose.PowerAbility;
                viewModel.Cardiopulmonary = purpose.Cardiopulmonary;
                viewModel.Flexibility     = purpose.Flexibility;
                viewModel.MuscleStrength  = purpose.MuscleStrength;
                viewModel.AbilityStyle    = purpose.AbilityStyle;
                viewModel.AbilityLevel    = (Naming.PowerAbilityLevel?)purpose.AbilityLevel;
            }

            return(View("~/Views/LearnerProfile/Module/EditLearnerFeature.cshtml", item));
        }
Пример #19
0
        public ActionResult CommitExercisePurpose(ExercisePurposeViewModel viewModel)
        {
            ActionResult result = prepareLearner(viewModel, out UserProfile item);

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

            viewModel.Purpose = viewModel.Items?.Purpose.GetEfficientString();
            if (viewModel.Purpose == null)
            {
                ModelState.AddModelError("Purpose", "週期性目標");
            }

            var itemCount = models.GetTable <PersonalExercisePurposeItem>()
                            .Where(p => !p.CompleteDate.HasValue)
                            .Where(p => p.UID == item.UID).Count();

            if (viewModel.Items != null)
            {
                if (viewModel.Items.ItemID != null)
                {
                    foreach (var id in viewModel.Items.ItemID)
                    {
                        if (models.GetTable <PersonalExercisePurposeItem>().Any(p => p.UID == item.UID && p.ItemID == id))
                        {
                            itemCount--;
                        }
                    }
                }
                if (viewModel.Items.PurposeItem != null)
                {
                    itemCount = itemCount + viewModel.Items.PurposeItem
                                .Select(i => i.GetEfficientString())
                                .Where(i => i != null).Count();
                }
            }

            if (!(itemCount >= 1 && itemCount <= 3))
            {
                ModelState.AddModelError("PurposeItem", "近期目標至少一項,最多三項!");
            }

            if (!ModelState.IsValid)
            {
                ViewBag.ModelState = ModelState;
                return(View(ConsoleHomeController.InputErrorView));
            }

            if (item.PersonalExercisePurpose == null)
            {
                item.PersonalExercisePurpose = new PersonalExercisePurpose {
                };
            }

            var purpose = item.PersonalExercisePurpose;

            //purpose.Purpose = viewModel.Purpose;
            purpose.Purpose = viewModel.Purpose;

            if (viewModel.Items != null)
            {
                if (viewModel.Items.ItemID != null)
                {
                    foreach (var id in viewModel.Items.ItemID)
                    {
                        models.ExecuteCommand("delete PersonalExercisePurposeItem where UID = {0} and ItemID = {1}", item.UID, id);
                    }
                }
                if (viewModel.Items.PurposeItem != null)
                {
                    foreach (var p in viewModel.Items.PurposeItem
                             .Select(i => i.GetEfficientString())
                             .Where(i => i != null))
                    {
                        models.GetTable <PersonalExercisePurposeItem>().InsertOnSubmit(new PersonalExercisePurposeItem
                        {
                            PersonalExercisePurpose = purpose,
                            InitialDate             = DateTime.Now,
                            PurposeItem             = p
                        });
                    }
                }
            }

            models.SubmitChanges();

            return(Json(new { result = true, message = viewModel.Purpose }));
        }