//Add a workoutsession
        public void AddWorkoutSessionStrength(string userID, WorkoutSessionVM workoutSessionVM)
        {
            var session = new WorkoutSession
            {
                Date            = workoutSessionVM.Date,
                Distance        = workoutSessionVM.Distance,
                Duration        = workoutSessionVM.Duration,
                Type            = workoutSessionVM.Type,
                SessionUserNote = workoutSessionVM.SessionUserNote,
                UserId          = userID,
                SessionName     = workoutSessionVM.SessionName,
            };

            foreach (var exerciseVM in workoutSessionVM.Exercises)
            {
                var exercise = new Exercise {
                    ExerciseName = exerciseVM.Name
                };
                session.Exercise.Add(exercise);
                foreach (var set in exerciseVM.Sets)
                {
                    exercise.Set.Add(new Set {
                        Reps = set.Reps, UsedWeight = set.Weight, UserNote = set.UserComment
                    });
                }
            }
            ;

            WorkoutSession.Add(session);
            SaveChanges();
        }
Beispiel #2
0
        public IActionResult EditWorkout(WorkoutSessionVM WorkoutToEdit)
        {
            var userID = userManager.GetUserId(HttpContext.User);

            WorkoutToEdit.Date = DateTime.Parse(WorkoutToEdit.Date.ToShortDateString());
            dataManager.EditWorkOutForUser(userID, WorkoutToEdit);

            return(Content("Workout saved successfully"));
        }
Beispiel #3
0
        public IActionResult Saveworkout(WorkoutSessionVM newWorkout)
        {
            var userID = userManager.GetUserId(HttpContext.User);

            newWorkout.Date = DateTime.Parse(newWorkout.Date.ToShortDateString());
            dataManager.AddWorkOutForUser(userID, newWorkout);

            return(Content("Workout saved successfully"));
        }
        internal void EditWorkout(string userID, WorkoutSessionVM workoutToEdit)
        {
            var session = new WorkoutSession
            {
                Date            = workoutToEdit.Date,
                Distance        = workoutToEdit.Distance,
                Duration        = workoutToEdit.Duration,
                Type            = workoutToEdit.Type,
                SessionUserNote = workoutToEdit.SessionUserNote,
                UserId          = userID,
                SessionName     = workoutToEdit.SessionName,
            };


            foreach (var exerciseVM in workoutToEdit.Exercises)
            {
                var exercise = new Exercise {
                    ExerciseName = exerciseVM.Name
                };
                session.Exercise.Add(exercise);
                foreach (var set in exerciseVM.Sets)
                {
                    exercise.Set.Add(new Set {
                        Reps = set.Reps, UsedWeight = set.Weight, UserNote = set.UserComment
                    });
                }
            }
            ;
            var oldWorkoutSession = WorkoutSession
                                    .Include(z => z.Exercise)
                                    .ThenInclude(y => y.Set)
                                    .FirstOrDefault(x => x.SessionName == workoutToEdit.SessionName && x.UserId == userID && x.Date == workoutToEdit.Date);

            foreach (var exercise in oldWorkoutSession.Exercise)
            {
                foreach (var set in exercise.Set)
                {
                    Set.Remove(set);
                }
                //SaveChanges();

                Exercise.Remove(exercise);
            }
            ;
            //SaveChanges();

            WorkoutSession.Remove(oldWorkoutSession);

            WorkoutSession.Add(session);
            SaveChanges();
        }
        internal void DeleteWorkout(string userID, WorkoutSessionVM workoutToDelete)
        {
            var oldWorkoutSession = WorkoutSession
                                    .Include(z => z.Exercise)
                                    .ThenInclude(y => y.Set)
                                    .FirstOrDefault(x => x.SessionName == workoutToDelete.SessionName && x.UserId == userID && x.Date == workoutToDelete.Date); //== session;

            foreach (var exercise in oldWorkoutSession.Exercise)
            {
                foreach (var set in exercise.Set)
                {
                    Set.Remove(set);
                }
                //SaveChanges();

                Exercise.Remove(exercise);
            }
            ;
            //SaveChanges();

            WorkoutSession.Remove(oldWorkoutSession);
            SaveChanges();
        }
