Example #1
0
        public WeightTrainingDTO GetWeightTraining(string trainingID)
        {
            ITrainingDAL      trainingDAL = TrainingDALFactory.GetTrainingDAL();
            WeightTrainingDTO training    = trainingDAL.GetWeightTraining(trainingID);

            return(training);
        }
        public void AddWeightTraining()
        {
            //arrange
            IUser           user           = UserFactory.GetUser();
            IUserCollection userCollection = UserCollectionFactory.GetUserCollection();
            ITrainingDAL    dal            = TrainingDALFactory.GetTrainingDAL();
            ExerciseDTO     deadlift       = userCollection.GetExercise("Deadlift");
            ExerciseDTO     squat          = userCollection.GetExercise("Squat");
            ExerciseDTO     pullup         = userCollection.GetExercise("Pullup");
            List <SetDTO>   deadliftSets   = new List <SetDTO>
            {
                new SetDTO(80, 0),
                new SetDTO(85, 1),
                new SetDTO(90, 2)
            };

            List <SetDTO> squatSets = new List <SetDTO>
            {
                new SetDTO(50, 0),
                new SetDTO(55, 1),
                new SetDTO(60, 2)
            };

            List <SetDTO> pullupSets = new List <SetDTO>
            {
                new SetDTO(7, 0),
                new SetDTO(7, 1),
                new SetDTO(7, 2)
            };

            List <RoundDTO> rounds = new List <RoundDTO>
            {
                new RoundDTO(deadlift, deadlift.ExerciseID, deadliftSets),
                new RoundDTO(squat, squat.ExerciseID, squatSets),
                new RoundDTO(pullup, pullup.ExerciseID, pullupSets)
            };

            UserDTO            userDTO           = new UserDTO("TempAccountWeightTraining", Guid.NewGuid(), "TempPassword", null, null);
            IUserCollectionDAL userCollectionDAL = UserCollectionDALFactory.GetUserCollectionDAL();

            userCollectionDAL.AddUser(userDTO);

            WeightTrainingDTO weightTrainingDTO = new WeightTrainingDTO(rounds, userDTO.UserID, DateTime.Now, TrainingTypeDTO.Strength);

            //act
            user.AddStrengthTraining(weightTrainingDTO);

            //assert
            Guid trainingID = dal.GetUserTrainings(userDTO.UserID.ToString())[0].TrainingID;
            WeightTrainingDTO trainingFromDB = dal.GetWeightTraining(trainingID.ToString());

            Assert.AreEqual(userDTO.UserID, trainingFromDB.UserID);
            Assert.AreEqual(weightTrainingDTO.Date.ToLongDateString(), trainingFromDB.Date.ToLongDateString());
            Assert.AreEqual(TrainingTypeDTO.Strength, trainingFromDB.TrainingType);
        }
Example #3
0
        private WeightTrainingDTO ConvertWeightTraining(WeightTraining training)
        {
            List <RoundDTO> roundDTOs = new List <RoundDTO>();

            foreach (var round in training.GetRounds())
            {
                roundDTOs.Add(ConvertRound(round));
            }
            WeightTrainingDTO trainingDTO = new WeightTrainingDTO(roundDTOs, training.TrainingID, training.UserID, training.Date, (TrainingTypeDTO)training.TrainingType);

            return(trainingDTO);
        }
