public List <int> GetDaysWithAllergens(int cartCalendarId)
        {
            try
            {
                List <int>          daysWithAllergens = new List <int>();
                hccProgramPlan      plan    = hccProgramPlan.GetById(this.Plan_PlanID.Value);
                hccUserProfile      profile = hccUserProfile.GetById(this.UserProfileID);
                hccCartItemCalendar cartCal = hccCartItemCalendar.GetById(cartCalendarId);

                if (plan != null && profile != null)
                {
                    // get list of user profile allergens
                    List <hccAllergen> userAllergens = profile.GetAllergens();

                    if (userAllergens.Count > 0)
                    {
                        List <hccProgramDefaultMenu> defaultMenus = hccProgramDefaultMenu.GetBy(cartCal.CalendarID, plan.ProgramID);

                        defaultMenus.ForEach(delegate(hccProgramDefaultMenu defaultMenu)
                        {
                            hccCartDefaultMenuException excMenu = hccCartDefaultMenuException.GetBy(defaultMenu.DefaultMenuID, cartCal.CartCalendarID);
                            List <hccAllergen> menuAllg         = new List <hccAllergen>();

                            if (excMenu == null)
                            {
                                hccMenuItem item = hccMenuItem.GetById(defaultMenu.MenuItemID);
                                if (item != null)
                                {
                                    menuAllg = item.GetAllergens();
                                }
                            }
                            else
                            {
                                menuAllg = excMenu.GetMenuItemAllergens();
                            }

                            if (menuAllg.Count > 0)
                            {
                                if (userAllergens.Intersect(menuAllg).Count() > 0)
                                {
                                    daysWithAllergens.Add(defaultMenu.DayNumber);
                                }
                            }
                        });
                    }
                }
                return(daysWithAllergens);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public List <hccAllergen> GetMenuItemAllergens()
        {
            try
            {
                List <hccAllergen> algns = new List <hccAllergen>();
                hccMenuItem        item  = hccMenuItem.GetById(this.MenuItemID);

                if (item != null)
                {
                    algns.AddRange(item.GetAllergens());
                }

                return(algns);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public static decimal GetItemPriceBySize(hccMenuItem menuItem, int?itemSize)
        {
            switch ((Enums.CartItemSize)itemSize)
            {
            case Enums.CartItemSize.ChildSize:
                return(menuItem.CostChild);

            case Enums.CartItemSize.SmallSize:
                return(menuItem.CostSmall);

            case Enums.CartItemSize.RegularSize:
                return(menuItem.CostRegular);

            case Enums.CartItemSize.LargeSize:
                return(menuItem.CostLarge);

            default: return(0.00m);
            }
        }
Esempio n. 4
0
        public MOTCartItem(hccCartItem cartItem)
        {
            try
            {
                if (cartItem.ItemType == Common.Enums.CartItemType.AlaCarte)
                {
                    hccMenuItem mi = hccMenuItem.GetById(cartItem.Meal_MenuItemID.Value);
                    MenuItem     = mi;
                    CartItem     = cartItem;
                    CartItemId   = cartItem.CartItemID;
                    OrderNumber  = cartItem.OrderNumber + "-ALC";
                    DeliveryDate = cartItem.DeliveryDate;

                    if (cartItem.UserProfile != null)
                    {
                        CustomerName = cartItem.UserProfile.ParentProfileName;
                        ProfileName  = cartItem.UserProfile.ProfileName;
                    }

                    ItemName = mi.Name;
                    MealType = mi.MealType;

                    if (cartItem.Meal_MealSizeID.HasValue)
                    {
                        Enums.CartItemSize size = (Enums.CartItemSize)cartItem.Meal_MealSizeID;

                        if (size == Enums.CartItemSize.NoSize)
                        {
                            size = Enums.CartItemSize.RegularSize;
                        }

                        PortionSize = Enums.GetEnumDescription(size);
                    }
                    else
                    {
                        PortionSize = Enums.GetEnumDescription(Enums.CartItemSize.RegularSize);
                    }

                    Servings    = cartItem.Quantity.ToString();
                    Preferences = hccCartItemMealPreference.GetPrefsBy(cartItem.CartItemID)
                                  .Select(a => a.Name).DefaultIfEmpty("None").Aggregate((c, d) => c + ", " + d);
                    Sides = "None";

                    if (hccMenuItem.EntreeMealTypes.Contains(MealType) && cartItem.MealSideMenuItems.Count > 0)
                    {
                        Sides = cartItem.GetMealSideMenuItemsAsSectionString(", ");
                    }

                    if (cartItem.SnapShipAddrId.HasValue)
                    {
                        hccAddress addr = hccAddress.GetById(cartItem.SnapShipAddrId.Value);
                        DeliveryMethod = ((Enums.DeliveryTypes)addr.DefaultShippingTypeID).ToString();
                    }
                    if (cartItem.Plan_IsAutoRenew == true)
                    {
                        FamilyStyle = "Yes";
                    }
                    else if (cartItem.Plan_IsAutoRenew == false)
                    {
                        FamilyStyle = "No";
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public List <Day> BindWeeklyGlance(List <hccProgramDefaultMenu> defaultMenuSelections, int numDaysPerWeek, int cartItemId)
        {
            StringBuilder      sb    = new StringBuilder();
            List <hccMenuItem> lstMI = new List <hccMenuItem>();
            Day       d  = new Day();
            MealTypes mT = new MealTypes();

            string currentMealType = "";
            int    i, currentDay = 1;

            for (i = 1; i <= numDaysPerWeek; i++)
            {
                int lastTypeId = 0;

                defaultMenuSelections.Where(a => a.DayNumber == i)
                .OrderBy(a => a.MealTypeID).ToList().ForEach(delegate(hccProgramDefaultMenu defaultSelection)
                {
                    int menuItemId     = defaultSelection.MenuItemID;
                    int menuItemSizeId = defaultSelection.MenuItemSizeID;

                    hccCartItemCalendar cartCal = hccCartItemCalendar.GetBy(cartItemId, CurrentCalendarId);

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

                    if (menuItemExc != null)
                    {
                        menuItemId     = menuItemExc.MenuItemID;
                        menuItemSizeId = menuItemExc.MenuItemSizeID;

                        List <hccCartDefaultMenuExPref> prefs = hccCartDefaultMenuExPref.GetBy(menuItemExc.DefaultMenuExceptID);
                    }
                    if (menuItemId > 0)
                    {
                        hccMenuItem menuItem = hccMenuItem.GetById(menuItemId);

                        //if (defaultSelection.MealTypeID != lastTypeId)
                        //{
                        lastTypeId = defaultSelection.MealTypeID;

                        if (((Enums.MealTypes)lastTypeId).ToString().ToLower().Contains("breakfast"))
                        {
                            currentMealType = "breakfast";
                        }
                        else if (((Enums.MealTypes)lastTypeId).ToString().ToLower().Contains("lunch"))
                        {
                            currentMealType = "lunch";
                        }
                        else if (((Enums.MealTypes)lastTypeId).ToString().ToLower().Contains("dinner"))
                        {
                            currentMealType = "dinner";
                        }
                        else if (((Enums.MealTypes)lastTypeId).ToString().ToLower().Contains("dessert"))
                        {
                            currentMealType = "dessert";
                        }
                        else if (((Enums.MealTypes)lastTypeId).ToString().ToLower().Contains("snack"))
                        {
                            currentMealType = "snack";
                        }

                        if (mT.MealType != currentMealType && mT.MealType != null)
                        {
                            if (sb.ToString().EndsWith(",<br />") == true)
                            {
                                mT.MealInfo = sb.ToString().Substring(0, sb.ToString().Length - 7);
                            }
                            //mT.MealInfo = sb.ToString().Trim().TrimEnd(',');

                            d.MealTypes.Add(mT);

                            mT = new MealTypes();
                            sb = new StringBuilder();
                        }

                        mT.MealType = currentMealType;

                        if (menuItem != null)
                        {
                            sb.Append(menuItem.Name);
                            sb.Append(",<br />");
                        }

                        /*if (((Enums.CartItemSize)menuItemSizeId) != Enums.CartItemSize.NoSize)
                         * {
                         *  sb.Append(" - " + Enums.GetEnumDescription(((Enums.CartItemSize)menuItemSizeId)));
                         *  sb.Append(", ");
                         * } */
                        if (currentDay != defaultSelection.DayNumber)         // only create a new day when daynumber changes
                        {
                            sb.ToString().Trim().TrimEnd(',');
                            d.DayTitle = currentDay.ToString();
                            //d.DayTitle = "Day: " + currentDay.ToString();
                            d.DayNumber = currentDay;
                            days.Add(d);
                            d          = new Day();
                            currentDay = defaultSelection.DayNumber;
                        }
                        //}
                        menuItemId = 0;
                    }
                });
            }
            if (sb.ToString().EndsWith(",<br />") == true)
            {
                mT.MealInfo = sb.ToString().Substring(0, sb.ToString().Length - 7);
            }
            //mT.MealInfo = sb.ToString().Trim().TrimEnd(',');
            d.MealTypes.Add(mT);
            d.DayTitle = currentDay.ToString();
            //d.DayTitle = "Day: " + currentDay.ToString();
            d.DayNumber = currentDay;
            days.Add(d);

            return(days);
        }