public async Task <IActionResult> DownloadRecipe(string Id) { if (!await _cocktailServices.CheckIfCocktailExist(Id)) { _toast.AddErrorToastMessage($"Cocktail with Id: {Id} does not exist!"); return(RedirectToAction("ListCocktails", "Cocktails")); } try { var cocktailName = await _cocktailServices.GetCocktailNameById(Id); var cocktailRecepie = await _cocktailServices.GetCocktailRecipe(Id); var content = new System.IO.MemoryStream(Encoding.UTF8.GetBytes(cocktailRecepie)); var contentType = "APPLICATION/octet-stream"; var fileName = $"{cocktailName}.txt"; return(File(content, contentType, fileName)); } catch (Exception ex) { _toast.AddErrorToastMessage(ex.Message); ViewBag.ErrorTitle = ""; return(View("Error")); } }
public async Task <IActionResult> RateCocktail(CocktailReviewViewModel cocktailVm) { if (ModelState.IsValid) { try { var cocktailDto = cocktailVm.MapToCocktailDto(); string userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); var cocktailName = await _cocktailServices.GetCocktailNameById(cocktailDto.Id); await _reviewServices.CreateCocktailReview(userId, cocktailDto); _toast.AddSuccessToastMessage($"You successfully rated \"{cocktailName}\" cocktail"); return(RedirectToAction("ListCocktails", "Cocktails", new { area = "Cocktails" })); } catch (Exception ex) { _toast.AddErrorToastMessage(ex.Message); ViewBag.ErrorTitle = ""; return(View("Error")); } } else { _toast.AddErrorToastMessage("You submitted invalid review! " + "Both Rating and Descrition are required parameters. Description must be between 5 and 500 symbols."); return(RedirectToAction("RateCocktail", cocktailVm.CocktailID)); } }