public UIElement GetEditView(IIngredientSubject subject, DishEditDTO dishEditDTO) { IngredientListViewModel ingredientListViewModel = new IngredientListViewModel(factory, subject); RecipeAddViewModel recipeAddViewModel = new RecipeAddViewModel(factory, this, ingredientListViewModel); recipeAddViewModel.MustSelectDish = false; DishEditViewModel viewModel = new DishEditViewModel(dishEditDTO, recipeAddViewModel); DishEditView view = new DishEditView(viewModel); viewModel.DishSaveRequest += (s, e) => { using (IDishController controller = factory.CreateDishController()) { ControllerMessage controllerMessage = controller.Update(e.Data); if (controllerMessage.IsSuccess) { Notify(); } else { MessageBox.Show(controllerMessage.Message); } } }; viewModel.DishSaveRecipesRequest += (s, e) => { using (IDishController controller = factory.CreateDishController()) { ControllerMessage controllerMessage = controller.UpdateRecipes(e.Data); if (controllerMessage.IsSuccess) { Notify(); } else { MessageBox.Show(controllerMessage.Message); } } }; viewModel.DishDeleteRequest += (s, e) => { using (IDishController controller = factory.CreateDishController()) { ControllerMessage controllerMessage = controller.Delete(e.Data.OldName); if (controllerMessage.IsSuccess) { Notify(); RaiseDishDeletedEvent(e.Data.OldName); } else { MessageBox.Show(controllerMessage.Message); } } }; return(view); }
public UIElement GetAddView(IDishSubject dishSubject, IIngredientSubject ingredientSubject) { IngredientListViewModel ingredientsViewModel = new IngredientListViewModel(factory, ingredientSubject); RecipeAddViewModel viewModel = new RecipeAddViewModel(factory, dishSubject, ingredientsViewModel); RecipeAddView view = new RecipeAddView(viewModel); viewModel.RecipeAdded += (s, ea) => OnAdd(ea.Data, viewModel); return(view); }
public UIElement GetListView(IIngredientSubject subject) { DishListViewModel viewModel = new DishListViewModel(factory, this); DishListView view = new DishListView(viewModel); Window window = WindowFactory.CreateByContentsSize(view); viewModel.DishSelected += (s, e) => OnSelected(e.Data, subject); return(view); }
public UIElement GetMenuView(IDishViewController dishViewController, IIngredientSubject ingredientSubject) { MenuViewModel viewModel = new MenuViewModel(factory, this); MenuView view = new MenuView(viewModel); viewModel.MenuChanged += (s, e) => OnMenuUpdate(e.Data, viewModel); viewModel.DishSelected += (s, e) => OnSelect(e.Data, dishViewController, ingredientSubject); return(view); }
public IngredientListViewModel(IControllerFactory factory, IIngredientSubject subject) { this.factory = factory; this.SelectCommand = new DelegateCommand( () => RaiseIngredientSelectedEvent(ingredient), obj => Ingredient != null); this.Ingredients = new ObservableCollection <IngredientDisplayDTO>(); subject.Subscribe(this); Update(); }
private void OnSelected(DishDisplayDTO dishDisplayDTO, IIngredientSubject subject) { using (IDishController controller = factory.CreateDishController()) { DataControllerMessage <DishEditDTO> controllerMessage = controller.Get(dishDisplayDTO.Name); if (controllerMessage.IsSuccess) { Edit(controllerMessage.Data, subject); } else { MessageBox.Show(controllerMessage.Message); } } }
private void Edit(DishEditDTO dishEditDTO, IIngredientSubject subject) { IngredientListViewModel ingredientListViewModel = new IngredientListViewModel(factory, subject); RecipeAddViewModel recipeAddViewModel = new RecipeAddViewModel(factory, this, ingredientListViewModel); recipeAddViewModel.MustSelectDish = false; DishEditViewModel viewModel = new DishEditViewModel(dishEditDTO, recipeAddViewModel); DishEditView view = new DishEditView(viewModel); Window window = WindowFactory.CreateByContentsSize(view); window.MinWidth = view.MinWidth; viewModel.DishSaveRequest += (s, e) => { using (IDishController controller = factory.CreateDishController()) { ControllerMessage controllerMessage = controller.Update(e.Data); if (controllerMessage.IsSuccess) { Notify(); } else { MessageBox.Show(controllerMessage.Message); } } }; viewModel.DishSaveRecipesRequest += (s, e) => { using (IDishController controller = factory.CreateDishController()) { ControllerMessage controllerMessage = controller.UpdateRecipes(e.Data); if (controllerMessage.IsSuccess) { Notify(); } else { MessageBox.Show(controllerMessage.Message); } } }; window.Show(); }
private void OnSelect(string dishName, IDishViewController dishViewController, IIngredientSubject ingredientSubject) { using (IDishController controller = factory.CreateDishController()) { DataControllerMessage <DishEditDTO> controllerMessage = controller.Get(dishName); if (controllerMessage.IsSuccess) { UIElement view = dishViewController.GetEditView(ingredientSubject, controllerMessage.Data); Window window = WindowFactory.CreateByContentsSize(view); window.Title = String.Format("{0} - {1}", dishName, controllerMessage.Data.CategoryName); dishViewController.DishDeleted += (s, e) => { if (dishName == e.Data) { window.Close(); } }; window.Show(); } else { MessageBox.Show(controllerMessage.Message); } } }