public IngredientDetailPage()
        {
            InitializeComponent();

            var ing = new SimpleIngredient();

            viewModel      = new IngredientDetailViewModel(ing);
            BindingContext = viewModel;
        }
Example #2
0
        /// <summary>
        /// Take an ingredient and add it to grocery list
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public IHttpActionResult Post([FromBody] SimpleIngredient value)
        {
            // Add by ID
            // Add by name if no ID present
            using (var context = new MarcDbEntities())
            {
                // Let's try by id first then name
                if (value.Id != -1)
                {
                    var groceryIngredients = context.GroceryIngredients.Where(g => g.IngredientId == value.Id);

                    if (!groceryIngredients.Any())
                    {
                        var ingredient = context.Ingredients.FirstOrDefault(i => i.Id == value.Id);
                        context.GroceryIngredients.Add(new GroceryIngredient()
                        {
                            Ingredient = ingredient, GroceryId = 1
                        });

                        context.SaveChanges();

                        return(Ok());
                    }
                    else
                    {
                        // Already exists
                        return(Ok());
                    }
                }
                else
                {
                    var groceryIngredients = context.GroceryIngredients.Where(g => g.Ingredient.Name == value.Name);

                    // If this ingredient in the grocery list?
                    if (!groceryIngredients.Any())
                    {
                        // No it's not see if the ingredient actually exists
                        Ingredient ingredient = context.Ingredients.FirstOrDefault(i => i.Name == value.Name);

                        if (ingredient == null)
                        {
                            // Created ingredient
                            ingredient = context.Ingredients.Add(new Ingredient {
                                Name = value.Name
                            });
                            context.SaveChanges();
                        }

                        context.GroceryIngredients.Add(new GroceryIngredient()
                        {
                            Ingredient = ingredient, GroceryId = 1
                        });

                        context.SaveChanges();

                        return(Ok());
                    }
                    else
                    {
                        // Already exists
                        return(Ok());
                    }
                }
            }
        }