public async Task <IActionResult> ManageCocktails(CocktailsViewModel vm) { if (string.IsNullOrEmpty(vm.Input)) { return(View()); } var viewModel = new CocktailsViewModel(); var cocktails = await _cocktailServices.GetMultipleCocktailsByNameAsync(vm.Input); if (cocktails.Count == 0) { ModelState.AddModelError(string.Empty, "No cocktails found with this name."); return(View(viewModel)); } viewModel.Cocktails = cocktails.Select(c => c.MapToViewModel()).ToList(); return(View(viewModel)); }
public async Task <IActionResult> CreateBarEvent(EventViewModel model) { string modelAsString = string.Empty; var bar = await _barServices.GetBarAsync(model.BarId); var cocktailViewModel = new CocktailsViewModel(); cocktailViewModel.Cocktails = bar.BarCocktails.Select(bc => bc.Cocktail.MapToViewModel()).ToList(); try { model.BarViewHtmlString = await this._formattingService.RenderViewToStringAsync <CocktailsViewModel>("_BarMenuPartial", cocktailViewModel); } catch (Exception ex) { Console.WriteLine(ex.Message); } var emails = model.InvitationEmailAddresses.TrimEnd('x').Split(new char[] { 'x', ',' }, StringSplitOptions.None); var from = "*****@*****.**"; var body = model.ToString(); var subject = "Event invitation"; var viewAsPdf = this._formattingService.HtmlStringToPDF(model.BarViewHtmlString); bool mailsSent = await this._mailServices.SendEmailToGroup(from, emails, subject, body, viewAsPdf); // тука може да си добавите сървис, който да запазва ивента в базата. в момента нямам имплементиран такъв сървис, нито имам ентити за ивент, има само ивентвюмодел // може в джейсъна да сложите и още пропъртита за да има за всяка операция. // bool successfullyCreated = this.eventServices.CreateAsync(model); => псевдо код как запазвате ивента в базата и ако е успешно може да върнете от сървиса тру, иначе фолс и // така може да пратите инфо в джейсъна за всичките неща - и за статуса на мейлите и за статуса на самия ивент return(Json(new { mailsSent = mailsSent /*, successfullyCreated = successfullyCreated*/ })); }