public ControllerMessage Update(IngredientEditDTO ingredientEditDTO)
        {
            string message = String.Empty;
            bool   success = Validate(ingredientEditDTO.NewName, ref message);

            if (success)
            {
                try
                {
                    IngredientEntity ingredientEntity = unitOfWork.Ingredients.Get(ingredientEditDTO.OldName);
                    if (ingredientEntity != null)
                    {
                        ingredientEntity.Name = ingredientEditDTO.NewName;
                        unitOfWork.Commit();

                        message = "Ingredient changed";
                    }
                    else
                    {
                        success = false;
                        message = "Ingredient not found";
                    }
                }
                catch (Exception ex)
                {
                    success = false;
                    message = ExceptionMessageBuilder.BuildMessage(ex);
                }
            }

            return(new ControllerMessage(success, message));
        }
        public DataControllerMessage <IngredientEditDTO> Get(string ingredientName)
        {
            string            message = String.Empty;
            bool              success = true;
            IngredientEditDTO data    = null;

            try
            {
                IngredientEntity ingredientEntity = unitOfWork.Ingredients.Get(ingredientName);
                if (ingredientEntity != null)
                {
                    data = new IngredientEditDTO
                    {
                        NewName         = ingredientEntity.Name,
                        OldName         = ingredientEntity.Name,
                        StocksAvailable = unitOfWork.Stocks.GetAllWithIngredient(ingredientName)
                                          .Select(stock => stock.StockNo)
                                          .OrderBy(stockNo => stockNo)
                                          .ToList()
                    };
                }
                else
                {
                    success = false;
                    message = "Ingredient not found";
                }
            }
            catch (Exception ex)
            {
                success = false;
                message = ExceptionMessageBuilder.BuildMessage(ex);
            }

            return(new DataControllerMessage <IngredientEditDTO>(success, message, data));
        }
        private void RaiseIngredientSaveRequestEvent(IngredientEditDTO ingredient)
        {
            var handler = IngredientSaveRequest;

            if (handler != null)
            {
                GenericEventArgs <IngredientEditDTO> e = new GenericEventArgs <IngredientEditDTO>(ingredient);
                handler(this, e);
            }
        }
        public async Task <ActionResult <IngredientEditDTO> > GetForEdit(int id)
        {
            IngredientEditDTO result = await this.ingService.GetIngredientEditDataAsync(id);

            if (result is null)
            {
                return(BadRequest("Recipe was not found!"));
            }
            return(result);
        }
 public async Task <ActionResult <int> > Edit(IngredientEditDTO editIng)
 {
     if (editIng.AuthorId != UserId && !IsAdmin)
     {
         return(BadRequest("Not authorized to edit this ingredient!"));
     }
     if (await this.ingService.IsNameUsedAsync(editIng.Name, editIng.Id))
     {
         return(BadRequest("Ingredient Name is already in Use"));
     }
     if (!await this.ingService.UpdateAsync(editIng))
     {
         return(BadRequest("Ingredient with given Id was not found!"));
     }
     return(editIng.Id);
 }
        private void OnDelete(IngredientEditDTO ingredientEditDTO, IngredientEditViewModel viewModel)
        {
            using (IIngredientController controller = factory.CreateIngredientController())
            {
                ControllerMessage controllerMessage = controller.Delete(ingredientEditDTO.OldName);

                if (controllerMessage.IsSuccess)
                {
                    Notify();
                    viewModel.Clear();
                }
                else
                {
                    MessageBox.Show(controllerMessage.Message);
                }
            }
        }
        private void OnSave(IngredientEditDTO ingredientEditDTO)
        {
            using (IIngredientController controller = factory.CreateIngredientController())
            {
                ControllerMessage controllerMessage = controller.Update(ingredientEditDTO);

                if (controllerMessage.IsSuccess)
                {
                    ingredientEditDTO.OldName = ingredientEditDTO.NewName;
                    Notify();
                }
                else
                {
                    MessageBox.Show(controllerMessage.Message);
                }
            }
        }
Пример #8
0
        public async Task <bool> UpdateAsync(IngredientEditDTO editIng)
        {
            var ingFd = await this.ingRepo.All().FirstOrDefaultAsync(x => x.Id == editIng.Id && !x.IsDeleted);

            if (ingFd is null)
            {
                return(false);
            }
            ingFd.Name           = editIng.Name;
            ingFd.IsEssential    = editIng.IsEssential;
            ingFd.MeasureType    = editIng.MeasureType;
            ingFd.Origin         = editIng.Origin;
            ingFd.PicUrl         = editIng.PicUrl;
            ingFd.Description    = editIng.Description;
            ingFd.DateOfLastEdit = DateTime.UtcNow;
            await this.ingRepo.SaveChangesAsync();

            return(true);
        }
        public void ChangeIngredient(string ingredientName)
        {
            using (IIngredientController controller = factory.CreateIngredientController())
            {
                DataControllerMessage <IngredientEditDTO> controllerMessage = controller.Get(ingredientName);
                if (controllerMessage.IsSuccess)
                {
                    this.ingredient = controllerMessage.Data;

                    this.Stocks.Clear();
                    foreach (int stockNo in ingredient.StocksAvailable)
                    {
                        this.Stocks.Add(stockNo);
                    }

                    RaisePropertyChangedEvent("Name");
                }
            }
        }
 public void Clear()
 {
     this.ingredient = null;
     this.Stocks.Clear();
     RaisePropertyChangedEvent("Name");
 }