public ActionResult Edit(EditIngredientViewModel viewModel)
        {
            if (viewModel == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (!User.IsInRole("Administrator"))
            {
                return(View("Error"));
            }

            var ingredientEntity = _ingredientsRepository.GetById(viewModel.Id);

            ingredientEntity.Name = viewModel.Name;

            TryValidateModel(ingredientEntity);

            if (!ModelState.IsValid)
            {
                this.AddNotification("Грешка при запазване на промените: Името на съставката не е валидно.", NotificationType.ERROR);
                return(RedirectToAction("Index", new { page = viewModel.CurrentPage, searchText = viewModel.SearchText }));
            }

            _ingredientsRepository.Update(ingredientEntity);

            if (!_ingredientsRepository.Save())
            {
                this.AddNotification("Грешка при запазване на промените: Името на съставката не е валидно.", NotificationType.ERROR);
                return(RedirectToAction("Index", new { page = viewModel.CurrentPage, searchText = viewModel.SearchText }));
            }

            this.AddNotification("Съставката е променена.", NotificationType.SUCCESS);
            return(RedirectToAction("Index", new { page = viewModel.CurrentPage, searchText = viewModel.SearchText }));
        }