Beispiel #1
0
        public ServiceResponse <ExerciseTrainingResponse> Add(AddExerciseTrainingRequest addExerciseTrainingRequest)
        {
            using (DiaryContext db = new DiaryContext())
            {
                var trainingUnit = db.TrainingUnits.FirstOrDefault(x => x.Id == addExerciseTrainingRequest.TrainingUnitId);
                if (trainingUnit == null)
                {
                    return(new ServiceResponse <ExerciseTrainingResponse>(null, HttpStatusCode.NotFound, "Unable to find the training unit!"));
                }

                var exercise = db.Exercises.FirstOrDefault(x => x.Id == addExerciseTrainingRequest.ExerciseId);
                if (exercise == null)
                {
                    return(new ServiceResponse <ExerciseTrainingResponse>(null, HttpStatusCode.NotFound, "Unable to find the exercise!"));
                }

                var exerciseDetails = db.ExercisesDetails.FirstOrDefault(x => x.Id == addExerciseTrainingRequest.ExerciseDetailsId);
                if (exerciseDetails == null)
                {
                    return(new ServiceResponse <ExerciseTrainingResponse>(null, HttpStatusCode.NotFound, "Unable to find the exercise details!"));
                }
                var exerciseTraining = new ExerciseTraining
                {
                    TrainingUnit    = trainingUnit,
                    Exercise        = exercise,
                    ExerciseDetails = exerciseDetails
                };
                ExerciseTraining _ExerciseTraining = db.ExerciseTrainings.Add(exerciseTraining);
                db.SaveChanges();
                return(new ServiceResponse <ExerciseTrainingResponse>(new ExerciseTrainingResponse(_ExerciseTraining), HttpStatusCode.OK, "ExerciseTraining added succesfully!"));
            }
        }
Beispiel #2
0
 public ExerciseTrainingResponse GetExerciseTraining(int id)
 {
     using (DiaryContext db = new DiaryContext())
     {
         ExerciseTraining exerciseTraining = db.ExerciseTrainings.Include("Exercise").Include("ExerciseDetails").Include("TrainingUnit").FirstOrDefault(x => x.Id == id);
         if (exerciseTraining == null)
         {
             return(null);
         }
         return(new ExerciseTrainingResponse(exerciseTraining));
     }
 }
Beispiel #3
0
        public ExerciseTrainingResponse(ExerciseTraining exerciseTraining)
        {
            Id = exerciseTraining.Id;
            if (exerciseTraining.Exercise != null)
            {
                ExerciseService exerciseService = new ExerciseService();

                Exercise = exerciseService.GetExercise(exerciseTraining.Exercise.Id);
            }
            if (exerciseTraining.ExerciseDetails != null)
            {
                ExerciseDetails = new ExerciseDetailsResponse(exerciseTraining.ExerciseDetails);
            }
        }
        public async Task <Guid> AddExercise(CreateTrainingAddExerciseViewModel createTrainingAddExerciseViewModel)
        {
            int trainingNumber = createTrainingAddExerciseViewModel.trainingNumber;

            var training = await _applicationDbContext.Trainings.Include(t => t.ExerciseTraining).FirstOrDefaultAsync(t => t.TrainingNumber == trainingNumber);

            var trainingGuid = training.Id;

            var exerciseId = Guid.NewGuid();

            var exerciseFromVm = createTrainingAddExerciseViewModel.ExerciseId;

            var exercise = new ExerciseTraining
            {
                Id         = exerciseId,
                ExerciseID = exerciseFromVm,
                TrainingId = trainingGuid,
            };

            _applicationDbContext.TrainingExercises.Add(exercise);
            await _applicationDbContext.SaveChangesAsync();

            return(exerciseId);
        }
