Example #1
0
 public SRL_MealRecipe(MealRecipe item)
 {
     this.MealId     = item.MealId;
     this.RecipeId   = item.RecipeId;
     this.RecipeName = item.Recipe.RecipeName;
     this.Servings   = item.Servings;
 }
Example #2
0
    protected void rptRecipes_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
    {
        MyBuyList.Shared.Entities.Menu menu = this.CurrentMenu;

        Meal       meal = null;
        MealRecipe currentMealRecipe = e.Item.DataItem as MealRecipe;

        if (currentMealRecipe != null)
        {
            meal = currentMealRecipe.Meal;
        }

        LinkButton lnkBtn = e.Item.FindControl("removeFromMeal") as LinkButton;

        if (lnkBtn != null)
        {
            lnkBtn.Attributes["recipeId"]      = currentMealRecipe.RecipeId.ToString();
            lnkBtn.Attributes["mealSignature"] = this.GetMealSignature(meal);
        }

        TextBox txtBox = e.Item.FindControl("txtServings") as TextBox;

        if (txtBox != null)
        {
            txtBox.Attributes["recipeId"]      = currentMealRecipe.RecipeId.ToString();
            txtBox.Attributes["mealSignature"] = this.GetMealSignature(meal);
        }
    }
Example #3
0
        private bool AddMealRecipe(MyBuyListEntities dc, int mealId, int recipeId, int servings)
        {
            try
            {
                MealRecipe mealRecipe = dc.MealRecipes.SingleOrDefault(mr => mr.MealId == mealId && mr.RecipeId == recipeId);
                if (mealRecipe == null)
                {
                    mealRecipe          = new MealRecipe();
                    mealRecipe.MealId   = mealId;
                    mealRecipe.RecipeId = recipeId;
                    mealRecipe.Servings = servings;
                    dc.MealRecipes.Add(mealRecipe);
                    dc.SaveChanges();
                    //dc.MealRecipes.InsertOnSubmit(mealRecipe);
                    //dc.SubmitChanges();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            catch
            {
                return(false);
            }
        }
Example #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                MyBuyList.Shared.Entities.Menu menu = new MyBuyList.Shared.Entities.Menu();

                Meal theMeal = new Meal();
                theMeal.MealTypeId   = 4;
                theMeal.CourseTypeId = 0;
                theMeal.CreatedDate  = DateTime.Now;
                theMeal.ModifiedDate = DateTime.Now;

                Dictionary <int, Recipe> selectedRecipes         = Utils.SelectedRecipes;
                Dictionary <int, int>    selectedRecipesServings = Utils.SelectedRecipesServings;

                menu.MenuName    = string.Format("רשימת קניות מהירה מתאריך {0}, {1}", DateTime.Now.ToShortDateString(), DateTime.Now.ToLongTimeString());
                menu.MenuTypeId  = (int)MenuTypeEnum.QuickMenu;
                menu.UserId      = ((BasePage)this.Page).UserId;
                menu.IsPublic    = false;
                menu.Description = string.Format("רשימת קניות מהירה שהופקה בתאריך {0}, בשעה {1}. כוללת {2} מתכונים", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), (selectedRecipes != null) ? selectedRecipes.Count.ToString() : "0");

                if (selectedRecipes != null && selectedRecipes.Count != 0)
                {
                    foreach (KeyValuePair <int, Recipe> r in selectedRecipes)
                    {
                        MenuRecipe recipe = new MenuRecipe();
                        recipe.RecipeId = r.Key;
                        menu.MenuRecipes.Add(recipe);

                        MealRecipe mealRecipe = new MealRecipe();
                        mealRecipe.RecipeId = r.Key;
                        //mealRecipe.Servings = r.Value.ExpectedServings;
                        mealRecipe.ExpectedServings = r.Value.ExpectedServings;
                        mealRecipe.Servings         = selectedRecipesServings.Keys.Contains(recipe.RecipeId) ? selectedRecipesServings[recipe.RecipeId] : r.Value.Servings;
                        theMeal.MealRecipes.Add(mealRecipe);
                    }
                }

                menu.Meals.Add(theMeal);

                int newMenuId;

                BusinessFacade.Instance.CreateOrUpdateMenu(menu, out newMenuId);

                if (newMenuId != 0)
                {
                    Utils.SelectedRecipes         = null;
                    Utils.SelectedRecipesServings = null;
                    string url = string.Format("~/ShoppingList.aspx?menuId={0}", newMenuId);
                    this.Response.Redirect(url);
                }
            }
        }
        catch (Exception)
        {
        }
    }
