Exemple #1
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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();
        }
Exemple #6
0
 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);
         }
     }
 }
Exemple #7
0
        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();
        }
Exemple #8
0
        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);
                }
            }
        }