Example #4
0
        private WeightTraining ConvertWeightTrainingDTO(WeightTrainingDTO trainingDTO)
        {
            List <Round> rounds = new List <Round>();

            foreach (var roundDTO in trainingDTO.GetRounds())
            {
                rounds.Add(ConvertRoundDTO(roundDTO));
            }
            WeightTraining training = new WeightTraining(rounds, trainingDTO.TrainingID, trainingDTO.UserID, trainingDTO.Date, (TrainingType)trainingDTO.TrainingType);

            return(training);
        }
        public void AddWeightTraining(WeightTrainingDTO trainingDTO)
        {
            using (SqlConnection connection = new SqlConnection(GetConnectionString()))
            {
                SqlCommand cmd = new SqlCommand("" +
                                                "INSERT INTO Trainings " +
                                                "VALUES(@TrainingID, @UserID, @Date, @TrainingType) " +
                                                "INSERT INTO WeightTrainings " +
                                                "VALUES(@TrainingID)", connection);
                cmd.Parameters.AddWithValue("@TrainingID", trainingDTO.TrainingID);
                cmd.Parameters.AddWithValue("@UserID", trainingDTO.UserID);
                cmd.Parameters.AddWithValue("@Date", trainingDTO.Date);
                cmd.Parameters.AddWithValue("@TrainingType", TrainingTypeDTO.Strength);

                connection.Open();
                cmd.ExecuteNonQuery();
                connection.Close();
            }

            foreach (var round in trainingDTO.GetRounds())
            {
                using (SqlConnection connection = new SqlConnection(GetConnectionString()))
                {
                    SqlCommand cmdRound = new SqlCommand("INSERT INTO Rounds VALUES(@RoundID, @ExerciseID, @TrainingID)", connection);
                    cmdRound.Parameters.AddWithValue("@RoundID", round.RoundID);
                    cmdRound.Parameters.AddWithValue("@ExerciseID", round.ExerciseID);
                    cmdRound.Parameters.AddWithValue("@TrainingID", trainingDTO.TrainingID);

                    connection.Open();
                    cmdRound.ExecuteNonQuery();
                    connection.Close();

                    foreach (var set in round.GetSets())
                    {
                        SqlCommand cmdSet = new SqlCommand("INSERT INTO Sets VALUES(@SetID, @RoundID, @SetOrder, @Weight)", connection);
                        cmdSet.Parameters.AddWithValue("@SetID", set.SetID);
                        cmdSet.Parameters.AddWithValue("@RoundID", round.RoundID);
                        cmdSet.Parameters.AddWithValue("@SetOrder", set.SetOrder);
                        cmdSet.Parameters.AddWithValue("@Weight", set.Weight);

                        connection.Open();
                        cmdSet.ExecuteNonQuery();
                        connection.Close();
                    }
                }
            }
        }
Example #6
0
        public IActionResult AddStrengthTraining(TrainingViewModel trainingViewModel)
        {
            try
            {
                foreach (var round in trainingViewModel.Rounds)
                {
                    if (String.IsNullOrEmpty(round.Exercise.Name))
                    {
                        ModelState.AddModelError("Rounds", "Fill in the exercise names");
                        return(View(trainingViewModel));
                    }
                    foreach (var set in round.Sets)
                    {
                        if (set.Weight == 0)
                        {
                            ModelState.AddModelError("Rounds", "Please fill in all the weights");
                            return(View(trainingViewModel));
                        }
                    }
                }
                List <RoundDTO> rounds = new List <RoundDTO>();
                foreach (var roundViewModel in trainingViewModel.Rounds)
                {
                    rounds.Add(ConvertRoundVM(roundViewModel));
                }

                WeightTrainingDTO weightTraining = new WeightTrainingDTO(rounds, Guid.Parse(User.FindFirst("Id").Value), new DateTime(2021, 1, 15), TrainingTypeDTO.Strength);
                UserCollection    userCollection = new UserCollection();
                User user = ConvertUserDTO(userCollection.GetUser(User.Identity.Name));
                user.AddStrengthTraining(weightTraining);
                TempData["JustAddedTraining"] = true;
                return(LocalRedirect("/Home/Index"));
            }

            catch
            {
                TempData["Error"] = true;
                return(LocalRedirect("/Training/AddStrengthTraining"));
            }
        }
Example #7
0
        public void AddStrengthTraining(WeightTrainingDTO training)
        {
            ITrainingDAL    dal        = TrainingDALFactory.GetTrainingDAL();
            Guid            trainingID = Guid.NewGuid();
            List <RoundDTO> rounds     = new List <RoundDTO>();

            foreach (var round in training.GetRounds())
            {
                Guid          roundID = Guid.NewGuid();
                List <SetDTO> sets    = new List <SetDTO>();
                foreach (var set in round.GetSets())
                {
                    SetDTO setToAdd = new SetDTO(set.Weight, Guid.NewGuid(), set.SetOrder, roundID);
                    sets.Add(setToAdd);
                }
                RoundDTO roundToAdd = new RoundDTO(round.Exercise, roundID, trainingID, round.ExerciseID, sets);
                rounds.Add(roundToAdd);
            }
            WeightTrainingDTO weightTrainingToAdd = new WeightTrainingDTO(rounds, trainingID, training.UserID, training.Date, training.TrainingType);

            dal.AddWeightTraining(weightTrainingToAdd);
        }
