public async Task <IActionResult> Edit(BarUpdateRequest bar) { if (!this.ModelState.IsValid) { return(View(bar)); } await this.barService.Update(bar); return(RedirectToAction("Index", "Bars")); }
public async Task <Bar> Update(BarUpdateRequest bar) { var existingBar = await GetBar(bar.Id); var newBarEntity = bar.ToEntity(existingBar.ToEntity()); var existingCocktailIds = existingBar.Cocktails.Select(x => x.Id); var cocktailIdsToRemove = existingCocktailIds.Except(bar.CocktailIds); var cocktailIdsToAdd = bar.CocktailIds.Except(existingCocktailIds); AddCocktails(bar.Id, cocktailIdsToAdd); RemoveCocktails(bar.Id, cocktailIdsToRemove); this.context.Bars.Update(newBarEntity); await this.context.SaveChangesAsync(); return(await GetBar(bar.Id)); }
public static BarEntity ToEntity(this BarUpdateRequest contract, BarEntity entity) { if (contract == null) { return(null); } return(new BarEntity { Id = entity.Id, Name = contract.Name, Address = contract.Address, Rating = entity.Rating, IsHidden = contract.IsHidden, ImagePath = contract.ImagePath }); }