public async Task <ActionResult> CreateDiagnosisAsync(FitnessDiagnosisViewModel viewModel)
        {
            var model = models.GetTable <UserProfile>().Where(u => u.UID == viewModel.UID).FirstOrDefault();

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

            var item = model.BodyDiagnosis.OrderByDescending(d => d.DiagnosisID).FirstOrDefault();

            if (item != null)
            {
                if (item.LevelID == (int)Naming.DocumentLevelDefinition.暫存)
                {
                    return(Json(new { result = false, message = "診斷未完成之前不可以新增!!" }));
                }
            }

            var profile = await HttpContext.GetUserAsync();

            item = new BodyDiagnosis
            {
                CoachID       = profile.UID,
                DiagnosisDate = DateTime.Now,
                LearnerID     = model.UID,
                LevelID       = (int)Naming.DocumentLevelDefinition.暫存
            };
            model.BodyDiagnosis.Add(item);
            models.SubmitChanges();

            ViewBag.DataItem  = item;
            ViewBag.ViewModel = viewModel;
            return(Json(new { result = true, message = item.DiagnosisID }));
        }
        // GET: FitnessDiagnosis
        public ActionResult Diagnose(FitnessDiagnosisViewModel viewModel)
        {
            var model = models.GetTable <UserProfile>().Where(u => u.UID == viewModel.UID).FirstOrDefault();

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

            BodyDiagnosis item;
            BodyDiagnosis first = model.BodyDiagnosis.OrderBy(d => d.DiagnosisID).FirstOrDefault();

            if (viewModel.DiagnosisID.HasValue)
            {
                item = model.BodyDiagnosis.Where(d => d.DiagnosisID == viewModel.DiagnosisID).FirstOrDefault();
            }
            else
            {
                item = model.BodyDiagnosis.OrderBy(d => d.DiagnosisID).FirstOrDefault();
            }
            ViewBag.DataItem = item;
            ViewBag.IsFirst  = first != null && first == item;

            if (item != null)
            {
                viewModel.DiagnosisID = item.DiagnosisID;
            }

            ViewBag.ViewModel = viewModel;
            return(View("~/Views/FitnessDiagnosis/Module/Diagnose.ascx", model));
        }
        public ActionResult DiagnoseByLearner(FitnessDiagnosisViewModel viewModel)
        {
            BodyDiagnosis item;
            BodyDiagnosis first = models.GetTable <BodyDiagnosis>()
                                  .Where(d => d.LearnerID == viewModel.UID)
                                  .OrderBy(d => d.DiagnosisID).First();

            if (viewModel.DiagnosisID.HasValue)
            {
                item = models.GetTable <BodyDiagnosis>()
                       .Where(d => d.LearnerID == viewModel.UID)
                       .Where(d => d.DiagnosisID == viewModel.DiagnosisID).First();
            }
            else
            {
                item = models.GetTable <BodyDiagnosis>()
                       .Where(d => d.LearnerID == viewModel.UID)
                       .OrderBy(d => d.DiagnosisID).First();
            }

            ViewBag.DataItem = item;
            ViewBag.IsFirst  = first == item;


            ViewBag.ViewModel = viewModel;
            return(View("~/Views/FitnessDiagnosis/Module/DiagnoseByLearner.ascx", item.UserProfile));
        }
        public ActionResult DiagnosisContent(FitnessDiagnosisViewModel viewModel)
        {
            var item = models.GetTable <BodyDiagnosis>().Where(u => u.LearnerID == viewModel.UID &&
                                                               u.DiagnosisID == viewModel.DiagnosisID).FirstOrDefault();

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

            BodyDiagnosis first = models.GetTable <BodyDiagnosis>().Where(u => u.LearnerID == viewModel.UID)
                                  .OrderBy(d => d.DiagnosisID).FirstOrDefault();

            ViewBag.IsFirst = first == item;


            ViewBag.ViewModel = viewModel;
            return(View("~/Views/FitnessDiagnosis/Module/DiagnosisContent.ascx", item));
        }