Example #8
0
        public IActionResult TrainingDetail(Guid id)
        {
            try
            {
                User user = new User();
                TrainingViewModel trainingVM = ConvertTrainingDTO(user.GetTraining(id.ToString()));

                if (trainingVM.TrainingType == TrainingType.Strength)
                {
                    WeightTrainingDTO     weightTrainingDTO = user.GetWeightTraining(id.ToString());
                    List <RoundViewModel> roundViewModels   = new List <RoundViewModel>();
                    foreach (var roundDTO in weightTrainingDTO.GetRounds())
                    {
                        roundViewModels.Add(ConvertRoundDTO(roundDTO));
                    }
                    trainingVM.Rounds = roundViewModels;
                }

                else
                {
                    CardioTrainingDTO cardioTrainingDTO = user.GetCardioTraining(id.ToString());
                    trainingVM.Exercise   = ConvertExerciseDTOToVM(cardioTrainingDTO.Exercise);
                    trainingVM.Distance   = Math.Round(cardioTrainingDTO.Distance, 2);
                    trainingVM.Minutes    = cardioTrainingDTO.Time.Minutes;
                    trainingVM.Seconds    = cardioTrainingDTO.Time.Seconds;
                    trainingVM.TrainingID = cardioTrainingDTO.TrainingID;
                }
                return(View(trainingVM));
            }

            catch
            {
                TempData["Error"] = true;
                return(LocalRedirect("/Home/Index"));
            }
        }
        public WeightTrainingDTO GetWeightTraining(string trainingID)
        {
            using (SqlConnection connection = new SqlConnection(GetConnectionString()))
            {
                SqlCommand cmdTraining = new SqlCommand("SELECT * FROM Trainings WHERE ID = @TrainingID", connection);
                cmdTraining.Parameters.AddWithValue("@TrainingID", trainingID);

                DateTime        date         = DateTime.MinValue;
                Guid            userID       = Guid.Empty;
                TrainingTypeDTO trainingType = TrainingTypeDTO.Strength;

                connection.Open();
                using (SqlDataReader reader = cmdTraining.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        date         = Convert.ToDateTime(reader["Date"]);
                        userID       = Guid.Parse(reader["UserID"].ToString());
                        trainingType = (TrainingTypeDTO)Enum.Parse(typeof(TrainingTypeDTO), reader["TrainingType"].ToString());
                    }
                }
                connection.Close();

                SqlCommand cmdRound = new SqlCommand("SELECT * FROM Rounds WHERE TrainingID = @TrainingID", connection);
                cmdRound.Parameters.AddWithValue("@TrainingID", trainingID);
                List <RoundDTO> rounds = new List <RoundDTO>();
                connection.Open();
                using (SqlDataReader reader = cmdRound.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Guid        exerciseID = Guid.Parse(reader["ExerciseID"].ToString());
                        ExerciseDTO exercise   = GetExerciseDTO(exerciseID.ToString());
                        Guid        roundID    = Guid.Parse(reader["ID"].ToString());

                        SqlCommand cmdSet = new SqlCommand("SELECT * FROM Sets WHERE RoundID = @RoundID ORDER BY SetOrder", connection);
                        cmdSet.Parameters.AddWithValue("@RoundID", roundID);

                        List <SetDTO> sets = new List <SetDTO>();
                        using (SqlDataReader setReader = cmdSet.ExecuteReader())
                        {
                            while (setReader.Read())
                            {
                                Guid   setID    = Guid.Parse(setReader["SetID"].ToString());
                                int    setOrder = Convert.ToInt32(setReader["SetOrder"]);
                                double weight   = Convert.ToInt32(setReader["Weight"]);

                                SetDTO setDTO = new SetDTO(weight, setID, setOrder, roundID);
                                sets.Add(setDTO);
                            }
                        }

                        RoundDTO roundDTO = new RoundDTO(exercise, roundID, Guid.Parse(trainingID), exerciseID, sets);
                        rounds.Add(roundDTO);
                    }

                    WeightTrainingDTO weightTrainingDTO = new WeightTrainingDTO(rounds, Guid.Parse(trainingID), userID, date, trainingType);
                    return(weightTrainingDTO);
                }
            }
        }