コード例 #1
0
 private Exercise MapExerciseViewModel(ExerciseViewModel model)
 {
     var sets = new List<Set>();
     foreach (var set in model.Sets)
     {
         sets.Add(MapSetViewModel(set));
     }
     var exercise = new Exercise
     {
         Id = model.Id,
         Comment = model.Comment,
         ExerciseType = model.ExerciseType,
         Sets = sets
     };
     return exercise;
 }
コード例 #2
0
        public async Task <IActionResult> List(FieldSort currentSort, int currentPage = 1, string sortBy = "")
        {
            if (TempData["ElementErrorShort"] != null || TempData["ElementErrorLong"] != null)
            {
                ModelState.AddModelError((string)TempData["ElementErrorShort"], (string)TempData["ElementErrorLong"] ?? (string)TempData["ElementErrorShort"]);
            }

            var exercises = await appContext.Exercises.ToListAsync();

            int totalItems = exercises.Count;

            var model = new ExerciseViewModel
            {
                CurrentPage = currentPage,
                CurrentSort = currentSort,
                ItemOnPages = itemOnPages,
                TotalItems  = totalItems,
                SortBy      = sortBy
            };

            #region Pagination
            if (String.IsNullOrEmpty(sortBy))
            {
                switch (currentSort)
                {
                case FieldSort.nameAscend:
                    model.Items = exercises.OrderBy(x => x.Name).Skip((currentPage - 1) * itemOnPages).Take(itemOnPages).ToList();
                    break;

                case FieldSort.nameDescend:
                    model.Items = exercises.OrderByDescending(x => x.Name).Skip((currentPage - 1) * itemOnPages).Take(itemOnPages).ToList();
                    break;

                case FieldSort.descriptionAscend:
                    model.Items = exercises.OrderBy(x => x.Description).Skip((currentPage - 1) * itemOnPages).Take(itemOnPages).ToList();
                    break;

                case FieldSort.descriptionDescend:
                    model.Items = exercises.OrderByDescending(x => x.Description).Skip((currentPage - 1) * itemOnPages).Take(itemOnPages).ToList();
                    break;

                default:
                    model.Items = exercises.OrderBy(x => x.Name).Skip((currentPage - 1) * itemOnPages).Take(itemOnPages).ToList();
                    break;
                }
                return(View(model));
            }
            #endregion

            #region Sorting
            if (sortBy == "name")
            {
                if (currentSort == FieldSort.nameAscend)
                {
                    model.CurrentSort = FieldSort.nameDescend;
                    model.Items       = exercises.OrderByDescending(x => x.Name).Skip((currentPage - 1) * itemOnPages).Take(itemOnPages).ToList();
                }
                else
                {
                    model.CurrentSort = FieldSort.nameAscend;
                    model.Items       = exercises.OrderBy(x => x.Name).Skip((currentPage - 1) * itemOnPages).Take(itemOnPages).ToList();
                }
            }
            else if (sortBy == "description")
            {
                if (currentSort == FieldSort.descriptionAscend)
                {
                    model.CurrentSort = FieldSort.descriptionDescend;
                    model.Items       = exercises.OrderByDescending(x => x.Description).Skip((currentPage - 1) * itemOnPages).Take(itemOnPages).ToList();
                }
                else
                {
                    model.CurrentSort = FieldSort.descriptionAscend;
                    model.Items       = exercises.OrderBy(x => x.Description).Skip((currentPage - 1) * itemOnPages).Take(itemOnPages).ToList();
                }
            }
            else
            {
                model.CurrentSort = FieldSort.nameAscend;
                model.Items       = exercises.OrderBy(x => x.Name).Skip((currentPage - 1) * itemOnPages).Take(itemOnPages).ToList();
            }
            #endregion

            return(View(model));
        }
コード例 #3
0
 private ExerciseViewModel MapExercise(Exercise model)
 {
     var sets = new List<SetViewModel>();
     foreach (var set in model.Sets)
     {
         sets.Add(MapSet(set));
     }
     var viewModel = new ExerciseViewModel
     {
         Id = model.Id,
         Comment = model.Comment,
         ExerciseType = model.ExerciseType,
         Sets = sets
     };
     return viewModel;
 }
