public async Task <SightViewModel> UpdateSight(int sightId, SightViewModel sight) { var sightToUpdate = await _applicationDbContext.Sights.FirstOrDefaultAsync(x => x.SightId == sightId); sightToUpdate.Description = sight.Description; sightToUpdate.Title = sight.Title; _applicationDbContext.Sights.Update(sightToUpdate); await _applicationDbContext.SaveChangesAsync(); return(_mapper.Map <SightViewModel>(sightToUpdate)); }
public async Task <SightViewModel> CreateSight(SightViewModel sight) { Sight sightToCreate = new Sight { Description = sight.Description, Title = sight.Title, TourId = sight.TourId }; sightToCreate.Tour = await _applicationDbContext.Tours.FirstOrDefaultAsync(x => x.TourId == sight.TourId); await _applicationDbContext.Sights.AddAsync(sightToCreate); await _applicationDbContext.SaveChangesAsync(); return(_mapper.Map <SightViewModel>(sightToCreate)); }
public async Task <IHttpActionResult> PostSight(SightViewModel sightViewModel, string language) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var sight = (Sight)sightViewModel; sight.TitleKey = Guid.NewGuid().ToString() + nameof(sightViewModel.Title); sight.DescriptionKey = Guid.NewGuid().ToString() + nameof(sightViewModel.Description); var description = new Localization { Value = sightViewModel.Description, Key = sightViewModel.DescriptionKey, Culture = language, }; _db.Localizations.Add(description); var title = new Localization { Value = sightViewModel.Title, Key = sightViewModel.TitleKey, Culture = language, }; _db.Localizations.Add(title); _db.Sights.Add(sight); await _db.SaveChangesAsync(); sightViewModel.SightId = sight.SightId; return(CreatedAtRoute("DefaultApi", new { id = sightViewModel.SightId }, sightViewModel)); }
public async Task <IHttpActionResult> PutSight(int id, SightViewModel sightViewModel, string language) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != sightViewModel.SightId) { return(BadRequest()); } var sight = (Sight)sightViewModel; var title = _db.Localizations.FirstOrDefault(x => x.Key == sight.TitleKey && x.Culture == language); var description = _db.Localizations.FirstOrDefault(x => x.Key == sight.DescriptionKey && x.Culture == language); if (description == null) { description = new Localization { Value = sightViewModel.Description, Key = sightViewModel.DescriptionKey, Culture = language, }; _db.Localizations.Add(description); } else { if (description.Value != sightViewModel.Description) { _db.Entry(description).State = EntityState.Modified; } } if (title == null) { title = new Localization { Value = sightViewModel.Title, Key = sightViewModel.TitleKey, Culture = language, }; _db.Localizations.Add(title); } else { if (title.Value != sightViewModel.Title) { _db.Entry(title).State = EntityState.Modified; } } _db.Entry(sight).State = EntityState.Modified; try { await _db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SightExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public async Task <ActionResult <SightViewModel> > UpdateSight(Int32 sightId, [FromBody] SightViewModel sight) { var result = await _sightsService.UpdateSight(sightId, sight); return(Ok(result)); }
public async Task <ActionResult <SightViewModel> > CreateSight([FromBody] SightViewModel sight) { var result = await _sightsService.CreateSight(sight); return(Ok(result)); }