void BindForm()
        {
            if (defaultMenuSelections.Count == 0)
            {
                defaultMenuSelections = hccProgramDefaultMenu.GetBy(CurrentCalendarId, CurrentProgramId);
            }

            List <DropDownList>       ddls         = new List <DropDownList>();
            List <HtmlGenericControl> divDdls      = new List <HtmlGenericControl>();
            DailyNutrition            totalNutInfo = new DailyNutrition {
                DayNumber = CurrentDay
            };
            List <HtmlGenericControl> divItemContainers;
            string             ddlBorderClass = string.Empty;
            List <hccAllergen> userAllergens;

            userAllergens = hccUserProfileAllergen.GetAllergensBy(CurrentCartItem.UserProfile.UserProfileID, true);

            BindDropDownLists(userAllergens);

            divItemContainers =
                pnlDefaultMenu.Controls.OfType <HtmlGenericControl>().Where(a => a.Attributes["class"] == "divItemContainer").ToList();

            divItemContainers.ForEach(delegate(HtmlGenericControl ctrl)
                                      { divDdls.AddRange(ctrl.Controls.OfType <HtmlGenericControl>().Where(a => a.Attributes["class"] == "divDdl")); });

            divDdls.ForEach(a => ddls.AddRange(a.Controls.OfType <DropDownList>()));

            int dailyDefaultsCount = defaultMenuSelections.Where(a => a.DayNumber == CurrentDay).Count();

            if (dailyDefaultsCount == 0 || dailyDefaultsCount != ddls.Count)
            {
                lblFeedback.Text      += "Not all default values have been created for the selected date and program combination. Select the default items on the Production Management -> Program Default Menus page, and press 'Save' to create the default items.";
                pnlDefaultMenu.Visible = false;
            }
            else
            {
                hccCartItemCalendar cartCalendar = hccCartItemCalendar.GetBy(this.PrimaryKeyIndex, CurrentCalendarId);

                defaultMenuSelections.ForEach(delegate(hccProgramDefaultMenu defaultSelection)
                {
                    try
                    {
                        DropDownList ddl = ddls.Where(a => a.Attributes["day"] == defaultSelection.DayNumber.ToString() &&
                                                      a.Attributes["type"] == defaultSelection.MealTypeID.ToString() &&
                                                      a.Attributes["ord"] == defaultSelection.Ordinal.ToString())
                                           .SingleOrDefault();

                        if (ddl != null)
                        {
                            int menuItemId          = defaultSelection.MenuItemID;
                            string value            = menuItemId.ToString() + "-" + defaultSelection.MenuItemSizeID.ToString();
                            int DefaultMenuExceptID = 0;
                            int cartcalendarid      = 0;
                            // bold face the default selection
                            int defaultIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(value));
                            ddl.Items[(defaultIndex <= -1 ? 0 : defaultIndex)].Attributes["class"] += "bold italic";

                            hccCartDefaultMenuException menuItemExc
                                = hccCartDefaultMenuException.GetBy(defaultSelection.DefaultMenuID, cartCalendar.CartCalendarID);

                            if (menuItemExc != null)
                            {
                                menuItemId          = menuItemExc.MenuItemID;
                                value               = menuItemId.ToString() + "-" + menuItemExc.MenuItemSizeID.ToString();
                                DefaultMenuExceptID = menuItemExc.DefaultMenuExceptID;
                                cartcalendarid      = menuItemExc.CartCalendarID;
                            }

                            ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(value));
                            ddl.Attributes.Add("defMenuId", defaultSelection.DefaultMenuID.ToString());
                            ddl.Attributes.Add("defMenuExceptionId", DefaultMenuExceptID.ToString());
                            ddl.Attributes.Add("defMenuCartCalendarId", cartcalendarid.ToString());
                            ddl.SelectedItem.Attributes["class"] += " bold";

                            HtmlGenericControl divItemContainer = (HtmlGenericControl)ddl.Parent.Parent;
                            HtmlGenericControl divNuts          =
                                divItemContainer.Controls.OfType <HtmlGenericControl>().Where(a => a.Attributes["class"] == "divNuts").SingleOrDefault();
                            HtmlGenericControl divAllrgs =
                                divItemContainer.Controls.OfType <HtmlGenericControl>().Where(a => a.Attributes["class"] == "divAllrgs").SingleOrDefault();
                            HtmlGenericControl divPrefs =
                                divItemContainer.Controls.OfType <HtmlGenericControl>().Where(a => a.Attributes["class"] == "divPrefs").SingleOrDefault();

                            if (menuItemId > 0)
                            {
                                hccMenuItem menuItem = null;

                                if (menuItemExc == null)
                                {
                                    if (defaultSelection.MenuItemID > 0)
                                    {
                                        menuItem = hccMenuItem.GetById(defaultSelection.MenuItemID);
                                    }
                                }
                                else if (menuItemExc.MenuItemID > 0)
                                {
                                    menuItem = hccMenuItem.GetById(menuItemExc.MenuItemID);
                                }

                                if (menuItem != null)
                                {
                                    // nutrition info
                                    if (divNuts != null)
                                    {
                                        string nutInfo = string.Empty;
                                        hccMenuItemNutritionData menuNut = hccMenuItemNutritionData.GetBy(menuItem.MenuItemID);

                                        if (menuNut != null)
                                        {
                                            nutInfo = string.Format("Calories: {0}, Fat: {1}, Protein: {2},  Carbohydrates: {3}, Fiber: {4},Sodium: {5}",
                                                                    menuNut.Calories.ToString("f2"), menuNut.TotalFat.ToString("f2"), menuNut.Protein.ToString("f2"),
                                                                    menuNut.TotalCarbohydrates.ToString("f2"), menuNut.DietaryFiber.ToString("f2"), menuNut.Sodium.ToString("f2"));
                                            divNuts.InnerHtml      = nutInfo;
                                            totalNutInfo.Calories += menuNut.Calories;
                                            totalNutInfo.Carbs    += menuNut.TotalCarbohydrates;
                                            totalNutInfo.Fat      += menuNut.TotalFat;
                                            totalNutInfo.Fiber    += menuNut.DietaryFiber;
                                            totalNutInfo.Protein  += menuNut.Protein;
                                            totalNutInfo.Sodium   += menuNut.Sodium;
                                        }
                                        else
                                        {
                                            nutInfo = string.Format("Calories: {0}, Fat: {1}, Protein: {2},  Carbohydrates: {3}, Fiber: {4},Sodium: {5}", 0, 0, 0, 0, 0, 0);
                                        }

                                        divNuts.InnerText = nutInfo;
                                    }

                                    // allergen displays
                                    List <hccAllergen> selectItemAllergens = new List <hccAllergen>();
                                    string allrgsList   = string.Empty;
                                    allrgsList          = "Allergens: " + menuItem.AllergensList;
                                    selectItemAllergens = menuItem.GetAllergens();

                                    if (divAllrgs != null)
                                    {
                                        divAllrgs.InnerText = allrgsList;
                                    }

                                    List <hccAllergen> matchedAllergens = selectItemAllergens.Intersect(userAllergens).ToList();

                                    if (matchedAllergens.Count > 0)
                                    {
                                        ddl.SelectedItem.Attributes["class"] += " bold";
                                        ddlBorderClass = "redBorder";
                                    }
                                    else
                                    {
                                        if (menuItemExc == null)
                                        {
                                            ddlBorderClass = "greenBorder";
                                        }
                                        else
                                        {
                                            ddlBorderClass = "blueBorder";
                                        }
                                    }

                                    // preferences
                                    List <hccPreference> itemPrefs = menuItem.GetPreferences();

                                    if (itemPrefs.Count > 0 && divPrefs != null)
                                    {
                                        itemPrefs.ForEach(delegate(hccPreference pref)
                                        {
                                            HtmlInputCheckBox chkPref = new HtmlInputCheckBox();
                                            chkPref.Value             = pref.PreferenceID.ToString();
                                            Label lblPref             = new Label();
                                            lblPref.Text = pref.Name;

                                            divPrefs.Controls.Add(chkPref);
                                            divPrefs.Controls.Add(lblPref);

                                            hccCartMenuExPref cartMenuExPref = hccCartMenuExPref.GetById(cartCalendar.CartItemID, defaultSelection.DayNumber);

                                            if (cartMenuExPref != null)
                                            {
                                                if (cartMenuExPref.IsModified)
                                                {
                                                    if (menuItemExc != null)
                                                    {
                                                        hccCartDefaultMenuExPref excPref = hccCartDefaultMenuExPref.GetBy(menuItemExc.DefaultMenuExceptID, pref.PreferenceID);
                                                        if (excPref != null)
                                                        {
                                                            chkPref.Checked = true;
                                                        }
                                                    }
                                                }
                                                //hccCartItem cartItem = hccCartItem.GetById(cartCalendar.CartItemID);
                                                //if (cartItem != null)
                                                //{
                                                //    if (Convert.ToBoolean(cartItem.IsModified))
                                                //    {
                                                //        hccCartDefaultMenuExPref excPref = hccCartDefaultMenuExPref.GetBy(menuItemExc.DefaultMenuExceptID, pref.PreferenceID);
                                                //        if (excPref != null)
                                                //        {
                                                //            chkPref.Checked = true;
                                                //        }
                                                //    }
                                                //    else
                                                //    {
                                                //        hccCartDefaultMenuExPref excPref = hccCartDefaultMenuExPref.GetBy(menuItemExc.DefaultMenuExceptID, pref.PreferenceID);
                                                //        if (excPref != null)
                                                //            chkPref.Checked = true;
                                                //        hccProgramDefaultMenuExPref programmenuexpref = hccProgramDefaultMenuExPref.GetBy(defaultSelection.DefaultMenuID, pref.PreferenceID);
                                                //        if (programmenuexpref != null)
                                                //            chkPref.Checked = true;
                                                //    }
                                                //}
                                            }
                                            else
                                            {
                                                //hccCartItem cartItem = hccCartItem.GetById(cartCalendar.CartItemID);
                                                //if (cartItem != null)
                                                //{
                                                //    if (!Convert.ToBoolean(cartItem.IsModified))
                                                //    {
                                                //        hccProgramDefaultMenuExPref programmenuexpref = hccProgramDefaultMenuExPref.GetBy(defaultSelection.DefaultMenuID, pref.PreferenceID);
                                                //        if (programmenuexpref != null)
                                                //            chkPref.Checked = true;
                                                //    }
                                                //}
                                                hccProgramDefaultMenuExPref programmenuexpref = hccProgramDefaultMenuExPref.GetBy(defaultSelection.DefaultMenuID, pref.PreferenceID);
                                                if (programmenuexpref != null)
                                                {
                                                    chkPref.Checked = true;
                                                }
                                            }
                                        });
                                    }
                                }
                                else
                                {
                                    divNuts.InnerText   = string.Empty;
                                    divPrefs.InnerText  = string.Empty;
                                    divAllrgs.InnerText = string.Empty;
                                }
                                ddl.CssClass = "mealItemDdl " + ddlBorderClass;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                });

                if (totalNutInfo == null)
                {
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Cals##", "0");
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Fats##", "0");
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Ptrns##", "0");
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Carbs##", "0");
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Fbrs##", "0");
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Sod##", "0");
                }
                else
                {
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Cals##", totalNutInfo.Calories.ToString("f2"));
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Fats##", totalNutInfo.Fat.ToString("f2"));
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Ptrns##", totalNutInfo.Protein.ToString("f2"));
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Carbs##", totalNutInfo.Carbs.ToString("f2"));
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Fbrs##", totalNutInfo.Fiber.ToString("f2"));
                    divTotalNutrition.InnerHtml = divTotalNutrition.InnerHtml.Replace("##Sod##", totalNutInfo.Sodium.ToString("f2"));
                }

                divTotalNutrition.Visible = true;
            }
        }
        public XmlDocument GetPreferences()
        {
            try
            {
                if (this.Context.Request.QueryString["mid"] != null &&
                    !string.IsNullOrWhiteSpace(this.Context.Request.QueryString["mid"]))
                {
                    string prefString = string.Empty, nutInfo = string.Empty, allrgsList = string.Empty;
                    int    menuItemId = int.Parse(this.Context.Request.QueryString["mid"]);

                    if (menuItemId > 0)
                    {
                        hccMenuItem menuItem = hccMenuItem.GetById(menuItemId);

                        if (menuItem != null)
                        {
                            // nutrition
                            hccMenuItemNutritionData menuNut = hccMenuItemNutritionData.GetBy(menuItem.MenuItemID);

                            if (menuNut != null)
                            {
                                nutInfo = string.Format("Calories: {0}, Fat: {1}, Protein: {2},  Carbohydrates: {3}, Fiber: {4}, Sodium: {5}",
                                                        menuNut.Calories.ToString("f2"), menuNut.TotalFat.ToString("f2"), menuNut.Protein.ToString("f2"),
                                                        menuNut.TotalCarbohydrates.ToString("f2"), menuNut.DietaryFiber.ToString("f2"), menuNut.Sodium.ToString("f2"));
                            }
                            else
                            {
                                nutInfo = string.Format("Calories: {0}, Fat: {1}, Protein: {2},  Carbohydrates: {3}, Fiber: {4}, Sodium: {5}", 0, 0, 0, 0, 0, 0);
                            }

                            // allergens
                            allrgsList = "Allergens: " + menuItem.AllergensList;

                            // prefs
                            List <hccPreference> prefs = menuItem.GetPreferences();

                            prefs.ForEach(delegate(hccPreference pref)
                            {
                                prefString += pref.PreferenceID.ToString() + ":" + pref.Name + "|";
                            });

                            prefString = prefString.TrimEnd('|');
                        }

                        if (prefString.Trim() == "")
                        {
                            prefString = "None";
                        }

                        string      retVal = string.Format("<menuData><nutrition>{0}</nutrition><allergens>{1}</allergens><prefs>{2}</prefs></menuData>", nutInfo, allrgsList, prefString);
                        XmlDocument xml    = new XmlDocument();
                        xml.LoadXml(retVal);

                        return(xml);
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    return(null);
                }
            }
            catch { throw; }
        }
        public string UpdateMenus(List <DefaultMenu> hccProgramDefaultMenus)
        {
            try
            {
                hccProgramDefaultMenus.ForEach(delegate(DefaultMenu defaultMenuItem)
                {
                    hccProgramDefaultMenu origMenuItem = hccProgramDefaultMenu.GetById(defaultMenuItem.DefaultMenuID);

                    if (origMenuItem == null)
                    {
                        origMenuItem = hccProgramDefaultMenu.GetBy(defaultMenuItem.CalendarID, defaultMenuItem.ProgramID, defaultMenuItem.DayNumber, defaultMenuItem.MealTypeID, defaultMenuItem.Ordinal);
                    }

                    if (origMenuItem != null)
                    {
                        origMenuItem.CalendarID     = defaultMenuItem.CalendarID;
                        origMenuItem.DayNumber      = defaultMenuItem.DayNumber;
                        origMenuItem.MealTypeID     = defaultMenuItem.MealTypeID;
                        origMenuItem.MenuItemID     = defaultMenuItem.MenuItemID;
                        origMenuItem.MenuItemSizeID = defaultMenuItem.MenuItemSizeID;
                        origMenuItem.Ordinal        = defaultMenuItem.Ordinal;
                        origMenuItem.ProgramID      = defaultMenuItem.ProgramID;
                        origMenuItem.Save();
                    }
                    else
                    {
                        hccProgramDefaultMenu hccprogramdefaultmenuitem = new hccProgramDefaultMenu
                        {
                            CalendarID     = defaultMenuItem.CalendarID,
                            DayNumber      = defaultMenuItem.DayNumber,
                            MealTypeID     = defaultMenuItem.MealTypeID,
                            MenuItemID     = defaultMenuItem.MenuItemID,
                            MenuItemSizeID = defaultMenuItem.MenuItemSizeID,
                            Ordinal        = defaultMenuItem.Ordinal,
                            ProgramID      = defaultMenuItem.ProgramID
                        };
                        hccprogramdefaultmenuitem.Save();
                    }
                });

                decimal cals1 = 0.0m, fat1 = 0.0m, prtn1 = 0.0m, carb1 = 0.0m, fbr1 = 0.0m, sod1 = 0.0m;
                decimal cals2 = 0.0m, fat2 = 0.0m, prtn2 = 0.0m, carb2 = 0.0m, fbr2 = 0.0m, sod2 = 0.0m;
                decimal cals3 = 0.0m, fat3 = 0.0m, prtn3 = 0.0m, carb3 = 0.0m, fbr3 = 0.0m, sod3 = 0.0m;
                decimal cals4 = 0.0m, fat4 = 0.0m, prtn4 = 0.0m, carb4 = 0.0m, fbr4 = 0.0m, sod4 = 0.0m;
                decimal cals5 = 0.0m, fat5 = 0.0m, prtn5 = 0.0m, carb5 = 0.0m, fbr5 = 0.0m, sod5 = 0.0m;
                decimal cals6 = 0.0m, fat6 = 0.0m, prtn6 = 0.0m, carb6 = 0.0m, fbr6 = 0.0m, sod6 = 0.0m;
                decimal cals7 = 0.0m, fat7 = 0.0m, prtn7 = 0.0m, carb7 = 0.0m, fbr7 = 0.0m, sod7 = 0.0m;

                hccProgramDefaultMenus.ForEach(delegate(DefaultMenu defaultMenuItem)
                {
                    hccMenuItemNutritionData nutrition = hccMenuItemNutritionData.GetBy(defaultMenuItem.MenuItemID);

                    if (nutrition != null)
                    {
                        if (defaultMenuItem.DayNumber == 1)
                        {
                            cals1 = cals1 + nutrition.Calories;
                            fat1  = fat1 + nutrition.TotalFat;
                            prtn1 = prtn1 + nutrition.Protein;
                            carb1 = carb1 + nutrition.TotalCarbohydrates;
                            fbr1  = fbr1 + nutrition.DietaryFiber;
                            sod1  = sod1 + nutrition.Sodium;
                        }

                        if (defaultMenuItem.DayNumber == 2)
                        {
                            cals2 = cals2 + nutrition.Calories;
                            fat2  = fat2 + nutrition.TotalFat;
                            prtn2 = prtn2 + nutrition.Protein;
                            carb2 = carb2 + nutrition.TotalCarbohydrates;
                            fbr2  = fbr2 + nutrition.DietaryFiber;
                            sod2  = sod2 + nutrition.Sodium;
                        }

                        if (defaultMenuItem.DayNumber == 3)
                        {
                            cals3 = cals3 + nutrition.Calories;
                            fat3  = fat3 + nutrition.TotalFat;
                            prtn3 = prtn3 + nutrition.Protein;
                            carb3 = carb3 + nutrition.TotalCarbohydrates;
                            fbr3  = fbr3 + nutrition.DietaryFiber;
                            sod3  = sod3 + nutrition.Sodium;
                        }

                        if (defaultMenuItem.DayNumber == 4)
                        {
                            cals4 = cals4 + nutrition.Calories;
                            fat4  = fat4 + nutrition.TotalFat;
                            prtn4 = prtn4 + nutrition.Protein;
                            carb4 = carb4 + nutrition.TotalCarbohydrates;
                            fbr4  = fbr4 + nutrition.DietaryFiber;
                            sod4  = sod4 + nutrition.Sodium;
                        }

                        if (defaultMenuItem.DayNumber == 5)
                        {
                            cals5 = cals5 + nutrition.Calories;
                            fat5  = fat5 + nutrition.TotalFat;
                            prtn5 = prtn5 + nutrition.Protein;
                            carb5 = carb5 + nutrition.TotalCarbohydrates;
                            fbr5  = fbr5 + nutrition.DietaryFiber;
                            sod5  = sod5 + nutrition.Sodium;
                        }

                        if (defaultMenuItem.DayNumber == 6)
                        {
                            cals6 = cals6 + nutrition.Calories;
                            fat6  = fat6 + nutrition.TotalFat;
                            prtn6 = prtn6 + nutrition.Protein;
                            carb6 = carb6 + nutrition.TotalCarbohydrates;
                            fbr6  = fbr6 + nutrition.DietaryFiber;
                            sod6  = sod6 + nutrition.Sodium;
                        }

                        if (defaultMenuItem.DayNumber == 7)
                        {
                            cals7 = cals7 + nutrition.Calories;
                            fat7  = fat7 + nutrition.TotalFat;
                            prtn7 = prtn7 + nutrition.Protein;
                            carb7 = carb7 + nutrition.TotalCarbohydrates;
                            fbr7  = fbr7 + nutrition.DietaryFiber;
                            sod7  = sod7 + nutrition.Sodium;
                        }
                    }
                });

                //get preferences
                hccProgramDefaultMenus.ForEach(delegate(DefaultMenu defaultMenuItem)
                {
                    List <hccProgramDefaultMenuExPref> prefs = hccProgramDefaultMenuExPref.GetBy(defaultMenuItem.DefaultMenuID);
                    prefs.ForEach(a => a.Delete());
                    if (defaultMenuItem.preferenceID.Length > 0 && defaultMenuItem.DefaultMenuID != 0)
                    {
                        foreach (var preferenceid in defaultMenuItem.preferenceID)
                        {
                            var ProgramDefaultMenuExPref = hccProgramDefaultMenuExPref.GetBy(defaultMenuItem.DefaultMenuID, preferenceid);
                            if (ProgramDefaultMenuExPref == null)
                            {
                                hccProgramDefaultMenuExPref exPref = new hccProgramDefaultMenuExPref
                                {
                                    PreferenceId  = preferenceid,
                                    DefaultMenuId = defaultMenuItem.DefaultMenuID
                                };
                                exPref.Save();
                            }
                        }
                    }
                });


                string nutri = cals1.ToString("f2") + "|" + fat1.ToString("f2") + "|" + prtn1.ToString("f2") + "|" + carb1.ToString("f2") + "|" + fbr1.ToString("f2") + "|" + sod1.ToString("f2");
                nutri += "|" + cals2.ToString("f2") + "|" + fat2.ToString("f2") + "|" + prtn2.ToString("f2") + "|" + carb2.ToString("f2") + "|" + fbr2.ToString("f2") + "|" + sod2.ToString("f2");
                nutri += "|" + cals3.ToString("f2") + "|" + fat3.ToString("f2") + "|" + prtn3.ToString("f2") + "|" + carb3.ToString("f2") + "|" + fbr3.ToString("f2") + "|" + sod3.ToString("f2");
                nutri += "|" + cals4.ToString() + "|" + fat4.ToString() + "|" + prtn4.ToString() + "|" + carb4.ToString() + "|" + fbr4.ToString() + "|" + sod4.ToString();
                nutri += "|" + cals5.ToString() + "|" + fat5.ToString() + "|" + prtn5.ToString() + "|" + carb5.ToString() + "|" + fbr5.ToString() + "|" + sod5.ToString();
                nutri += "|" + cals6.ToString() + "|" + fat6.ToString() + "|" + prtn6.ToString() + "|" + carb6.ToString() + "|" + fbr6.ToString() + "|" + sod6.ToString();
                nutri += "|" + cals7.ToString() + "|" + fat7.ToString() + "|" + prtn7.ToString() + "|" + carb7.ToString() + "|" + fbr7.ToString() + "|" + sod7.ToString();

                return(nutri);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #4
0
        protected override void LoadForm()
        {
            try
            {
                BindddlMealType();

                CurrentMenuItem = hccMenuItem.GetById(this.PrimaryKeyIndex);

                DisplayMenuItemOptions(CurrentMenuItem);

                if (CurrentMenuItem == null)
                {
                    CurrentMenuItem = new hccMenuItem();
                }

                if (CurrentMenuItem.IsRetired)
                {
                    btnDeactivate.Text = "Reactivate";
                }
                else
                {
                    btnDeactivate.Text = "Retire";
                }

                txtMenuItemName.Text     = CurrentMenuItem.Name;
                txtDescription.Text      = CurrentMenuItem.Description;
                chkIsTaxEligible.Checked = CurrentMenuItem.IsTaxEligible;

                if (CurrentMenuItem.ImageUrl != null)
                {
                    MenuItemImageName.Value = CurrentMenuItem.ImageUrl.Split('/')[2];
                }
                else
                {
                    MenuItemImageName.Value = string.Empty;
                }
                chkUsePriceChild.Checked   = CurrentMenuItem.UseCostChild;
                txtCostChild.Text          = CurrentMenuItem.CostChild.ToString("f2");
                chkUsePriceSmall.Checked   = CurrentMenuItem.UseCostSmall;
                txtCostSmall.Text          = CurrentMenuItem.CostSmall.ToString("f2");
                chkUsePriceRegular.Checked = CurrentMenuItem.UseCostRegular;
                txtCostRegular.Text        = CurrentMenuItem.CostRegular.ToString("f2");
                chkUsePriceLarge.Checked   = CurrentMenuItem.UseCostLarge;
                txtCostLarge.Text          = CurrentMenuItem.CostLarge.ToString("f2");

                ddlMealType.SelectedIndex = ddlMealType.Items.IndexOf(ddlMealType.Items.FindByValue(((int)CurrentMenuItem.MealType).ToString()));

                hccMenuItemNutritionData nutData = hccMenuItemNutritionData.GetBy(CurrentMenuItem.MenuItemID);
                if (nutData != null)
                {
                    txtCalories.Text           = nutData.Calories.ToString();
                    txtDietaryFiber.Text       = nutData.DietaryFiber.ToString();
                    txtProtein.Text            = nutData.Protein.ToString();
                    txtTotalCarbohydrates.Text = nutData.TotalCarbohydrates.ToString();
                    txtTotalFat.Text           = nutData.TotalFat.ToString();
                    txtSodium.Text             = nutData.Sodium.ToString();
                }

                BindlstIngredients();
                BindlstPreferences();
                BindgvwItemUsage();

                SetButtons();
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #5
0
        protected override void SaveForm()
        {
            try
            {
                if (CurrentMenuItem == null)
                {
                    CurrentMenuItem = hccMenuItem.GetById(this.PrimaryKeyIndex);
                }

                hccMenuItemNutritionData nutData = null;

                if (CurrentMenuItem == null)
                {
                    CurrentMenuItem = new hccMenuItem();
                }
                else
                {
                    nutData = hccMenuItemNutritionData.GetBy(CurrentMenuItem.MenuItemID);
                }

                if (nutData == null)
                {
                    nutData = new hccMenuItemNutritionData();
                }

                CurrentMenuItem.UseCostChild = chkUsePriceChild.Checked;
                CurrentMenuItem.CostChild    = string.IsNullOrWhiteSpace(txtCostChild.Text.Trim()) ?
                                               0.00m : decimal.Parse(txtCostChild.Text.Trim());

                CurrentMenuItem.UseCostSmall = chkUsePriceSmall.Checked;
                CurrentMenuItem.CostSmall    = string.IsNullOrWhiteSpace(txtCostSmall.Text.Trim()) ?
                                               0.00m : decimal.Parse(txtCostSmall.Text.Trim());

                CurrentMenuItem.UseCostRegular = chkUsePriceRegular.Checked;
                CurrentMenuItem.CostRegular    = string.IsNullOrWhiteSpace(txtCostRegular.Text.Trim()) ?
                                                 0.00m : decimal.Parse(txtCostRegular.Text.Trim());

                CurrentMenuItem.UseCostLarge = chkUsePriceLarge.Checked;
                CurrentMenuItem.CostLarge    = string.IsNullOrWhiteSpace(txtCostLarge.Text.Trim()) ?
                                               0.00m : decimal.Parse(txtCostLarge.Text.Trim());

                CurrentMenuItem.Description   = string.IsNullOrWhiteSpace(txtDescription.Text.Trim()) ? null : txtDescription.Text.Trim();
                CurrentMenuItem.Name          = txtMenuItemName.Text.Trim();
                CurrentMenuItem.IsTaxEligible = chkIsTaxEligible.Checked;
                CurrentMenuItem.MealTypeID    = int.Parse(ddlMealType.SelectedValue);

                //Check if File is available.
                if (Request.Files.Count > 0)
                {
                    if (MenuItemImage.Value != "")
                    {
                        //Save the File.
                        string filename     = "";
                        string imagesfolder = "/Images";
                        String path         = HttpContext.Current.Server.MapPath("~" + imagesfolder); //Path
                        //if (CurrentMenuItem.Name.Contains("&"))
                        //{
                        //    filename = CurrentMenuItem.Name.Replace('&', ' ');
                        //}
                        //else
                        //if (CurrentMenuItem.Name.Contains(","))
                        //{
                        //    filename = CurrentMenuItem.Name.Replace(',', ' ');
                        //}
                        //else
                        //{
                        //    filename = CurrentMenuItem.Name;
                        //}
                        filename = RemoveSpecialChars(CurrentMenuItem.Name);
                        string fileName = filename + "_" + CurrentMenuItem.MenuItemID + ".png";
                        string filePath = path + "/" + fileName;
                        //Check if directory exist
                        if (!System.IO.Directory.Exists(path))
                        {
                            System.IO.Directory.CreateDirectory(path); //Create directory if it doesn't exist
                        }
                        MenuItemImage.PostedFile.SaveAs(filePath);
                        CurrentMenuItem.ImageUrl = imagesfolder + "/" + fileName;
                    }
                }

                decimal temp;

                if (decimal.TryParse(txtCalories.Text.Trim(), out temp))
                {
                    nutData.Calories = temp;
                }

                if (decimal.TryParse(txtDietaryFiber.Text.Trim(), out temp))
                {
                    nutData.DietaryFiber = temp;
                }

                if (decimal.TryParse(txtProtein.Text.Trim(), out temp))
                {
                    nutData.Protein = temp;
                }

                if (decimal.TryParse(txtTotalCarbohydrates.Text.Trim(), out temp))
                {
                    nutData.TotalCarbohydrates = temp;
                }

                if (decimal.TryParse(txtTotalFat.Text.Trim(), out temp))
                {
                    nutData.TotalFat = temp;
                }

                if (decimal.TryParse(txtSodium.Text.Trim(), out temp))
                {
                    nutData.Sodium = temp;
                }

                List <int> currentIngredients  = CurrentMenuItem.GetIngredients().Select(a => a.IngredientID).ToList();
                List <int> selectedIngredients = lstIngredients.GetSelectedKeys();
                List <int> delIngredients      = currentIngredients.Except(selectedIngredients).ToList();

                SetMenuItemOptions();
                CurrentMenuItem.Save();
                nutData.MenuItemID = CurrentMenuItem.MenuItemID;
                nutData.Save();

                selectedIngredients.ForEach(delegate(int ingredientId)
                {
                    hccMenuItemIngredient sel = hccMenuItemIngredient.GetBy(ingredientId, CurrentMenuItem.MenuItemID);

                    if (sel == null)
                    {
                        sel = new hccMenuItemIngredient {
                            IngredientID = ingredientId, MenuItemID = CurrentMenuItem.MenuItemID,
                        }
                    }
                    ;

                    sel.Save();
                });

                delIngredients.ForEach(delegate(int ingredientId)
                {
                    hccMenuItemIngredient del = hccMenuItemIngredient.GetBy(ingredientId, CurrentMenuItem.MenuItemID);
                    if (del != null)
                    {
                        del.Delete();
                    }
                });

                List <int> currentPrefs  = CurrentMenuItem.GetPreferences().Select(a => a.PreferenceID).ToList();
                List <int> selectedPrefs = lstPreferences.GetSelectedKeys();
                List <int> delPrefs      = currentPrefs.Except(selectedPrefs).ToList();

                selectedPrefs.ForEach(delegate(int prefId)
                {
                    hccMenuItemPreference sel = hccMenuItemPreference.GetBy(prefId, CurrentMenuItem.MenuItemID);

                    if (sel == null)
                    {
                        sel = new hccMenuItemPreference {
                            PreferenceID = prefId, MenuItemID = CurrentMenuItem.MenuItemID
                        }
                    }
                    ;

                    sel.Save();
                });

                delPrefs.ForEach(delegate(int prefId)
                {
                    hccMenuItemPreference del = hccMenuItemPreference.GetBy(prefId, CurrentMenuItem.MenuItemID);
                    if (del != null)
                    {
                        del.Delete();
                    }
                });

                //List<int> currentChildItems = CurrentMenuItem.GetChildren().Select(a => a.MenuItemID).ToList();
                //List<int> selectedChildItems = lstMenuItems.GetSelectedKeys();
                //List<int> delChildItems = currentChildItems.Except(selectedChildItems).ToList();

                //selectedChildItems.ForEach(a => CurrentMenuItem.AddMenuItem(a, 1));
                //delChildItems.ForEach(delegate(int itemId)
                //{
                //    hccMenuItem_MenuItems del = hccMenuItem_MenuItems.GetBy(CurrentMenuItem.MenuItemID, itemId);
                //    if (del != null) del.Delete();
                //});

                //CurrentMenuItem.Save();

                OnSaved(new ControlSavedEventArgs(CurrentMenuItem.MenuItemID));
                Response.Redirect("~/WebModules/ShoppingCart/Admin/ItemManager.aspx", false);
            }
            catch (Exception)
            {
                throw;
            }
        }
        protected override void LoadForm()
        {
            try
            {
                List <hccProgramDefaultMenu> defaultMenuSelections = hccProgramDefaultMenu.GetBy(CurrentCalendarId, CurrentProgramId);
                List <DropDownList>          ddls     = new List <DropDownList>();
                List <CheckBoxList>          chklists = new List <CheckBoxList>();

                List <DailyNutrition>     dailyNuts   = new List <DailyNutrition>();
                List <HtmlGenericControl> nutDisplays = new List <HtmlGenericControl>();

                BindDropDownLists();

                List <Panel> pnls = pnlDefaultMenu.Controls.OfType <Panel>().ToList();
                int          i    = 1;
                pnls.ForEach(delegate(Panel pnl)
                {
                    //foreach(var control in pnl.Controls.Count)
                    ddls.AddRange(pnl.Controls.OfType <DropDownList>());
                    chklists.AddRange(pnl.Controls.OfType <CheckBoxList>());
                    //pnl.FindControl("mealItemDdl");
                    string divName = "divNutrition" + i.ToString();
                    nutDisplays.Add((HtmlGenericControl)pnl.FindControl(divName));
                    i++;
                });

                if (defaultMenuSelections.Count != ddls.Count)
                {
                    lblFeedback.Text += "No default values have been saved for the selected date and program combination. Select the default items and press 'Save' to set the default items.";
                }

                defaultMenuSelections.ForEach(delegate(hccProgramDefaultMenu selection)
                {
                    if (dailyNuts.Where(a => a.DayNumber == selection.DayNumber).SingleOrDefault() == null)
                    {
                        dailyNuts.Add(new DailyNutrition {
                            DayNumber = selection.DayNumber
                        });
                    }

                    DailyNutrition dailyNut          = dailyNuts.Where(a => a.DayNumber == selection.DayNumber).Single();
                    hccMenuItemNutritionData menuNut = hccMenuItemNutritionData.GetBy(selection.MenuItemID);

                    if (menuNut != null)
                    {
                        dailyNut.Calories += menuNut.Calories;
                        dailyNut.Carbs    += menuNut.TotalCarbohydrates;
                        dailyNut.Fat      += menuNut.TotalFat;
                        dailyNut.Fiber    += menuNut.DietaryFiber;
                        dailyNut.Protein  += menuNut.Protein;
                        dailyNut.Sodium   += menuNut.Sodium;
                    }

                    DropDownList ddl = ddls.Where(a => a.Attributes["day"] == selection.DayNumber.ToString() &&
                                                  a.Attributes["type"] == selection.MealTypeID.ToString() &&
                                                  a.Attributes["ord"] == selection.Ordinal.ToString())
                                       .SingleOrDefault();

                    CheckBoxList chklist = chklists.Where(a => a.Attributes["day"] == selection.DayNumber.ToString() &&
                                                          a.Attributes["type"] == selection.MealTypeID.ToString() &&
                                                          a.Attributes["ord"] == selection.Ordinal.ToString())
                                           .SingleOrDefault();

                    if (ddl != null)
                    {
                        string value = selection.MenuItemID.ToString() + "-" + selection.MenuItemSizeID.ToString();

                        ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(value));
                        ddl.Attributes.Add("defMenuId", selection.DefaultMenuID.ToString());
                    }
                    if (chklist != null)
                    {
                        List <ListItem> listItem = new List <ListItem>();
                        hccMenuItem hccMenuItem  = new hccMenuItem
                        {
                            MenuItemID = Convert.ToInt32(selection.MenuItemID)
                        };
                        List <hccPreference> itemPrefs = hccMenuItem.GetPreferences();
                        if (itemPrefs.Count > 0 && ddl.SelectedIndex > 0)
                        {
                            itemPrefs.ForEach(delegate(hccPreference pref)
                            {
                                ListItem chkPref = new ListItem();
                                chkPref.Value    = pref.PreferenceID.ToString();
                                chkPref.Text     = pref.Name;
                                chkPref.Attributes.Add("prefID", pref.PreferenceID.ToString());
                                hccProgramDefaultMenuExPref excPref = hccProgramDefaultMenuExPref.GetBy(selection.DefaultMenuID, pref.PreferenceID);
                                if (excPref != null)
                                {
                                    chkPref.Selected = true;
                                }
                                chklist.Items.Add(chkPref);
                            });
                        }
                        else
                        {
                            ListItem li = new ListItem("", "");
                            li.Selected = false;
                            li.Attributes.Add("Style", " max-height: 170px;display: block;overflow - y: auto; width: 100 %;min - height: 170px;display: none;");
                            chklist.Items.Add(li);
                        }
                    }
                });

                nutDisplays.ForEach(delegate(HtmlGenericControl ctrl)
                {
                    int nutDay = int.Parse(ctrl.Attributes["day"]);

                    DailyNutrition dNut = dailyNuts.Where(a => a.DayNumber == nutDay).SingleOrDefault();

                    if (dNut == null)
                    {
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Cals##", "0");
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Fats##", "0");
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Ptrns##", "0");
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Carbs##", "0");
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Fbrs##", "0");
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Sod##", "0");
                    }
                    else
                    {
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Cals##", dNut.Calories.ToString("f2"));
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Fats##", dNut.Fat.ToString("f2"));
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Ptrns##", dNut.Protein.ToString("f2"));
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Carbs##", dNut.Carbs.ToString("f2"));
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Fbrs##", dNut.Fiber.ToString("f2"));
                        ctrl.InnerHtml = ctrl.InnerHtml.Replace("##Sod##", dNut.Sodium.ToString("f2"));
                    }
                });
            }
            catch (Exception)
            {
                throw;
            }
        }