コード例 #4
0
        //GET Exercises
        public ActionResult Exercises(string UID)
        {
            ViewBag.UserLoggedIn = true;

            if (UID == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }



            PersonalTrainer personalTrainer = db.PersonalTrainers.Where(p => p.UserID == UID).SingleOrDefault();

            //Get Workouts to Return Model
            if (personalTrainer == null)
            {
                return(HttpNotFound());
            }

            //Return the ExerciseViewModel based on the Trainer UID
            List <ExerciseViewModel> evmList = new List <ExerciseViewModel>();


            List <Exercise> exercises = new List <Exercise>();

            exercises = db.Exercises.Where(e => e.PersonalTrainerID == UID).ToList();

            //Only add to EVMList if there are exercises for that trainer in the DB
            if (exercises != null)
            {
                foreach (var e in exercises)
                {
                    Video video = db.Videos.Where(v => v.ExerciseID == e.ID).SingleOrDefault();
                    if (video != null)
                    {
                        ExerciseViewModel evm = new ExerciseViewModel()
                        {
                            ExerciseID          = e.ID,
                            ExerciseTitle       = e.Title,
                            ExerciseDescription = e.Description,
                            VideoTitle          = video.Title,
                            VideoDescription    = video.Description,
                            VideoURL            = video.URL,
                            PersonalTrainerID   = e.PersonalTrainerID,
                            NullVideoInd        = false
                        };

                        evmList.Add(evm);
                    }

                    if (video == null)
                    {
                        ExerciseViewModel evm = new ExerciseViewModel()
                        {
                            ExerciseID          = e.ID,
                            ExerciseTitle       = e.Title,
                            ExerciseDescription = e.Description,
                            PersonalTrainerID   = e.PersonalTrainerID,
                            NullVideoInd        = true
                        };

                        evmList.Add(evm);
                    }
                }
            }

            //return List of EVM
            return(View(evmList));
        }
コード例 #5
0
        public ActionResult CreateExercise(ExerciseViewModel exercise)
        {
            string UID = exercise.PersonalTrainerID;

            if (exercise.ExerciseTitle == null)
            {
                ModelState.AddModelError("", "Please enter a Title");
            }

            if (exercise.ExerciseDescription == null)
            {
                ModelState.AddModelError("", "Please enter a Description");
            }

            if (exercise.VideoTitle != null && exercise.VideoURL == null)
            {
                ModelState.AddModelError("", "Please enter a Video URL");
            }

            //If success - return JSON with success. JS will do the Get to reload the page
            if (ModelState.IsValid)
            {
                //create Exercise Instance
                Exercise newExercise = new Exercise()
                {
                    Title             = exercise.ExerciseTitle,
                    Description       = exercise.ExerciseDescription,
                    PersonalTrainerID = UID
                };

                db.Exercises.Add(newExercise);
                db.SaveChanges();

                //Need to make Video not required
                if (exercise.VideoTitle != null)
                {
                    //Create Video Instance
                    Video newVideo = new Video()
                    {
                        Title      = exercise.VideoTitle,
                        ExerciseID = newExercise.ID,
                        URL        = exercise.VideoURL
                    };
                    //Store in DB
                    db.Videos.Add(newVideo);
                    db.SaveChanges();
                }

                return(Json(new { createStatus = "success", UID }));
            }


            //If error - return Model State errors
            List <string> errors = new List <string>();

            foreach (var v in ModelState.Values)
            {
                foreach (var e in v.Errors)
                {
                    errors.Add(e.ErrorMessage);
                }
            }



            return(Json(new { createStatus = "fail", errors, UID }));
        }
コード例 #6
0
 public ViewPhysiotherapistExercisePage(ExerciseViewModel exercise)
 {
     InitializeComponent();
     _selectedExercise = exercise;
 }
コード例 #7
0
        protected override void OnAppearing()
        {
            ExerciseViewModel EVM = (ExerciseViewModel)exercisetable.BindingContext;

            EVM.loadExercise(App.Instance.date);
        }
コード例 #8
0
 public async Task <bool> UnfavoriteExerciseAsync(ExerciseViewModel exercise)
 {
     return(await _exerciseFavoriteResource.DeleteFavoriteExerciseAsync(Resource.UserId, exercise.Id));
 }
コード例 #9
0
 public async Task <bool> FavoriteExerciseAsync(ExerciseViewModel exerciseViewModel)
 {
     return(await _exerciseFavoriteResource.CreateFavoriteExerciseAsync(Resource.UserId, exerciseViewModel.Id));
 }
コード例 #10
0
 public ViewPatientExercisePage(ExerciseViewModel exercise)
 {
     InitializeComponent();
     _selectedExercise = exercise;
 }