Example #5
0
 internal MealRecipe GetMealRecipe(int mealId, int recipeId)
 {
     using (DataContext)
     {
         try
         {
             MealRecipe mealRecipe = DataContext.MealRecipes.Single(mr => mr.MealId == mealId && mr.RecipeId == recipeId);
             return(mealRecipe);
         }
         catch
         {
             return(null);
         }
     }
 }
Example #6
0
    protected void ChangeServings(object sender, CommandEventArgs e)
    {
        int recipeId = Convert.ToInt32(e.CommandArgument);

        MyBuyList.Shared.Entities.Menu menu = CurrentMenu;

        //Recipe recipe1 = BusinessFacade.Instance.GetRecipe(recipeId);

        MenuRecipe menuRecipe = menu.MenuRecipes.SingleOrDefault(x => x.RecipeId == recipeId);

        if (menuRecipe != null)
        {
            MealRecipe mealRecipe = (from p in menu.Meals
                                     join p1 in menuRecipe.Recipe.MealRecipes on p.MealId equals p1.MealId
                                     where p.MenuId == menu.MenuId &&
                                     p1.RecipeId == recipeId && p1.Meal != null
                                     select new MealRecipe
            {
                RecipeId = recipeId,
                Servings = p1.Servings,
                Recipe = menuRecipe.Recipe,
                MealId = p.MealId
            }).SingleOrDefault();

            if (mealRecipe != null)
            {
                switch (e.CommandName)
                {
                case "Increase":
                    mealRecipe.Servings += menuRecipe.Recipe.Servings;
                    break;

                case "Decrease":
                    if (mealRecipe.Servings > menuRecipe.Recipe.Servings)
                    {
                        mealRecipe.Servings -= menuRecipe.Recipe.Servings;
                    }
                    break;
                }

                MealRecipe recipe = menuRecipe.Recipe.MealRecipes.SingleOrDefault(x => x.MealId == mealRecipe.MealId && x.Meal != null);
                if (recipe != null)
                {
                    recipe.Servings = mealRecipe.Servings;
                }
            }
        }
    }
Example #7
0
    protected void dlRecipes_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        MealRecipe mealRecipe       = e.Item.DataItem as MealRecipe;
        HyperLink  hlkRecipeDetails = e.Item.FindControl("hlkRecipeDetails") as HyperLink;
        Label      lblRecipeArrow   = e.Item.FindControl("lblRecipeArrow") as Label;

        if (mealRecipe != null && hlkRecipeDetails != null)
        {
            hlkRecipeDetails.Text         = mealRecipe.Recipe.RecipeName.TrimToMax(21);
            hlkRecipeDetails.NavigateUrl += mealRecipe.RecipeId.ToString();
        }
        else
        {
            lblRecipeArrow.Visible   = false;
            hlkRecipeDetails.Visible = false;
        }
    }
Example #8
0
        internal bool RemoveMealRecipe(int mealId, int recipeId)
        {
            using (DataContext)
            {
                try
                {
                    MealRecipe mealRecipe = DataContext.MealRecipes.Single(mr => mr.MealId == mealId && mr.RecipeId == recipeId);
                    DataContext.MealRecipes.DeleteOnSubmit(mealRecipe);
                    DataContext.SubmitChanges();

                    return(true);
                }
                catch
                {
                    return(false);
                }
            }
        }
Example #9
0
        internal bool SaveMealRecipe(int mealId, int recipeId, int servings)
        {
            using (DataContext)
            {
                try
                {
                    MealRecipe mealRecipe = DataContext.MealRecipes.Single(mr => mr.MealId == mealId && mr.RecipeId == recipeId);
                    mealRecipe.Servings = servings;

                    DataContext.SubmitChanges();
                    return(true);
                }

                catch
                {
                    return(false);
                }
            }
        }
Example #10
0
    protected void txtServings_TextChanged(object sender, EventArgs e)
    {
        MyBuyList.Shared.Entities.Menu menu = this.CurrentMenu;

        TextBox txtServings = sender as TextBox;

        if (txtServings != null)
        {
            int   recipeId        = 0;
            int[] mealIdentifiers = GetMealIdentifiers(txtServings.Attributes["mealSignature"]);
            if (int.TryParse(txtServings.Attributes["recipeId"], out recipeId) && mealIdentifiers != null && mealIdentifiers.Length == 3)
            {
                Meal mealToChange = null;
                // TODO: change all the occurances of this code to "switch", and try to do it with a delegate, that point to different methods
                // according to the menuTypeId. These methods will get a menu object (menuToSave) and a meal object (from menu) or the whole menu object (menu)

                switch (menu.MenuTypeId)
                {
                case (int)MenuTypeEnum.QuickMenu:
                    mealToChange = menu.Meals.SingleOrDefault(me => me.MealTypeId == mealIdentifiers[1]);
                    break;

                case (int)MenuTypeEnum.OneMeal:
                    mealToChange = menu.Meals.SingleOrDefault(me => me.CourseTypeId == mealIdentifiers[2]);
                    break;

                case (int)MenuTypeEnum.Weekly:
                    mealToChange = menu.Meals.SingleOrDefault(me => me.DayIndex == mealIdentifiers[0] && me.MealTypeId == mealIdentifiers[1]);
                    break;
                }

                if (mealToChange != null)
                {
                    MealRecipe recipeToChange = mealToChange.MealRecipes.SingleOrDefault(re => re.RecipeId == recipeId);
                    if (recipeToChange != null)
                    {
                        recipeToChange.Servings = int.Parse(txtServings.Text);
                    }
                }
            }
        }
    }
