예제 #1
0
        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]);
            }
        }
예제 #2
0
        public User Register(User details)
        {
            User ret = null;

            using (var session = NHibernateManager.OpenSession())
            {
                IList <User> lst = session.CreateCriteria <User>()
                                   .Add(Expression.Eq("Email", details.Email))
                                   .List <User>();

                // if the email isn't in use save the new user
                if (lst.Count == 0)
                {
                    using (var transaction = session.BeginTransaction())
                    {
                        try
                        {
                            ret = details;
                            session.Save(ret);
                            transaction.Commit();
                        }
                        catch (Exception e)
                        {
                            List <Exception> list = new List <Exception>();
                            list.Add(e);
                            transaction.Rollback();
                        }
                    }
                }
            }

            return(ret);
        }
예제 #3
0
 public void SaveBloodResultsLacks(List <int> lacks, int userId)
 {
     using (var session = NHibernateManager.OpenSession())
     {
         using (var transaction = session.BeginTransaction())
         {
             try
             {
                 User user = GetUser(userId);
                 //user.NutrientLacksList = lacks;
                 if (lacks != null)
                 {
                     user.NutrientLacks = string.Join(",", lacks.ToArray());
                 }
                 else
                 {
                     user.NutrientLacks = null;
                 }
                 session.Update(user);
                 transaction.Commit();
             }
             catch (Exception e)
             {
                 List <Exception> list = new List <Exception>();
                 list.Add(e);
                 transaction.Rollback();
             }
         }
     }
 }
예제 #4
0
 public IList <Preference> GetPreferences()
 {
     using (var session = NHibernateManager.OpenSession())
     {
         IList <Preference> preferences = session.CreateCriteria <Preference>().List <Preference>();
         return(preferences);
     }
 }
예제 #5
0
 public IList <Allergy> GetAllergies()
 {
     using (var session = NHibernateManager.OpenSession())
     {
         IList <Allergy> allergies = session.CreateCriteria <Allergy>().List <Allergy>();
         return(allergies);
     }
 }
예제 #6
0
        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);
            }
        }
예제 #7
0
        public int GetNutrientIdByName(string name)
        {
            int ret = -1;

            using (var session = NHibernateManager.OpenSession())
            {
                IList <Nutrient> lst = session.CreateCriteria <Nutrient>()
                                       .Add(Expression.Eq("Name", name))
                                       .List <Nutrient>();

                if (lst.Count == 1)
                {
                    ret = lst.First().Id;
                }
            }
            return(ret);
        }
예제 #8
0
        public User GetUser(int id)
        {
            User ret = null;

            using (var session = NHibernateManager.OpenSession())
            {
                IList <User> lst = session.CreateCriteria <User>()
                                   .Add(Expression.Eq("UserId", id))
                                   .List <User>();

                if (lst.Count == 1)
                {
                    ret = lst.First();
                }
            }
            return(ret);
        }
예제 #9
0
        public User Login(LoginUser details)
        {
            User ret = null;

            using (var session = NHibernateManager.OpenSession())
            {
                IList <User> lst = session.CreateCriteria <User>()
                                   .Add(Expression.And(Expression.Eq("Email", details.email), Expression.Eq("Password", details.password)))
                                   .List <User>();

                if (lst.Count > 0)
                {
                    ret = lst.First();
                }
            }

            return(ret);
        }
예제 #10
0
        public IEnumerable <User> GetUsers()
        {
            using (var session = NHibernateManager.OpenSession())
            {
                IList <User> users = session.CreateCriteria <User>().List <User>();
                //IList<int> l = users[0].AllergiesIdList;
                //l.Add(1);
                //users[0].AllergiesIdList = l;

                //IList<Preference> preferences = session.CreateCriteria<Preference>().List<Preference>();
                //IList<Allergy> allergies = session.CreateCriteria<Allergy>().List<Allergy>();
                //IList<Mealtype> mealtypes = session.CreateCriteria<Mealtype>().List<Mealtype>();
                //IList<Foodgroup> foodgroup = session.CreateCriteria<Foodgroup>().List<Foodgroup>();
                //IList<Menu> menues = session.CreateCriteria<Menu>().List<Menu>();
                //IList<Nutrient> nutrients = session.CreateCriteria<Nutrient>().List<Nutrient>();
                //IList<Food> food = session.CreateCriteria<Food>().List<Food>();
                return(users);
            }
        }
예제 #11
0
        public User UpdateUsersZone(PersonalZone details)
        {
            User ret = GetUser(details.userId);

            using (var session = NHibernateManager.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    ret.Allergies   = ConvertOptionNameToId(details.userAllergies, Globals.allergyArray);
                    ret.Preferences = ConvertOptionNameToId(details.userPreferences, Globals.preferenceArray);
                    try
                    {
                        session.Update(ret);
                        transaction.Commit();
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                    }
                }
            }
            return(ret);
        }