예제 #1
0
        public void ShouldCallAddRepoMethods()
        {
            //Arrange

            var fakeCreateCompletedWorkoutViewModel = new CreateCompletedWorkoutViewModel
            {
                Comments          = "workout comments",
                WorkoutId         = 1,
                DetailedExercises = new List <DetailedExerciseViewModel>()
                {
                    new DetailedExerciseViewModel()
                    {
                        ExerciseId   = 1,
                        ExerciseName = "testExercise",
                        Mins         = 12,
                        Comments     = "exercise comments"
                    }
                }
            };

            var mockCompletedWorkoutsRepo  = new Mock <IRDBERepository <CompletedWorkout> >();
            var mockCompletedExercisesRepo = new Mock <IRDBERepository <CompletedExercise> >();
            var mockWorkoutsRepo           = new Mock <IRDBERepository <Workout> >();
            var mockExercisesRepo          = new Mock <IRDBERepository <Exercise> >();

            //Act
            var mockWorkoutHistoryService = new WorkoutHistoryService(mockWorkoutsRepo.Object, mockCompletedWorkoutsRepo.Object, mockCompletedExercisesRepo.Object, mockExercisesRepo.Object);

            mockWorkoutHistoryService.AddCompletedWorkout("", fakeCreateCompletedWorkoutViewModel);

            //Assert
            mockCompletedWorkoutsRepo.Verify(x => x.Add(It.IsAny <CompletedWorkout>()));
        }
        public async Task <IActionResult> Add(CreateCompletedWorkoutViewModel vm)
        {
            var user = await userManager.GetUserAsync(HttpContext.User);

            workoutHistoryService.AddCompletedWorkout(user.Id, vm);
            return(RedirectToAction(nameof(Index)));
        }
        public void AddCompletedWorkout(string userId, CreateCompletedWorkoutViewModel vm)
        {
            var completedWorkout = new CompletedWorkout()
            {
                ApplicationUserId = userId,
                Comments          = vm.Comments,
                DateCreated       = DateTime.Now,
                WorkoutId         = vm.WorkoutId
            };

            completedWorkoutsRepo.Add(completedWorkout);

            completedExcercisesRepo.AddRange(vm.DetailedExercises.Select(de => new CompletedExercise()
            {
                ApplicationUserId = userId,
                DateCreated       = DateTime.Now,
                Comments          = de.Comments,
                ExerciseId        = de.ExerciseId,
                CompletedWorkout  = completedWorkout,
                Mins   = de.Mins,
                Weight = de.Weight,
                Sets   = de.Sets,
                Reps   = de.Reps
            }).ToList());

            completedWorkoutsRepo.SaveChanges();
            completedExcercisesRepo.SaveChanges();
        }
        public async Task <IActionResult> Add(int id)
        {
            CreateCompletedWorkoutViewModel vm = new CreateCompletedWorkoutViewModel();
            var user = await userManager.GetUserAsync(HttpContext.User);

            if (!workoutHistoryService.CheckUserId(user.Id, id))
            {
                return(NotFound());
            }

            var workoutName = workoutHistoryService.GetWorkoutName(id);

            vm.WorkoutId         = id;
            vm.WorkoutName       = workoutName;
            vm.DetailedExercises = workoutHistoryService.GetWorkoutExercises(user.Id, id).ToList();

            return(View(vm));
        }