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)); }
private void RaiseStockSaveRequestEvent(StockEditDTO stock) { var handler = StockSaveRequest; if (handler != null) { GenericEventArgs <StockEditDTO> e = new GenericEventArgs <StockEditDTO>(stock); handler(this, e); } }
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); } } }
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); } } }
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); }
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"); } } }
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)); }
public void Clear() { this.stock = null; this.IngredientCount.Clear(); RaisePropertyChangedEvent("StockNo"); }