Example #11
0
    protected void lnkRemove_Click(object sender, EventArgs e)
    {
        MyBuyList.Shared.Entities.Menu menu = this.CurrentMenu;

        LinkButton lnkBtn = sender as LinkButton;

        int recipeId;

        if (lnkBtn != null && int.TryParse(lnkBtn.Attributes["recipeId"], out recipeId))
        {
            foreach (Meal meal in menu.Meals)
            {
                MealRecipe mealRecipeToRemove = meal.MealRecipes.SingleOrDefault(mr => mr.RecipeId == recipeId);
                if (mealRecipeToRemove != null)
                {
                    meal.MealRecipes.Remove(mealRecipeToRemove);
                }
            }

            MenuRecipe menuRecipeToRemove = menu.MenuRecipes.SingleOrDefault(mr => mr.RecipeId == recipeId);

            if (menuRecipeToRemove != null)
            {
                menu.MenuRecipes.Remove(menuRecipeToRemove);
            }

            Dictionary <int, Recipe> selectedRecipes = Utils.SelectedRecipes;
            selectedRecipes.Remove(recipeId);
        }

        CurrentMenu = menu;

        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "setDirty", "setDirty();", true);

        RebindMenuRecipes();
        RebindMealsDetails();
        upSelectedRecipes.Update();
        upMealsDetails.Update();
    }
Example #12
0
    public static object[] SaveServings(int?servings, int mealId, int recipeId)
    {
        string errorMsg = ValidationResources.WrongServingsFieldValue;

        if (servings != null && servings != 0)
        {
            if (BusinessFacade.Instance.SaveMealRecipe(mealId, recipeId, servings.Value))
            {
                return(new object[] { true, null, servings });
            }
            else
            {
                MealRecipe mealRecipe = BusinessFacade.Instance.GetMealRecipe(mealId, recipeId);
                return(new object[] { false, errorMsg, mealRecipe.Servings });
            }
        }
        else
        {
            MealRecipe mealRecipe = BusinessFacade.Instance.GetMealRecipe(mealId, recipeId);
            return(new object[] { false, errorMsg, mealRecipe.Servings });
        }
    }
