예제 #1
0
        public async Task <IActionResult> Edit(BarUpdateRequest bar)
        {
            if (!this.ModelState.IsValid)
            {
                return(View(bar));
            }

            await this.barService.Update(bar);

            return(RedirectToAction("Index", "Bars"));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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
            });
        }