public IActionResult CreateClientActivity(int activityId, [FromBody] ClientActivityForCreation clientActivity) { if (clientActivity == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest()); } if (!_sportRepository.ActivityExists(activityId)) { return(NotFound()); } var clientId = User.Claims.FirstOrDefault(c => c.Type == "sub").Value; if (_sportRepository.ClientActivityExists(clientId, activityId)) { return(BadRequest("This user has already registered to this activity")); } var finalClientActivity = Mapper.Map <Entities.ClientActivity>(clientActivity); finalClientActivity.ClientId = clientId; _sportRepository.AddClientActivity(activityId, finalClientActivity); if (!_sportRepository.Save()) { return(StatusCode(500, "A problem happened while handling your request.")); } var createdClientActivityToReturn = Mapper.Map <Model.ClientActivity>(finalClientActivity); return(CreatedAtRoute("GetClientActivity", new { /*ActivityId = activityId,*/ id = createdClientActivityToReturn.Id }, createdClientActivityToReturn)); }
/*public IActionResult AddClientActivity(int id) * { * ViewBag.Title = "Naujas užsiėmimas"; * return (id, new ClientActivityForCreation()); * }*/ //[Authorize(Roles = "Client")] public async Task <IActionResult> AddClientActivity(int id) { ClientActivityForCreation model = new ClientActivityForCreation(); if (!ModelState.IsValid) { return(View()); } var httpClient = await _sportHttpClient.GetClient(); var serializedClientActivity = JsonConvert.SerializeObject(model); var response = await httpClient.PostAsync( $"{port}/api/activities/{id}/clientactivities", new StringContent(serializedClientActivity, System.Text.Encoding.Unicode, "application/json")) .ConfigureAwait(false); return(RedirectToAction("GetClientActivities")); //throw new Exception($"A problem happened while calling the API: {response.ReasonPhrase}"); }