Ejemplo n.º 1
0
        public DataControllerMessage <DishEditDTO> Get(string dishName)
        {
            string      message = String.Empty;
            bool        success = true;
            DishEditDTO data    = null;

            try
            {
                DishEntity dishEntity = unitOfWork.Dishes.Get(dishName);
                if (dishEntity != null)
                {
                    data = new DishEditDTO
                    {
                        NewName      = dishEntity.Name,
                        OldName      = dishEntity.Name,
                        Price        = dishEntity.Price,
                        CategoryName = dishEntity.Category.Name
                    };

                    foreach (RecipeEntity recipeEntity in dishEntity.Recipes)
                    {
                        DishRecipeEditDTO dishRecipe = new DishRecipeEditDTO
                        {
                            Name        = recipeEntity.Name,
                            Description = recipeEntity.Description
                        };

                        var ingredients = recipeEntity.RecipeIngredients.Select(ri => new IngredientPortion
                        {
                            Ingredient = ri.Ingredient.Name,
                            Portion    = ri.Portion
                        })
                                          .OrderBy(ingredient => ingredient.Ingredient);
                        dishRecipe.Ingredients.AddRange(ingredients);

                        data.Recipes.Add(dishRecipe);
                    }
                }
                else
                {
                    success = false;
                    message = "Dish not found";
                }
            }
            catch (Exception ex)
            {
                success = false;
                message = ExceptionMessageBuilder.BuildMessage(ex);
            }

            return(new DataControllerMessage <DishEditDTO>(success, message, data));
        }
Ejemplo n.º 2
0
        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);
                }
            };
        }