Example #13
0
        public async Task <Meal> EditMeal(EditMealViewModel model)
        {
            var meal = this.context.Meals.Include(m => m.Location).Include(m => m.FoodyUser).Include(m => m.MealFoodItems).ThenInclude(mfi => mfi.FoodItem)
                       .Include(m => m.MealRecipes).ThenInclude(mr => mr.Recipe)
                       .FirstOrDefault(m => m.Id == model.Id);

            if (meal == null)
            {
                return(null);
            }

            var caloriesChange = false;

            if (model.FoodItems != null)
            {
                foreach (var foodItemViewModel in model.FoodItems)
                {
                    var foodItem = this.context.FoodItems.FirstOrDefault(fi => fi.Name == foodItemViewModel.Name);

                    if (foodItem == null)
                    {
                        continue;
                    }

                    var existingMealFoodItem = meal.MealFoodItems.FirstOrDefault(mfi => mfi.FoodItem.Name == foodItemViewModel.Name);

                    if (foodItemViewModel.AmountInGrams > 0)
                    {
                        if (existingMealFoodItem == null)
                        {
                            var newMealFoodItem = new MealFoodItem
                            {
                                Meal          = meal,
                                FoodItem      = foodItem,
                                AmountInGrams = foodItemViewModel.AmountInGrams
                            };
                            meal.MealFoodItems.Add(newMealFoodItem);
                            caloriesChange = true;
                        }
                        else
                        {
                            if (!existingMealFoodItem.AmountInGrams.Equals(foodItemViewModel.AmountInGrams))
                            {
                                existingMealFoodItem.AmountInGrams = foodItemViewModel.AmountInGrams;
                                caloriesChange = true;
                            }
                        }
                    }
                    else
                    {
                        if (existingMealFoodItem != null)
                        {
                            meal.MealFoodItems.Remove(existingMealFoodItem);
                            caloriesChange = true;
                        }
                    }
                }
            }

            if (model.Recipes != null)
            {
                foreach (var recipeViewModel in model.Recipes)
                {
                    var recipe = this.context.Recipes.FirstOrDefault(r => r.Name == recipeViewModel.Name);

                    if (recipe == null)
                    {
                        continue;
                    }

                    var existingMealRecipe = meal.MealRecipes.FirstOrDefault(mr => mr.Recipe.Name == recipeViewModel.Name);

                    if (recipeViewModel.AmountInGrams > 0)
                    {
                        if (existingMealRecipe == null)
                        {
                            var newMealRecipe = new MealRecipe
                            {
                                Meal          = meal,
                                Recipe        = recipe,
                                AmountInGrams = recipeViewModel.AmountInGrams
                            };
                            meal.MealRecipes.Add(newMealRecipe);
                            caloriesChange = true;
                        }
                        else
                        {
                            if (!existingMealRecipe.AmountInGrams.Equals(recipeViewModel.AmountInGrams))
                            {
                                existingMealRecipe.AmountInGrams = recipeViewModel.AmountInGrams;
                                caloriesChange = true;
                            }
                        }
                    }
                    else
                    {
                        if (existingMealRecipe != null)
                        {
                            meal.MealRecipes.Remove(existingMealRecipe);
                            caloriesChange = true;
                        }
                    }
                }
            }

            meal.Note = model.Note;

            if (meal.Location == null || meal.Location.Name != model.Location)
            {
                meal.Location = this.HandleLocation(model.Location, meal.FoodyUserId);
            }

            meal.TimeOfConsumption = model.TimeOfConsumption;

            context.SaveChanges();

            if (caloriesChange)
            {
                Thread.Sleep(500);
                await this.SetMealCaloriesAsync(meal.Id);
            }

            return(meal);
        }
