Exemple #1
0
        public ControllerMessage Update(StockEditDTO stockEditDTO)
        {
            string message = String.Empty;
            bool   success = Validate(stockEditDTO.NewStockNo, ref message, stockEditDTO.OldStockNo != stockEditDTO.NewStockNo);

            if (success)
            {
                try
                {
                    StockEntity stockEntity = unitOfWork.Stocks.GetByNo(stockEditDTO.OldStockNo);
                    stockEntity.StockNo = stockEditDTO.NewStockNo;

                    foreach (StockIngredientEntity stockIngredientEntity in stockEntity.StockIngredients)
                    {
                        int count = stockEditDTO.IngredientCount
                                    .Single(ingredient => ingredient.Ingredient == stockIngredientEntity.Ingredient.Name)
                                    .Count;
                        stockIngredientEntity.Count = count >= 0 ? count : 0;
                    }

                    unitOfWork.Commit();

                    message = "Stock changed";
                }
                catch (Exception ex)
                {
                    success = false;
                    message = ExceptionMessageBuilder.BuildMessage(ex);
                }
            }

            return(new ControllerMessage(success, message));
        }
Exemple #2
0
        private void RaiseStockSaveRequestEvent(StockEditDTO stock)
        {
            var handler = StockSaveRequest;

            if (handler != null)
            {
                GenericEventArgs <StockEditDTO> e = new GenericEventArgs <StockEditDTO>(stock);
                handler(this, e);
            }
        }
Exemple #3
0
 private void OnDelete(StockEditDTO stockEditDTO, StockEditViewModel viewModel)
 {
     using (IStockController controller = factory.CreateStockController())
     {
         ControllerMessage controllerMessage = controller.Delete(stockEditDTO.OldStockNo);
         if (controllerMessage.IsSuccess)
         {
             Notify();
             viewModel.Clear();
         }
         else
         {
             MessageBox.Show(controllerMessage.Message);
         }
     }
 }
Exemple #4
0
 private void OnSave(StockEditDTO stockEditDTO)
 {
     using (IStockController controller = factory.CreateStockController())
     {
         ControllerMessage controllerMessage = controller.Update(stockEditDTO);
         if (controllerMessage.IsSuccess)
         {
             stockEditDTO.OldStockNo = stockEditDTO.NewStockNo;
             Notify();
         }
         else
         {
             MessageBox.Show(controllerMessage.Message);
         }
     }
 }
Exemple #5
0
        public StockEditViewModel(IControllerFactory factory, StockListViewModel viewModel, StockEditDTO stockEditDTO = null)
        {
            this.factory = factory;
            this.stock   = stockEditDTO;

            this.SaveCommand = new DelegateCommand(
                () => RaiseStockSaveRequestEvent(stock),
                obj => CanSave());
            this.DeleteCommand = new DelegateCommand(
                () => RaiseStockDeleteRequestEvent(stock),
                obj => stock != null);

            this.IngredientCount = new ObservableCollection <IngredientCount>();

            viewModel.StockSelected += (s, e) => ChangeStock(e.Data.StockNo);
        }
Exemple #6
0
        public void ChangeStock(int stockNo)
        {
            using (IStockController controller = factory.CreateStockController())
            {
                DataControllerMessage <StockEditDTO> controllerMessage = controller.Get(stockNo);
                if (controllerMessage.IsSuccess)
                {
                    this.stock = controllerMessage.Data;

                    this.IngredientCount.Clear();
                    foreach (IngredientCount ingredientCount in stock.IngredientCount)
                    {
                        this.IngredientCount.Add(ingredientCount);
                    }

                    RaisePropertyChangedEvent("StockNo");
                }
            }
        }
Exemple #7
0
        public DataControllerMessage <StockEditDTO> Get(int stockNo)
        {
            string       message = String.Empty;
            bool         success = true;
            StockEditDTO data    = null;

            try
            {
                StockEntity stockEntity = unitOfWork.Stocks.GetByNo(stockNo);
                if (stockEntity != null)
                {
                    data = new StockEditDTO
                    {
                        OldStockNo = stockNo,
                        NewStockNo = stockNo
                    };
                    foreach (StockIngredientEntity stockIngredientEntity in stockEntity.StockIngredients.OrderBy(si => si.Ingredient.Name))
                    {
                        data.IngredientCount.Add(new IngredientCount
                        {
                            Ingredient = stockIngredientEntity.Ingredient.Name,
                            Count      = stockIngredientEntity.Count
                        });
                    }
                }
                else
                {
                    success = false;
                    message = "Stock not found";
                }
            }
            catch (Exception ex)
            {
                success = false;
                message = ExceptionMessageBuilder.BuildMessage(ex);
            }

            return(new DataControllerMessage <StockEditDTO>(success, message, data));
        }
Exemple #8
0
 public void Clear()
 {
     this.stock = null;
     this.IngredientCount.Clear();
     RaisePropertyChangedEvent("StockNo");
 }