Beispiel #5
0
        public async Task <int> Create(TrainingViewModel model)
        {
            var exercises = await appDbContext.Exercises.AsNoTracking().Select(e => new
            {
                chest = appDbContext.Exercises.AsNoTracking()
                        .Where(e2 => e2.Muscle == Muscle.CHEST)
                        .GroupBy(e2 => e2.Stage)
                        .Select(g => new
                {
                    Exercises = g.ToList()
                })
                        .Select(x => x.Exercises.OrderBy(o => Guid.NewGuid()).FirstOrDefault())
                        .ToList(),

                back = appDbContext.Exercises.AsNoTracking()
                       .Where(e2 => e2.Muscle == Muscle.BACK)
                       .GroupBy(e2 => e2.Stage)
                       .Select(g => new
                {
                    Exercises = g.ToList()
                })
                       .Select(x => x.Exercises.OrderBy(o => Guid.NewGuid()).FirstOrDefault())
                       .ToList(),

                legs = appDbContext.Exercises.AsNoTracking()
                       .Where(e2 => e2.Muscle == Muscle.LEGS)
                       .GroupBy(e2 => e2.Stage)
                       .Select(g => new
                {
                    Exercises = g.ToList()
                })
                       .Select(x => x.Exercises.OrderBy(o => Guid.NewGuid()).FirstOrDefault())
                       .ToList(),

                shoulders = appDbContext.Exercises.AsNoTracking()
                            .Where(e2 => e2.Muscle == Muscle.SHOULDERS)
                            .GroupBy(e2 => e2.Stage)
                            .Select(g => new
                {
                    Exercises = g.ToList()
                })
                            .Select(x => x.Exercises.OrderBy(o => Guid.NewGuid()).FirstOrDefault())
                            .ToList(),

                triceps = appDbContext.Exercises.AsNoTracking()
                          .Where(e2 => e2.Muscle == Muscle.TRICEPS)
                          .GroupBy(e2 => e2.Stage)
                          .Select(g => new
                {
                    Exercises = g.ToList()
                })
                          .Select(x => x.Exercises.OrderBy(o => Guid.NewGuid()).FirstOrDefault())
                          .ToList(),

                biceps = appDbContext.Exercises.AsNoTracking()
                         .Where(e2 => e2.Muscle == Muscle.BICEPS)
                         .GroupBy(e2 => e2.Stage)
                         .Select(g => new
                {
                    Exercises = g.ToList()
                })
                         .Select(x => x.Exercises.OrderBy(o => Guid.NewGuid()).FirstOrDefault())
                         .ToList(),

                abs = appDbContext.Exercises.AsNoTracking()
                      .Where(e2 => e2.Muscle == Muscle.ABS)
                      .GroupBy(e2 => e2.Stage)
                      .Select(g => new
                {
                    Exercises = g.ToList()
                })
                      .Select(x => x.Exercises.OrderBy(o => Guid.NewGuid()).FirstOrDefault())
                      .ToList(),

                ifAlreadyExistTraining = appDbContext.Trainings.AsNoTracking().Any(t => t.UserId.Equals(httpContextAccessor.HttpContext.User.FindFirst(Constants.Strings.JwtClaimIdentifiers.Id).Value))
            }).FirstOrDefaultAsync();

            //// Get current training and set prop TrainingCurrent to false;
            if (exercises.ifAlreadyExistTraining)
            {
                var currentTraining = await appDbContext.Trainings
                                      .Where(t => t.UserId.Equals(httpContextAccessor.HttpContext.User.FindFirst(Constants.Strings.JwtClaimIdentifiers.Id).Value))
                                      .OrderByDescending(t => t.Created).FirstOrDefaultAsync();

                currentTraining.TrainingCurrent = false;
            }

            var newTraining = new Training
            {
                Name            = model.Name,
                Days            = model.Days,
                Created         = DateTime.UtcNow,
                TrainingCurrent = true,
                Aim             = model.Aim,
                UserId          = httpContextAccessor.HttpContext.User.FindFirst(Constants.Strings.JwtClaimIdentifiers.Id).Value
            };

            appDbContext.Trainings.Add(newTraining);
            await appDbContext.SaveChangesAsync();

            //// Create exercise to training
            foreach (var chest in exercises.chest)
            {
                var exerciseTraining = new ExerciseTraining
                {
                    ExerciseId = chest.Id,
                    TrainingId = newTraining.Id
                };
                appDbContext.ExerciseTrainings.Add(exerciseTraining);
            }

            foreach (var back in exercises.back)
            {
                var exerciseTraining = new ExerciseTraining
                {
                    ExerciseId = back.Id,
                    TrainingId = newTraining.Id
                };
                appDbContext.ExerciseTrainings.Add(exerciseTraining);
            }

            foreach (var leg in exercises.legs)
            {
                var exerciseTraining = new ExerciseTraining
                {
                    ExerciseId = leg.Id,
                    TrainingId = newTraining.Id
                };
                appDbContext.ExerciseTrainings.Add(exerciseTraining);
            }

            foreach (var shoulder in exercises.shoulders)
            {
                var exerciseTraining = new ExerciseTraining
                {
                    ExerciseId = shoulder.Id,
                    TrainingId = newTraining.Id
                };
                appDbContext.ExerciseTrainings.Add(exerciseTraining);
            }

            foreach (var biceps in exercises.biceps)
            {
                var exerciseTraining = new ExerciseTraining
                {
                    ExerciseId = biceps.Id,
                    TrainingId = newTraining.Id
                };
                appDbContext.ExerciseTrainings.Add(exerciseTraining);
            }

            foreach (var triceps in exercises.triceps)
            {
                var exerciseTraining = new ExerciseTraining
                {
                    ExerciseId = triceps.Id,
                    TrainingId = newTraining.Id
                };
                appDbContext.ExerciseTrainings.Add(exerciseTraining);
            }

            foreach (var abs in exercises.abs)
            {
                var exerciseTraining = new ExerciseTraining
                {
                    ExerciseId = abs.Id,
                    TrainingId = newTraining.Id
                };
                appDbContext.ExerciseTrainings.Add(exerciseTraining);
            }

            await appDbContext.SaveChangesAsync();

            return(newTraining.Id);
        }