public async Task <OneDayWorkout> AddOrEditOneDayWorkoutAsync(int id, OneDayWorkoutViewModel viewModel) { var oneDayWorkout = _context.OneDayWorkout.Find(id); if (oneDayWorkout == null) { oneDayWorkout = new OneDayWorkout { AppUserID = viewModel.AppUserID, CardioID = viewModel.CardioID, Date = viewModel.Date, Duration = viewModel.Duration, WorkoutID = viewModel.WorkoutID }; _context.OneDayWorkout.Add(oneDayWorkout); _context.SaveChanges(); return(await _context.OneDayWorkout.Include(t => t.Cardio) .Include(t => t.Workout) .ThenInclude(t => t.Exercises) .ThenInclude(t => t.Exercise).LastAsync()); } else { oneDayWorkout.CardioID = viewModel.CardioID; oneDayWorkout.Duration = viewModel.Duration; oneDayWorkout.WorkoutID = viewModel.WorkoutID; _context.SaveChanges(); } return(oneDayWorkout); }
//GET: /UserWorkout/Create/id public IActionResult Create(int id, int?oneDayWorkoutId) { if (oneDayWorkoutId == null) { oneDayWorkoutId = 0; } var oneDayWorkout = _oneDayWorkoutRepository.GetOneDayWorkoutByIdAsync((int)oneDayWorkoutId).Result; var viewModel = new OneDayWorkoutViewModel { AppUserID = id, Date = DateTime.Today.Date, UserWorkoutViewModel = new UserWorkoutViewModel() }; var workoutViewModel = new UserWorkoutViewModel(); if (oneDayWorkout != null) { if (oneDayWorkout.WorkoutID != null) { workoutViewModel.PersonWorkout = true; workoutViewModel.Exercises = new List <UserExerciseViewModel>(); foreach (var workoutExercise in oneDayWorkout.Workout.Exercises) { var model = new UserExerciseViewModel { NameExercise = workoutExercise.Exercise.Name, ExerciseID = workoutExercise.ExerciseID, Repeat = workoutExercise.RepeatMax, Sets = workoutExercise.Sets, WorkoutID = workoutExercise.WorkoutID }; workoutViewModel.Exercises.Add(model); } } else { viewModel.WorkoutID = 0; } viewModel.UserWorkoutViewModel = workoutViewModel; viewModel.Date = oneDayWorkout.Date; viewModel.CardioID = oneDayWorkout.CardioID; viewModel.CardioName = oneDayWorkout.Cardio.Name; viewModel.Duration = oneDayWorkout.Duration; viewModel.WorkoutID = oneDayWorkout.WorkoutID; viewModel.AppUserID = oneDayWorkout.AppUserID; PopulateCardioDropDownList(oneDayWorkout.Cardio); } PopulateCardioDropDownList(); PopulateExerciseDropDownList(); return(View(viewModel)); }
public IActionResult Detail(int oneDayWorkoutId) { var workouts = _oneDayWorkoutRepository.GetOneDayWorkoutByIdAsync(oneDayWorkoutId).Result; var listExercise = new List <UserExerciseViewModel>(); foreach (var exercise in workouts.Workout.Exercises) { listExercise.Add(new UserExerciseViewModel { ExerciseID = exercise.ExerciseID, WorkoutID = exercise.WorkoutID, Sets = exercise.Sets, Repeat = exercise.RepeatMax, NameExercise = exercise.Exercise.Name }); } ViewData["calories"] = workouts.Cardio.CalPerHour * workouts.Duration; ViewData["oneDayId"] = oneDayWorkoutId; var viewModel = new OneDayWorkoutViewModel { AppUserID = workouts.AppUserID, CardioID = workouts.CardioID, CardioName = workouts.Cardio.Name, Date = workouts.Date, Duration = workouts.Duration, WorkoutID = workouts.WorkoutID, UserWorkoutViewModel = new UserWorkoutViewModel { Name = workouts.Workout.Name, Exercises = listExercise } }; return(View(viewModel)); }
// GET: UserWorkout/Delete/5 public async Task <IActionResult> Delete(int id) { if (id == 0) { return(NotFound()); } var workout = await _oneDayWorkoutRepository.GetOneDayWorkoutByIdAsync(id); if (workout == null) { return(NotFound()); } ViewData["oneDayId"] = id; var viewModel = new OneDayWorkoutViewModel { AppUserID = workout.AppUserID, CardioID = workout.CardioID, CardioName = workout.Cardio.Name, Date = workout.Date, Duration = workout.Duration, WorkoutID = workout.WorkoutID, UserWorkoutViewModel = new UserWorkoutViewModel { Name = workout.Workout.Name } }; return(View(viewModel)); }
public IActionResult Create(int id, int?oneDayWorkoutId, OneDayWorkoutViewModel viewModel, string[] Sets, string[] Reapeats, string[] Exercise) { if ((Sets.Length != Reapeats.Length) & (Reapeats.Length != Exercise.Length)) { ModelState.AddModelError("", "All fields should be complete!!!"); } else { for (var i = 0; i < Sets.Length; i++) { int exer, rep, set; if (!int.TryParse(Exercise[i], out exer)) { ModelState.AddModelError("", "Exercise №" + (i + 1) + "Exercise not selected!!!"); } if (!int.TryParse(Reapeats[i], out rep)) { ModelState.AddModelError("", "Exercise №" + (i + 1) + "Value of Repeats should be a digit!!!"); } if (!int.TryParse(Sets[i], out set)) { ModelState.AddModelError("", "Exercise №" + (i + 1) + "Value of Sets should be a digit!!!"); } else if (rep < 1 || set < 1) { ModelState.AddModelError("", "Exercise №" + (i + 1) + "Value of the fields \"Sets\", \"Repeat\" should be more then \"0\"!!!"); } } } var dates = _oneDayWorkoutRepository.AllOneDayWorkoutsByUserId(viewModel.AppUserID).Where(d => d.Date == viewModel.Date); if (dates.Any()) { ModelState.AddModelError("", errorMessage: "Measurement on this date already exist!"); } if (ModelState.IsValid) { try { if (viewModel.WorkoutID == null) { viewModel.WorkoutID = 0; } viewModel.CardioName = _cardioRepository.GetCardioAsync(viewModel.CardioID).Result.Name; viewModel.UserWorkoutViewModel.Exercises = new List <UserExerciseViewModel>(); if (oneDayWorkoutId == null) { oneDayWorkoutId = 0; } else { _fillingWorkoutRepository.DeleteFillingWorkout( _fillingWorkoutRepository.FillingWorkoutByWorkouts((int)oneDayWorkoutId).ToList()); } var workout = _workoutRepository.SaveWorkoutAsync( new WorkoutViewModel { Name = viewModel.UserWorkoutViewModel.Name, PersonWorkout = true, TagId = _tagRepository.TagByFilter("Strength").First().TagID }, (int)viewModel.WorkoutID); viewModel.WorkoutID = workout; for (var i = 0; i < Exercise.Length; i++) { var gr = _fillingWorkoutRepository.NewFillingWorkoutAsync(workout, _exerciseRepository.GetExerciseAsync(int.Parse(Exercise[i])).Result, int.Parse(Sets[i]), int.Parse(Reapeats[i]), int.Parse(Reapeats[i])).Result; viewModel.UserWorkoutViewModel.Exercises.Add(new UserExerciseViewModel { ExerciseID = gr.ExerciseID, NameExercise = gr.Exercise.Name, Sets = gr.Sets, WorkoutID = gr.WorkoutID, Repeat = gr.RepeatMax }); } var sav = _oneDayWorkoutRepository.AddOrEditOneDayWorkoutAsync((int)oneDayWorkoutId, viewModel).Result; if (sav != null) { return(RedirectToAction("Index", new { id = id }) ); } } catch (DbUpdateException /* ex */) { //Log the error (uncomment ex variable name and write a log. ModelState.AddModelError("", "Unable to save changes. " + "Try again, and if the problem persists " + "see your system administrator."); } } return(View(viewModel)); }