private Workout MapToEntity(WorkoutDto workoutViewDto, Workout workoutEntity) { var user = _userService.GetUser(1); var raceType = _raceTypeService.GetRaceType(workoutViewDto.RaceTypeId); workoutEntity.Name = workoutViewDto.Name; workoutEntity.Length = workoutViewDto.Length; workoutEntity.AvgSpeed = workoutViewDto.AvgSpeed; workoutEntity.StartDateTime = workoutViewDto.StartDateTime; workoutEntity.EndDateTime = workoutViewDto.EndDateTime; workoutEntity.ElapsedHours = workoutViewDto.ElapsedHours; workoutEntity.ElapsedMinutes = workoutViewDto.ElapsedMinutes; workoutEntity.ElapsedSeconds = workoutViewDto.ElapsedSeconds; workoutEntity.User = user; workoutEntity.RaceType = raceType; foreach (var gpsCoord in workoutViewDto.GpsCoords) { workoutEntity.GpsCoords.Add(new WorkoutGpsCoord { Latitude = gpsCoord.Latitude, Longitude = gpsCoord.Longtitude, Elevation = gpsCoord.Elevation, TimeStamp = gpsCoord.Timestamp }); } return(workoutEntity); }
public IHttpActionResult GetWorkouts(int planId) { IEnumerable <Workout> workouts = _unitOfWork.Workouts.GetWorkouts(planId); foreach (Workout w in workouts) { w.Exercises = _unitOfWork.Exercises.GetExercises(w.Id); } var workoutDto = new WorkoutDto { Workouts = workouts }; return(Ok(workoutDto)); }
public HttpResponseMessage Post(WorkoutDto workoutViewModel) { try { var workoutEntity = new Workout(); workoutEntity = MapToEntity(workoutViewModel, workoutEntity); _workoutService.CreateWorkout(workoutEntity); return(Request.CreateResponse(HttpStatusCode.OK)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message)); } }
public async Task EditWorkout_ReturnsAView_WithWorkout() { // Arrange var workoutDto = new WorkoutDto() { Name = "Workout", CreationDate = DateTime.MinValue, Id = 1, UserId = 1, WorkoutEntryDtos = new List <WorkoutEntryDto> { new WorkoutEntryDto { ExerciseId = 1, ExerciseName = "Squat", Id = 1, Reps = 10, Set = 10, Weight = 10 } } }; var exercises = new List <ExerciseDto> { new ExerciseDto { Description = "Description", Id = 1, Name = "Squat" } }; var workoutEntries = new List <WorkoutEntryViewModel> { new WorkoutEntryViewModel { ExerciseName = "Squat", Id = 1, Reps = 10, Set = 10, Weight = 10 } }; var workoutViewModel = new WorkoutViewModel() { CreationDate = DateTime.MinValue, ExerciseId = 1, Name = "Workout", Exercises = exercises, Id = 1, WorkoutEntries = workoutEntries, Reps = 10, Weight = 10, Set = 10 }; var mockUserManager = new FakeUserManager(); var mockMapper = new Mock <IMapper>(); mockMapper.Setup(m => m.Map <WorkoutViewModel>(workoutDto)) .Returns(workoutViewModel) .Verifiable(); mockMapper.Setup(m => m.Map <ICollection <WorkoutEntryDto>, IEnumerable <WorkoutEntryViewModel> >(It.IsAny <ICollection <WorkoutEntryDto> >())) .Returns(workoutEntries) .Verifiable(); var mockLoggerFactory = new Mock <ILoggerFactory>(); var mockLogger = new Mock <ILogger>(); mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object); var mockWorkoutService = new Mock <IWorkoutService>(); mockWorkoutService.Setup(w => w.GetWorkoutAsync(It.IsAny <int>())) .ReturnsAsync(workoutDto) .Verifiable(); // Return workout var mockExerciseService = new Mock <IExerciseService>(); mockExerciseService.Setup(e => e.GetAllExercisesAsync()) .ReturnsAsync(exercises) .Verifiable(); // Returns exercises var mockChallengeService = new Mock <IChallengeService>(); var mockWorkoutRepository = new Mock <IWorkoutRepository>(); var workoutController = new WorkoutController( mockLoggerFactory.Object, mockMapper.Object, mockWorkoutService.Object, mockExerciseService.Object, mockUserManager, mockWorkoutRepository.Object, mockChallengeService.Object); // Act var result = await workoutController.EditWorkout(It.IsAny <int>()) as ViewResult; // Assert Assert.IsType <ViewResult>(result); //Assert.Equal("EditWorkout", result.ViewName); var model = Assert.IsType <WorkoutViewModel>(result.Model); Assert.Equal(DateTime.MinValue, model.CreationDate); Assert.Equal(1, model.ExerciseId); Assert.Equal("Workout", model.Name); Assert.Equal(exercises, model.Exercises); Assert.Equal(1, model.Id); Assert.Equal(workoutEntries, model.WorkoutEntries); Assert.Equal(10, model.Reps); Assert.Equal(10, model.Weight); Assert.Equal(10, model.Set); }