public IActionResult AddCardioTraining(TrainingViewModel trainingViewModel) { try { if (String.IsNullOrEmpty(trainingViewModel.Exercise.Name)) { ModelState.AddModelError("Exercise", "Please fill in an exercise"); return(View(trainingViewModel)); } IUser user = UserFactory.GetUser(); IUserCollection userCollection = UserCollectionFactory.GetUserCollection(); ExerciseDTO exerciseDTO = userCollection.GetExercise(trainingViewModel.Exercise.Name); CardioTrainingDTO cardioTrainingDTO = new CardioTrainingDTO(exerciseDTO, trainingViewModel.Distance, new TimeSpan(0, trainingViewModel.Minutes, trainingViewModel.Seconds), Guid.Parse(User.FindFirst("Id").Value), DateTime.Now, TrainingTypeDTO.Cardio); user.AddCardioTraining(cardioTrainingDTO); TempData["JustAddedTraining"] = true; return(LocalRedirect("/Home/Index")); } catch { TempData["Error"] = true; return(LocalRedirect("/Training/AddCardioTraining")); } }
public void AddCardioTraining() { //arrange IUser user = UserFactory.GetUser(); IUserCollection userCollection = UserCollectionFactory.GetUserCollection(); IUserCollectionDAL userCollectionDAL = UserCollectionDALFactory.GetUserCollectionDAL(); ITrainingDAL dal = TrainingDALFactory.GetTrainingDAL(); ExerciseDTO exerciseDTO = userCollection.GetExercise("Running"); UserDTO userDTO = new UserDTO("TempAccountCardioTraining", Guid.NewGuid(), "TempPassword", null, null); userCollectionDAL.AddUser(userDTO); CardioTrainingDTO cardioTrainingDTO = new CardioTrainingDTO( exerciseDTO, 5.44M, new TimeSpan(0, 28, 45), userDTO.UserID, DateTime.Now, TrainingTypeDTO.Cardio); //act user.AddCardioTraining(cardioTrainingDTO); //assert Guid trainingID = dal.GetUserTrainings(userDTO.UserID.ToString())[0].TrainingID; CardioTrainingDTO trainingFromDB = dal.GetCardioTraining(trainingID.ToString()); Assert.AreEqual(userDTO.UserID, trainingFromDB.UserID); Assert.AreEqual(cardioTrainingDTO.Date.ToLongDateString(), trainingFromDB.Date.ToLongDateString()); Assert.AreEqual(TrainingTypeDTO.Cardio, trainingFromDB.TrainingType); }