public async Task <ActionResult> Post([FromBody] AttractionUpdateDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!await this.MatchAppUserWithToken(model.AppUserId)) { return(Unauthorized()); } var newAttraction = this._mapper.Map <Attraction>(model); // List<AttractionCategorization> categorizationList = new List<AttractionCategorization>(); // foreach (var categoryId in model.CategoryIds) // { // categorizationList.Add(new AttractionCategorization() { AttractionCategoryId = categoryId }); // } // newAttraction.Categorizations = categorizationList; _attractionRepo.Add(newAttraction); if (await _attractionRepo.SaveAll() > 0) { return(CreatedAtRoute("GetAttraction", new { id = newAttraction.Id }, _mapper.Map <AttractionForReturnDto>(newAttraction))); } return(BadRequest("Failed to add clanseek")); }
public async Task <ActionResult> Put([FromBody] AttractionUpdateDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var attractionFromRepo = await this._attractionRepo.GetAttraction(model.Id); if (attractionFromRepo == null) { return(NotFound()); } if (!await MatchAppUserWithToken((int)attractionFromRepo.AppUserId)) { return(Unauthorized()); } attractionFromRepo.Categorizations.Clear(); await _attractionRepo.SaveAll(); _mapper.Map(model, attractionFromRepo); try { await _attractionRepo.SaveAll(); } catch (System.Exception ex) { return(BadRequest("Failed to update attraction: " + ex.Message)); } return(Ok()); }
public IActionResult Put(int cityId, int id, [FromBody] AttractionUpdateDto attraction) { if (attraction == null) { return(BadRequest()); } if (attraction.Description == attraction.Name) { ModelState.AddModelError("Description", "The description should be different from the name."); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!Repository.CityExists(cityId)) { return(NotFound()); } var cityAttraction = Repository.GetAttraction(cityId, id); if (cityAttraction == null) { return(NotFound()); } Mapper.Map(attraction, cityAttraction); if (!Repository.Save()) { return(StatusCode(500, "An error occured while handling your request.")); } return(NoContent()); }