Beispiel #6
0
 public IActionResult DeleteWorkout(WorkoutSessionVM WorkoutToDelete)
 {
     dataManager.DeleteWorkoutSession(GetUserID(), WorkoutToDelete);
     return(Json("All is good"));
 }
Beispiel #7
0
        public ActionResult ViewHistory([FromRoute] int workoutId)
        {
            var workout = _context.Workout.Where(w => w.WorkoutId == workoutId).First();

            var workoutToExercise = _context.WorkoutToExercise.Where(wte => wte.WorkoutId == workoutId).ToList();

            var exercises = _context.Exercise.Where(e => workoutToExercise.Select(x => x.ExerciseId).Contains(e.ExerciseId)).ToList();

            var workoutSets = _context.WorkoutSet.Where(ws => ws.WorkoutId == workoutId).ToList();

            var workoutSetResults = _context.WorkoutSetResult.Where(wsr => workoutSets.Select(x => x.WorkoutSetId).Contains(wsr.WorkoutSetId)).ToList();

            List <WorkoutSessionVM> workoutSessions = new List <WorkoutSessionVM>();

            Dictionary <int, List <WorkoutSetResult> > workoutResultsGroupedByWorkoutSessionId = workoutSetResults
                                                                                                 .GroupBy(x => x.WorkoutSessionId).ToDictionary(x => x.Key, x => x.ToList());

            foreach (var wsr in workoutSetResults)
            {
                wsr.WorkoutSet = workoutSets.Where(ws => ws.WorkoutSetId == wsr.WorkoutSetId).First();

                wsr.WorkoutSet.Exercise = exercises.Where(e => e.ExerciseId == wsr.WorkoutSet.ExerciseId).First();
            }



            foreach (var kvp in workoutResultsGroupedByWorkoutSessionId)
            {
                List <ExerciseResultsHistory> exerciseResultsHistories = new List <ExerciseResultsHistory>();

                List <WorkoutSetResult> setResults = kvp.Value;

                DateTime?date = setResults.First()?.DateCreated;

                var exerciseIdToResults = setResults.GroupBy(x => x.WorkoutSet.ExerciseId).ToDictionary(x => x.Key, x => x.OrderBy(z => z.DateCreated).ToList());

                foreach (var etr in exerciseIdToResults)
                {
                    ExerciseResultsHistory exerciseResultsHistory = new ExerciseResultsHistory();

                    exerciseResultsHistory.ExerciseName = exercises.Where(e => e.ExerciseId == etr.Key).First().ExerciseName;

                    var i = 1;

                    foreach (WorkoutSetResult result in etr.Value)
                    {
                        var resultLine = $"Set {i}: Weight = {result.Weight}. Reps = {result.RepsCompleted}.";

                        exerciseResultsHistory.Results.Add(resultLine);

                        i++;
                    }

                    exerciseResultsHistories.Add(exerciseResultsHistory);
                }

                WorkoutSessionVM workoutSessionVM = new WorkoutSessionVM();

                workoutSessionVM.WorkoutSessionDate = workoutSetResults.Where(x => x.WorkoutSessionId == kvp.Key).First().DateCreated;

                workoutSessionVM.ExerciseHistories = exerciseResultsHistories;

                workoutSessions.Add(workoutSessionVM);
            }

            return(View("WorkoutHistory", workoutSessions));
        }
Beispiel #8
0
 internal void DeleteWorkoutSession(string userID, WorkoutSessionVM workoutToDelete)
 {
     workoutcontext.DeleteWorkout(userID, workoutToDelete);
 }
Beispiel #9
0
 internal void EditWorkOutForUser(string userID, WorkoutSessionVM workoutToEdit)
 {
     workoutcontext.EditWorkout(userID, workoutToEdit);
 }
Beispiel #10
0
 internal void AddWorkOutForUser(string userID, WorkoutSessionVM newWorkout)
 {
     workoutcontext.AddWorkoutSessionStrength(userID, newWorkout);
 }