Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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}");
        }