Exemple #1
0
        public RecipeAddViewModel GetRecipeAddViewModel()
        {
            RecipeAddViewModel vm = new RecipeAddViewModel();

            vm.Recipe = new Recipe();
            return(vm);
        }
Exemple #2
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 #4
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();
        }
        private void OnAdd(RecipeAddDTO recipe, RecipeAddViewModel viewModel)
        {
            using (IRecipeController controller = factory.CreateRecipeController())
            {
                ControllerMessage controllerMessage = controller.Add(recipe);
                if (controllerMessage.IsSuccess)
                {
                    viewModel.Name        = String.Empty;
                    viewModel.Description = String.Empty;
                    viewModel.Ingredients.Clear();

                    Notify();
                }
                else
                {
                    MessageBox.Show(controllerMessage.Message);
                }
            }
        }
        public DishEditViewModel(DishEditDTO dish, RecipeAddViewModel viewModel)
        {
            this.dish = dish;
            this.RecipeAddViewModel = viewModel;

            this.RemoveRecipeCommand = new DelegateCommand(
                () => Recipes.Remove(Recipe),
                obj => Recipe != null
                );
            this.SaveRecipesCommand = new DelegateCommand(
                () => Save(dish),
                obj => CanSave()
                );
            this.SaveCommand = new DelegateCommand(
                () => RaiseDishSaveRequestEvent(dish),
                obj => CanSave()
                );
            this.DeleteCommand = new DelegateCommand(() => RaiseDishDeleteRequestEvent(dish));

            this.Recipes = new ObservableCollection <DishRecipeEditDTO>(dish.Recipes);

            viewModel.RecipeAdded += (s, e) =>
            {
                var addedRecipe = e.Data;
                if (!Recipes.Select(recipe => recipe.Name).Contains(addedRecipe.Name))
                {
                    DishRecipeEditDTO recipe = new DishRecipeEditDTO
                    {
                        Name        = addedRecipe.Name,
                        Description = addedRecipe.Description
                    };
                    recipe.Ingredients.AddRange(addedRecipe.Ingredients);

                    Recipes.Add(recipe);
                }
            };
        }
Exemple #7
0
 public RecipeAddView(RecipeAddViewModel viewModel)
 {
     InitializeComponent();
     this.DataContext = viewModel;
 }
Exemple #8
0
        public IActionResult AddRecipe(RecipeAddViewModel obj)
        {
            int recipeId = AddRecipeToDatabase(obj.Recipe);

            return(RedirectToAction("EditRecipe", new { recipeId = recipeId }));
        }
Exemple #9
0
        public IActionResult AddRecipe()
        {
            RecipeAddViewModel vm = GetRecipeAddViewModel();

            return(View(vm));
        }