public async Task <IActionResult> PostWorkout([FromBody] SaveWorkoutResource saveWorkout) { //throw new Exception (); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } /*Workout duplicate = await _context.Workouts.SingleOrDefaultAsync(w => w.Title == saveWorkout.Title && * w.Date == saveWorkout.Date); * if (duplicate != null) * { * return Conflict(); * }*/ string userId = GetUserId(); var workout = mapper.Map <SaveWorkoutResource, Workout> (saveWorkout); // workout = MapUrl(workout); workout.UserId = userId; repository.Add(workout); await unitOfWork.CompleteAsync(); var result = mapper.Map <Workout, WorkoutResource> (workout); return(CreatedAtAction("GetWorkout", new { id = result.WorkoutId }, result)); }
public async Task <IActionResult> PutWorkout(int id, [FromBody] SaveWorkoutResource saveWorkout) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var workout = await repository.Get(id); if (workout == null) { return(NotFound()); } if (workout.UserId != GetUserId()) { return(Forbid()); } mapper.Map <SaveWorkoutResource, Workout> (saveWorkout, workout); // workout = MapUrl(workout); try { await unitOfWork.CompleteAsync(); } catch (DbUpdateConcurrencyException) { if (!repository.IfExists(id)) { return(NotFound()); } else { throw; } } var result = mapper.Map <Workout, WorkoutResource> (workout); return(Ok(result)); }