Example #14
0
    void rptRecipes_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        int menuId     = 0;
        int menuTypeId = 0;

        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            menuId     = ((MenuView)e.Item.DataItem).MenuId;
            menuTypeId = ((MenuView)e.Item.DataItem).MenuTypeId;
            HyperLink lnkRecipe = (HyperLink)e.Item.FindControl("lnkRecipe");
            lnkRecipe.NavigateUrl = ResolveUrl(string.Format("~/MenuDetails.aspx?menuId={0}", menuId.ToString()));

            LinkButton lnkBtn = e.Item.FindControl("btnAddRemoveFromFavorites") as LinkButton;
            if (lnkBtn != null)
            {
                if (((BasePage)this.Page).UserId != -1)
                {
                    lnkBtn.CommandArgument = ((MenuView)e.Item.DataItem).MenuId.ToString();

                    if (((MenuView)e.Item.DataItem).IsInFavorites)
                    {
                        lnkBtn.Text           = "הסר מהמועדפים שלי";
                        lnkBtn.Style["color"] = "Red";
                        lnkBtn.CommandName    = "Remove";
                    }
                    else
                    {
                        lnkBtn.Text           = "הוסף למועדפים שלי";
                        lnkBtn.Style["color"] = "#656565";
                        lnkBtn.CommandName    = "Add";
                    }
                }
                else
                {
                    lnkBtn.Visible = false;
                    Literal lit = (Literal)e.Item.FindControl("seperator");
                    if (lit != null)
                    {
                        lit.Visible = false;
                    }
                }
            }

            HtmlGenericControl divMyFavoritesInfoTag = e.Item.FindControl("myFavoritesInfoTag") as HtmlGenericControl;

            if (((MenuView)e.Item.DataItem).IsInFavorites)
            {
                divMyFavoritesInfoTag.Visible = true;
            }
            else
            {
                divMyFavoritesInfoTag.Visible = false;
            }

            Label lblAllFavorites = e.Item.FindControl("lblAllFavorites") as Label;
            lblAllFavorites.Text = ((MenuView)e.Item.DataItem).NumUserFavorites.ToString();

            Label lbl1 = e.Item.FindControl("lblMealTitle1") as Label;
            Label lbl2 = e.Item.FindControl("lblMealTitle2") as Label;
            Label lbl3 = e.Item.FindControl("lblMealTitle3") as Label;

            DataList dl1 = e.Item.FindControl("dlRecipes1") as DataList;
            DataList dl2 = e.Item.FindControl("dlRecipes2") as DataList;
            DataList dl3 = e.Item.FindControl("dlRecipes3") as DataList;

            Meal[] menuMeals = BusinessFacade.Instance.GetMenuMeals(menuId);

            //present "meals preview" in a different way for each menu type:

            if (menuTypeId == (int)MenuTypeEnum.OneMeal)
            {
                Meal meal1 = menuMeals.SingleOrDefault(me => me.CourseTypeId == 0);
                Meal meal2 = menuMeals.SingleOrDefault(me => me.CourseTypeId == 1);
                Meal meal3 = menuMeals.SingleOrDefault(me => me.CourseTypeId == 3);

                if (lbl1 != null && lbl2 != null && lbl3 != null)
                {
                    lbl1.Text = "מנה ראשונה";
                    lbl2.Text = "מנה עיקרית";
                    lbl3.Text = "קינוח";
                }

                MealRecipe[] tempRecipesList = new MealRecipe[2];

                if (meal1 != null && meal1.MealRecipes.Count > 0)
                {
                    tempRecipesList[0] = meal1.MealRecipes[0];
                    if (meal1.MealRecipes.Count > 1)
                    {
                        tempRecipesList[1] = meal1.MealRecipes[1];
                    }

                    dl1.DataSource = tempRecipesList;
                    dl1.DataBind();
                }
                if (meal2 != null && meal2.MealRecipes.Count > 0)
                {
                    tempRecipesList[0] = meal2.MealRecipes[0];
                    if (meal2.MealRecipes.Count > 1)
                    {
                        tempRecipesList[1] = meal2.MealRecipes[1];
                    }

                    dl2.DataSource = tempRecipesList;
                    dl2.DataBind();
                }
                if (meal3 != null && meal3.MealRecipes.Count > 0)
                {
                    tempRecipesList[0] = meal3.MealRecipes[0];
                    if (meal3.MealRecipes.Count > 1)
                    {
                        tempRecipesList[1] = meal3.MealRecipes[1];
                    }
                    dl3.DataSource = tempRecipesList;
                    dl3.DataBind();
                }
            }
            else if (menuTypeId == (int)MenuTypeEnum.Weekly)
            {
                IEnumerable <Meal> meals1 = menuMeals.Where(mm => mm.DayIndex == 1);
                IEnumerable <Meal> meals2 = menuMeals.Where(mm => mm.DayIndex == 2);
                IEnumerable <Meal> meals3 = menuMeals.Where(mm => mm.DayIndex == 3);

                if (lbl1 != null && lbl2 != null && lbl3 != null)
                {
                    lbl1.Text = "יום ראשון";
                    lbl2.Text = "יום שני";
                    lbl3.Text = "יום שלישי";
                }

                MealRecipe[] tempRecipesList = new MealRecipe[2];

                if (meals1 != null)
                {
                    int i = 0;
                    foreach (Meal meal in meals1)
                    {
                        foreach (MealRecipe mr in meal.MealRecipes)
                        {
                            if (i < 2)
                            {
                                tempRecipesList[i] = mr;
                                i++;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }

                    dl1.DataSource = tempRecipesList;
                    dl1.DataBind();
                }
                if (meals2 != null)
                {
                    int i = 0;
                    foreach (Meal meal in meals2)
                    {
                        foreach (MealRecipe mr in meal.MealRecipes)
                        {
                            if (i < 2)
                            {
                                tempRecipesList[i] = mr;
                                i++;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }

                    dl2.DataSource = tempRecipesList;
                    dl2.DataBind();
                }
                if (meals3 != null)
                {
                    int i = 0;
                    foreach (Meal meal in meals3)
                    {
                        foreach (MealRecipe mr in meal.MealRecipes)
                        {
                            if (i < 2)
                            {
                                tempRecipesList[i] = mr;
                                i++;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }

                    dl3.DataSource = tempRecipesList;
                    dl3.DataBind();
                }
            }
            else if (menuTypeId == (int)MenuTypeEnum.QuickMenu) //only one meal in menu
            {
                Meal meal1 = menuMeals.SingleOrDefault(me => me.MealTypeId == 4);

                if (meal1 != null)
                {
                    MealRecipe[] allRecipesList = new MealRecipe[meal1.MealRecipes.Count];

                    int i = 0;
                    foreach (MealRecipe mr in meal1.MealRecipes)
                    {
                        allRecipesList[i] = mr;
                        i++;
                    }

                    MealRecipe[] tempRecipesList = new MealRecipe[2];

                    if (allRecipesList.Length > 0)
                    {
                        tempRecipesList[0] = allRecipesList[0];

                        if (allRecipesList.Length >= 2)
                        {
                            tempRecipesList[1] = allRecipesList[1];
                        }
                        else
                        {
                            tempRecipesList[1] = null;
                        }

                        dl1.DataSource = tempRecipesList;
                        dl1.DataBind();
                    }

                    if (allRecipesList.Length >= 3)
                    {
                        tempRecipesList[0] = allRecipesList[2];

                        if (allRecipesList.Length >= 4)
                        {
                            tempRecipesList[1] = allRecipesList[3];
                        }
                        else
                        {
                            tempRecipesList[1] = null;
                        }
                        dl2.DataSource = tempRecipesList;
                        dl2.DataBind();
                    }


                    if (allRecipesList.Length >= 5)
                    {
                        tempRecipesList[0] = allRecipesList[4];
                        if (allRecipesList.Length >= 6)
                        {
                            tempRecipesList[1] = allRecipesList[5];
                        }
                        else
                        {
                            tempRecipesList[1] = null;
                        }
                        dl3.DataSource = tempRecipesList;
                        dl3.DataBind();
                    }
                }
            }
        }
    }
Example #15
0
    public static void AddToMenu_DnD(int recipeId, string mealSignature)
    {
        MyBuyList.Shared.Entities.Menu menu = HttpContext.Current.Session["currentMenu"] as MyBuyList.Shared.Entities.Menu;

        Meal meal = null;

        int[] mealIdentifiers = GetMealIdentifiers(mealSignature);

        int dayIndex     = mealIdentifiers[0];
        int mealTypeId   = mealIdentifiers[1];
        int courseTypeId = mealIdentifiers[2];


        if (mealIdentifiers != null && mealIdentifiers.Length == 3)
        {
            if (menu.MenuTypeId == (int)MenuTypeEnum.QuickMenu) //only one meal in the menu
            {
                meal = menu.Meals.SingleOrDefault(me => me.MealTypeId == mealTypeId);
            }
            else if (menu.MenuTypeId == (int)MenuTypeEnum.OneMeal)
            {
                meal = menu.Meals.SingleOrDefault(me => me.CourseTypeId == courseTypeId);
            }
            else
            {
                meal = menu.Meals.SingleOrDefault(me => me.DayIndex == dayIndex && me.MealTypeId == mealTypeId);
            }

            if (meal == null)
            {
                meal              = new Meal();
                meal.MealId       = 0;
                meal.CourseTypeId = courseTypeId;
                meal.DayIndex     = dayIndex;
                meal.MealTypeId   = mealTypeId;
                meal.CreatedDate  = DateTime.Now;
                meal.ModifiedDate = DateTime.Now;

                menu.Meals.Add(meal);
            }

            //Page page = HttpContext.Current.Handler as Page;
        }

        MealRecipe mealRecipe = new MealRecipe();

        MenuRecipe menuRec = menu.MenuRecipes.SingleOrDefault(mr => mr.RecipeId == recipeId);

        if (menuRec != null)
        {
            mealRecipe.Recipe           = menuRec.Recipe;
            mealRecipe.Servings         = menuRec.Recipe.Servings;
            mealRecipe.ExpectedServings = menuRec.Recipe.ExpectedServings;
        }

        MealRecipe sameMealRecipe = meal.MealRecipes.SingleOrDefault(smr => smr.RecipeId == mealRecipe.RecipeId);

        if (sameMealRecipe == null)
        {
            meal.MealRecipes.Add(mealRecipe);
        }

        HttpContext.Current.Session["currentMenu"] = menu;
    }
Example #16
0
    //note: the "detour" on the way to this method (through a JS function that clicks a hidden button) is neccessary because if this method
    //is called directly from within the "poping" panel, it forces "full" postback for some reason. In this way it is avoided, and selection
    //flow seems "smoother".
    protected void btnTmpOK_Click(object sender, EventArgs e)
    {
        MyBuyList.Shared.Entities.Menu menu = CurrentMenu;

        //get relevant meal, or create it if it doesn't exist.
        Meal meal;
        int? dayIndex = null, courseTypeId = null;
        int  mealTypeId;

        switch ((MenuTypeEnum)menu.MenuTypeId)
        {
        case MenuTypeEnum.QuickMenu:
            mealTypeId   = 4;
            courseTypeId = 0;

            meal = menu.Meals.SingleOrDefault(me => me.MealTypeId == mealTypeId);
            break;

        case MenuTypeEnum.OneMeal:
            courseTypeId = int.Parse(ddlChooseCourse.SelectedItem.Value);
            if (courseTypeId == -1)
            {
                return;
            }

            mealTypeId = 4;

            meal = menu.Meals.SingleOrDefault(me => me.CourseTypeId == courseTypeId);
            break;

        default:
            dayIndex   = int.Parse(ddlChooseDay.SelectedItem.Value);
            mealTypeId = int.Parse(ddlChooseMeal.SelectedItem.Value);
            if (dayIndex == 0 || mealTypeId == 0)
            {
                return;
            }

            meal = menu.Meals.SingleOrDefault(me => me.DayIndex == dayIndex && me.MealTypeId == mealTypeId);
            break;
        }

        if (meal == null)
        {
            meal = new Meal
            {
                MealId       = 0,
                CourseTypeId = courseTypeId,
                DayIndex     = dayIndex,
                MealTypeId   = mealTypeId,
                CreatedDate  = DateTime.Now,
                ModifiedDate = DateTime.Now
            };

            menu.Meals.Add(meal);
        }

        //get recipe id, create MealRecipe, and add to MealRecipes of the current / new meal.
        int recipeId;
        int servingsNum;

        bool succeeded = int.TryParse(hfRecipeId.Value, out recipeId);

        if (succeeded)
        {
            MealRecipe mealRecipe = new MealRecipe();

            MenuRecipe menuRec = menu.MenuRecipes.SingleOrDefault(mr => mr.RecipeId == recipeId);
            if (menuRec != null)
            {
                mealRecipe.Recipe = menuRec.Recipe;

                int  expectedServings;
                bool tryParse = int.TryParse(hfExpectedServings.Value, out expectedServings);
                if (tryParse)
                {
                    mealRecipe.ExpectedServings     = expectedServings;
                    menuRec.Recipe.ExpectedServings = expectedServings;
                }
            }

            MealRecipe sameMealRecipe = meal.MealRecipes.SingleOrDefault(smr => smr.RecipeId == mealRecipe.RecipeId);
            if (sameMealRecipe == null)
            {
                meal.MealRecipes.Add(mealRecipe);
            }
        }


        //save menu changes and display changed menu
        CurrentMenu = menu;

        RebindMealsDetails();
        upMealsDetails.Update();
        RebindMenuRecipes();
        upSelectedRecipes.Update();
    }
Example #17
0
    protected void removeFromMeal_Click(object sender, EventArgs e)
    {
        MyBuyList.Shared.Entities.Menu menu = this.CurrentMenu;

        LinkButton lnkBtn = sender as LinkButton;

        if (lnkBtn != null)
        {
            string mealSignature = lnkBtn.Attributes["mealSignature"];
            int    recipeId;

            if (!string.IsNullOrEmpty(mealSignature) && int.TryParse(lnkBtn.Attributes["recipeId"], out recipeId))
            {
                int[] mealIdentifiers = GetMealIdentifiers(mealSignature);

                Meal currentMeal = null;              //no mealId at this stage. meal is identified by day / meal type / course type.

                switch (menu.MenuTypeId)
                {
                case (int)MenuTypeEnum.QuickMenu:
                    currentMeal = menu.Meals.SingleOrDefault(me => me.MealTypeId == mealIdentifiers[1]);
                    break;

                case (int)MenuTypeEnum.OneMeal:
                    currentMeal = menu.Meals.SingleOrDefault(me => me.CourseTypeId == mealIdentifiers[2]);
                    break;

                case (int)MenuTypeEnum.Weekly:
                    currentMeal = menu.Meals.SingleOrDefault(me => me.DayIndex == mealIdentifiers[0] && me.MealTypeId == mealIdentifiers[1]);
                    break;
                }

                //if (menu.MenuTypeId == (int)MenuTypeEnum.QuickMenu) //only one meal in the menu
                //{
                //    currentMeal = menu.Meals.SingleOrDefault(me => me.MealTypeId == mealIdentifiers[1]);
                //}
                //if (menu.MenuTypeId == (int)MenuTypeEnum.OneMeal)
                //{
                //    currentMeal = menu.Meals.SingleOrDefault(me => me.CourseTypeId == mealIdentifiers[2]);
                //}
                //else
                //{
                //    currentMeal = menu.Meals.SingleOrDefault(me => me.DayIndex == mealIdentifiers[0] && me.MealTypeId == mealIdentifiers[1]);
                //}

                if (currentMeal != null)
                {
                    MealRecipe recipe = currentMeal.MealRecipes.SingleOrDefault(mr => mr.RecipeId == recipeId);
                    if (recipe != null)
                    {
                        currentMeal.MealRecipes.Remove(recipe);
                        //if (currentMeal.MealRecipes.Count == 0)
                        //{
                        //    menu.Meals.Remove(currentMeal);
                        //}
                    }
                }

                this.CurrentMenu = menu;

                RebindMealsDetails();
                this.upMealsDetails.Update();
                this.RebindMenuRecipes();
                this.upSelectedRecipes.Update();
            }
        }
    }
Example #18
0
    protected void EditMenu(int menuId)
    {
        try
        {
            titleImg.ImageUrl = "~/Images/Header_EditMenu.png";

            MyBuyList.Shared.Entities.Menu menu = BusinessFacade.Instance.GetMenuEx(menuId);

            if (menu != null)
            {
                if ((((BasePage)Page).UserType != 1) && (menu.UserId != ((BasePage)Page).UserId) && !(menu.IsPublic) || menu.IsDeleted)
                {
                    AppEnv.MoveToDefaultPage();
                }

                Dictionary <int, Recipe> selectedRecipes = Utils.SelectedRecipes;

                foreach (MenuRecipe mr in menu.MenuRecipes)
                {
                    selectedRecipes.Add(mr.RecipeId, mr.Recipe);
                }

                if (selectedRecipes != null && selectedRecipes.Count != 0)
                {
                    foreach (KeyValuePair <int, Recipe> r in selectedRecipes)
                    {
                        MenuRecipe menuRecipe = new MenuRecipe {
                            RecipeId = r.Key, Recipe = r.Value, Menu = CurrentMenu
                        };

                        bool containsRecipe = false;
                        foreach (MenuRecipe mr in menu.MenuRecipes)
                        {
                            if (mr.RecipeId == r.Key)
                            {
                                containsRecipe   = true;
                                r.Value.Servings = mr.Recipe.Servings;

                                MealRecipe mealRecipe = (from p in menu.Meals
                                                         join p1 in mr.Recipe.MealRecipes on p.MealId equals p1.MealId
                                                         where p.MenuId == menu.MenuId &&
                                                         p1.RecipeId == r.Key
                                                         select new MealRecipe
                                {
                                    RecipeId = r.Key,
                                    Servings = p1.Servings,
                                    Recipe = r.Value,
                                    MealId = p.MealId
                                }).SingleOrDefault();

                                if (mealRecipe != null)
                                {
                                    r.Value.ExpectedServings   = mealRecipe.Servings;
                                    mr.Recipe.ExpectedServings = mealRecipe.Servings;
                                }
                            }
                        }
                        if (!containsRecipe)
                        {
                            menu.MenuRecipes.Add(menuRecipe);
                        }
                    }
                }


                bool isOneMeal = (menu.MenuTypeId == (int)MenuTypeEnum.OneMeal || menu.MenuTypeId == (int)MenuTypeEnum.QuickMenu);

                rbnCategoryOneMeal.Enabled = isOneMeal;
                rbnCategoryWeekly.Enabled  = !isOneMeal;


                CurrentMenu = menu;

                RebindMenuRecipes();

                RebindMenuDetails();

                BindMenuCategories();
            }
            else
            {
                AppEnv.MoveToDefaultPage();
            }
        }
        catch (Exception)
        {
        }
    }
Example #19
0
        public async Task <Meal> AddMeal(AddMealBindingModel model, string username)
        {
            var user = this.context.Users.FirstOrDefault(u => u.UserName == username);

            if (user == null)
            {
                return(null);
            }

            Location location = null;

            if (!string.IsNullOrEmpty(model.Location))
            {
                location = this.HandleLocation(model.Location, user.Id);
            }

            var mealFoodItems = new List <MealFoodItem>();
            var mealRecipes   = new List <MealRecipe>();

            if (model.FoodItems != null)
            {
                foreach (var foodItemBindingModel in model.FoodItems)
                {
                    var foodItem = this.context.FoodItems.FirstOrDefault(fi => fi.Name == foodItemBindingModel.Name);
                    if (foodItem != null && foodItemBindingModel.AmountInGrams > 0)
                    {
                        var mealFoodItem = new MealFoodItem
                        {
                            FoodItem      = foodItem,
                            AmountInGrams = foodItemBindingModel.AmountInGrams
                        };
                        mealFoodItems.Add(mealFoodItem);
                    }
                }
            }

            if (model.Recipes != null)
            {
                foreach (var recipeBindingModel in model.Recipes)
                {
                    var recipe = this.context.Recipes.FirstOrDefault(r => r.Name == recipeBindingModel.Name);
                    if (recipe != null && recipeBindingModel.AmountInGrams > 0)
                    {
                        var mealRecipe = new MealRecipe
                        {
                            Recipe        = recipe,
                            AmountInGrams = recipeBindingModel.AmountInGrams
                        };
                        mealRecipes.Add(mealRecipe);
                    }
                }
            }

            var meal = new Meal
            {
                FoodyUser         = user,
                Location          = location,
                MealFoodItems     = mealFoodItems,
                MealRecipes       = mealRecipes,
                Note              = model.Note,
                TimeOfConsumption = model.TimeOfConsumption
            };



            this.context.Meals.Add(meal);

            this.context.SaveChanges();

            await this.SetMealCaloriesAsync(meal.Id);

            return(meal);
        }