public IActionResult CreateActivity([FromBody] ActivityForCreationAndUpdate activity) { if (activity == null) { return(NotFound()); } var finalActivity = Mapper.Map <Entities.Activity>(activity); var trainerId = User.Claims.FirstOrDefault(c => c.Type == "sub").Value; finalActivity.TrainerId = trainerId; _sportRepository.AddActivity(finalActivity); if (!_sportRepository.Save()) { return(StatusCode(500, "A problem happened while handling your request.")); } var createdActivityToReturn = Mapper.Map <Model.Activity>(finalActivity); return(CreatedAtRoute("GetActivity", new { activityId = createdActivityToReturn.Id }, createdActivityToReturn)); }
public IActionResult UpdateActivity(int activityId, [FromBody] ActivityForCreationAndUpdate activity) { if (activity == null) { return(BadRequest()); } var activityEntity = _sportRepository.GetActivity(activityId); if (activityEntity == null) { return(NotFound()); } var trainerId = User.Claims.FirstOrDefault(c => c.Type == "sub").Value; if (!(trainerId == activityEntity.TrainerId)) { return(Unauthorized()); } Mapper.Map(activity, activityEntity); if (!_sportRepository.Save()) { return(StatusCode(500, "A problem happened while handling your request.")); } return(NoContent()); }
public async Task <IActionResult> EditActivity(Activity activity) { if (!ModelState.IsValid) { return(View()); } var activityForUpdate = new ActivityForCreationAndUpdate() { Name = activity.Name, Beginning = activity.Beginning, Ending = activity.Ending }; var serializedActivityForUpdate = JsonConvert.SerializeObject(activityForUpdate); var httpClient = await _sportHttpClient.GetClient(); var response = await httpClient.PutAsync( $"{port}/api/activities/{activity.Id}", new StringContent(serializedActivityForUpdate, System.Text.Encoding.Unicode, "application/json")) .ConfigureAwait(false); if (response.IsSuccessStatusCode) { return(RedirectToAction("Index")); } throw new Exception($"A problem happened while calling the API: {response.ReasonPhrase}"); }