public string ShowingPreferencesByMenuitemid(DefaultMenu Defaultmenudetails)
        {
            List <hccPreference> itemPrefs = new List <hccPreference>();

            try
            {
                string menuitempreferences = "";
                if (Defaultmenudetails.MenuItemID != 0)
                {
                    hccMenuItem hccMenuItem = new hccMenuItem
                    {
                        MenuItemID = Convert.ToInt16(Defaultmenudetails.MenuItemID)
                    };
                    itemPrefs = hccMenuItem.GetPreferences();
                    if (itemPrefs.Count > 0)
                    {
                        foreach (var preference in itemPrefs)
                        {
                            hccProgramDefaultMenuExPref excPref = hccProgramDefaultMenuExPref.GetBy(Defaultmenudetails.DefaultMenuID, preference.PreferenceID);
                            if (excPref != null)
                            {
                                menuitempreferences += preference.PreferenceID.ToString() + "|" + 1.ToString() + "|" + preference.Name.ToString() + "&" + Defaultmenudetails.MealTypeID.ToString() + "|" + Defaultmenudetails.CalendarID.ToString() + "|" + Defaultmenudetails.ProgramID.ToString() + "|" + Defaultmenudetails.DayNumber.ToString() + "*";
                            }
                            else
                            {
                                menuitempreferences += preference.PreferenceID.ToString() + "|" + 0.ToString() + "|" + preference.Name.ToString() + "&" + Defaultmenudetails.MealTypeID.ToString() + "|" + Defaultmenudetails.CalendarID.ToString() + "|" + Defaultmenudetails.ProgramID.ToString() + "|" + Defaultmenudetails.DayNumber.ToString() + "*";
                            }
                        }
                    }
                    else
                    {
                        menuitempreferences = 0.ToString() + "|" + 0.ToString() + "|" + " " + "&" + Defaultmenudetails.MealTypeID.ToString() + "|" + Defaultmenudetails.CalendarID.ToString() + "|" + Defaultmenudetails.ProgramID.ToString() + "|" + Defaultmenudetails.DayNumber.ToString() + "*";
                    }
                }
                else
                {
                    menuitempreferences = 0.ToString() + "|" + 0.ToString() + "|" + " " + "&" + Defaultmenudetails.MealTypeID.ToString() + "|" + Defaultmenudetails.CalendarID.ToString() + "|" + Defaultmenudetails.ProgramID.ToString() + "|" + Defaultmenudetails.DayNumber.ToString() + "*";
                }
                return(menuitempreferences);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        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 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;
            }
        }
        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;
            }
        }