Esempio n. 1
0
        // returns null if no a like users
        public List <int> getSleepSegmentsStatsAveragesFromALikeUsersCombined(string _userId, int userAge, int userHeight, int userWeight, string userGender)
        {
            UserDetailsRepository repo = new UserDetailsRepository();
            UserIdsModel          r    = repo.GetUsersByGenderHeightWeightAndAgeRange(userAge, userHeight, userWeight, userGender);

            if (r.userIds.Count == 0)
            {
                return(null);
            }

            StringBuilder sbs = new StringBuilder();

            foreach (string s in r.userIds)
            {
                sbs.Append(s + ",");
            }
            sbs = sbs.Remove(sbs.Length - 1, 1); //remove the last comma
            string users = sbs.ToString();

            var usersParam = new Parameter("users", users);

            var sleepSegmentsStatsAverages = CallAzureDatabase("GetAverageSleepSegmentsStatsFromUsers", usersParam);

            if (sleepSegmentsStatsAverages == null)
            {
                return(null);
            }

            List <int> averages = JsonConvert.DeserializeObject <List <int> >(sleepSegmentsStatsAverages);

            return(averages);
        }
Esempio n. 2
0
        // returns null if no a like users
        public List <int> getSleepSegmentsStatsAveragesFromALikeUsersOption2(string _userId, int userHeight, int userWeight, string userGender)
        {
            var HeightParameter = new Parameter(HeightKey, userHeight.ToString());
            var WeightParameter = new Parameter(WeightKey, userWeight.ToString());
            var genderParameter = new Parameter(GenderKey, userGender);
            var parameters      = new Parameter[3] {
                genderParameter, HeightParameter, WeightParameter
            };
            var usersInHisGenderHeightAndWeight = CallAzureDatabase("GetUsersByGenderHeightAndWeight", parameters);

            UserIdsModel _users = JsonConvert.DeserializeObject <UserIdsModel>(usersInHisGenderHeightAndWeight);

            if (_users.userIds.Count == 0)
            {
                return(null);
            }

            StringBuilder sb = new StringBuilder();

            foreach (string s in _users.userIds)
            {
                sb.Append(s + ",");
            }
            sb = sb.Remove(sb.Length - 1, 1); //remove the last comma
            string users = sb.ToString();

            var usersParam = new Parameter("users", users);

            var sleepSegmentsStatsAverages = CallAzureDatabase("GetAverageSleepSegmentsStatsFromUsers", usersParam);

            if (sleepSegmentsStatsAverages == null)
            {
                return(null);
            }

            List <int> averages = JsonConvert.DeserializeObject <List <int> >(sleepSegmentsStatsAverages);

            return(averages);
        }
Esempio n. 3
0
        public (sleepEfficiencyQuality, countWakeUpsQuality) checkUserSleepQualityForHisGenderAndAge(string _userId, int _userAge, string _userGender)
        {
            UserSleepQualityRecord userSleepQuality = new SleepQualityRepository().GetUserSleepQuality(_userId);

            var genderParameter = new Parameter(GenderKey, _userGender);
            var minAgeParameter = new Parameter(minAgeKey, (_userAge - 5).ToString());
            var maxAgeParameter = new Parameter(maxAgeKey, (_userAge + 5).ToString());
            var parameters      = new Parameter[3] {
                genderParameter, minAgeParameter, maxAgeParameter
            };
            var usersInHisGenderAndAgeRange = CallAzureDatabase("GetUsersByGenderAndAgeRange", parameters);

            UserIdsModel  _users = JsonConvert.DeserializeObject <UserIdsModel>(usersInHisGenderAndAgeRange);
            StringBuilder sb     = new StringBuilder();

            foreach (string s in _users.userIds)
            {
                sb.Append(s + ",");
            }
            sb = sb.Remove(sb.Length - 1, 1); //remove the last comma
            string users = sb.ToString();

            var usersParam = new Parameter("users", users);

            var    _usersAverageWakeUps = CallAzureDatabase("GetAverageWakeUpsForUsers", usersParam);
            double usersAverageWakeUps  = Convert.ToDouble(_usersAverageWakeUps);

            var    _usersAverageSleepEfficiency = CallAzureDatabase("GetAverageSleepEfficiencyForUsers", usersParam);
            double usersAverageSleepEfficiency  = Convert.ToDouble(_usersAverageSleepEfficiency);

            // set wakeUps quality for the user
            countWakeUpsQuality wakeUpsResult;

            if (userSleepQuality.averageWakeUps >= usersAverageWakeUps)
            {
                wakeUpsResult = countWakeUpsQuality.Good;
            }
            else
            {
                if (userSleepQuality.averageWakeUps < usersAverageWakeUps - 2)
                {
                    wakeUpsResult = countWakeUpsQuality.Bad;
                }
                else
                {
                    wakeUpsResult = countWakeUpsQuality.Medium;
                }
            }

            // set sleepEfficiency quality for the user
            sleepEfficiencyQuality sleepEfficiencyResult;

            if (userSleepQuality.averageSleepEfficiency >= usersAverageSleepEfficiency + 10)
            {
                sleepEfficiencyResult = sleepEfficiencyQuality.Good;
            }
            else
            {
                if (userSleepQuality.averageSleepEfficiency <= usersAverageSleepEfficiency - 10)
                {
                    sleepEfficiencyResult = sleepEfficiencyQuality.Bad;
                }
                else
                {
                    sleepEfficiencyResult = sleepEfficiencyQuality.Medium;
                }
            }

            return(sleepEfficiencyResult, wakeUpsResult);
        }