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());
        }
Exemple #3
0
        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());
        }