public Food GetFoodByGroup(MealTypes mainType, int foodGroup) { using (var session = NHibernateManager.OpenSession()) { if (MealTypesList == null) { MealTypesList = session.CreateCriteria <Mealtype>().List <Mealtype>(); } Mealtype currMealType = MealTypesList.Where(x => x.Id == (int)mainType).First(); if (FoodGroupList == null) { FoodGroupList = session.CreateCriteria <Foodgroup>().List <Foodgroup>(); } Foodgroup currFoodType = FoodGroupList.Where(x => x.Id == foodGroup).First(); IList <Food> foodList = session.CreateCriteria <Food>() .Add(Expression.Or(Expression.Eq("MealType", currMealType), Expression.Eq("MealType", MealTypesList.Where(x => x.Id == (int)MealTypes.Everything).First()))) .Add(Expression.Eq("FoodGroup", currFoodType)) .List <Food>(); Random Rand = new Random(); int ChosenIndex = Rand.Next(0, foodList.Count - 1); return(foodList[ChosenIndex]); } }
public List <Food> GetFoods(int NumOfFoods, MealTypes mainType) { using (var session = NHibernateManager.OpenSession()) { List <Food> result = new List <Food>(); if (MealTypesList == null) { MealTypesList = session.CreateCriteria <Mealtype>().List <Mealtype>(); } Mealtype currMealType = MealTypesList.Where(x => x.Id == (int)mainType).First(); IList <Food> foodList; if (!FoodsByMeal.ContainsKey(currMealType)) { if (mainType == MealTypes.Snack) { foodList = session.CreateCriteria <Food>() .Add(Expression.Eq("MealType", currMealType)) .List <Food>(); } else { foodList = session.CreateCriteria <Food>() .Add(Expression.Or(Expression.Eq("MealType", currMealType), Expression.Eq("MealType", MealTypesList.Where(x => x.Id == (int)MealTypes.Everything).First()))) .List <Food>(); } FoodsByMeal[currMealType] = foodList; } else { foodList = FoodsByMeal[currMealType]; } if (foodList.Count > 0) { for (int i = 0; i < NumOfFoods; i++) { int ChosenIndex = Rand.Next(0, foodList.Count - 1); result.Add(foodList[ChosenIndex]); } } return(result); } }
private void IsMealNone(JObject jobj, Mealtype mealtype) { if (jobj["mealServiceDietInfo"] == null) { switch (mealtype) { case Mealtype.NONEALL: IsMealNoneAll(); break; case Mealtype.NONEBREAKFAST: IsMealNoneBreakFast(); break; case Mealtype.NONELUNCH: IsMealNoneLunch(); break; case Mealtype.NONEDINNER: IsMealNoneDinner(); break; } } else if (jobj["mealServiceDietInfo"][0]["head"][1]["RESULT"]["CODE"].ToString() != "INFO-000" && jobj["RESULT"]["CODE"].ToString() == "INFO-200") { switch (mealtype) { case Mealtype.NONEALL: IsMealNoneAll(); break; case Mealtype.NONEBREAKFAST: IsMealNoneBreakFast(); break; case Mealtype.NONELUNCH: IsMealNoneLunch(); break; case Mealtype.NONEDINNER: IsMealNoneDinner(); break; } } }