public async Task <IActionResult> CreateBar(BarViewModel barViewModel) { if (await _barServices.BarWithThatNameExists(barViewModel.Name)) { ModelState.AddModelError(string.Empty, "Bar with that name already exists."); return(View()); } if (!ModelState.IsValid) { return(View()); } var query = barViewModel.FormatApiTemplate(barViewModel.Address.Split(' ')); var apiResult = await this._apiServices.CallApiAsync(query); barViewModel.ParseApiResult(apiResult); var barModel = await barViewModel.MapToEntity(); await _barServices.CreateBarAsync(barModel); foreach (var cocktail in barViewModel.Cocktails) { var cocktailEntity = await _cocktailServices.GetAsync(cocktail); await _barCocktailServices.CreateAsync(barModel, cocktailEntity); } return(RedirectToAction("Index", "Home")); }