Exemple #1
0
        public static sleepQuality doesTheUserSleepWellByGender(string _userId, string _gender)
        {
            var repo = new SleepQualityRepository();

            (sleepEfficiencyQuality, countWakeUpsQuality)quality = repo.checkUserSleepQualityForHisGender(_userId, _gender);
            if ((quality.Item1 == sleepEfficiencyQuality.Good && quality.Item2 != countWakeUpsQuality.Bad) ||
                (quality.Item1 != sleepEfficiencyQuality.Bad && quality.Item2 == countWakeUpsQuality.Good))
            {
                return(sleepQuality.Good);
            }
            else if (quality.Item1 == sleepEfficiencyQuality.Medium && quality.Item2 == countWakeUpsQuality.Medium)
            {
                return(sleepQuality.Medium);
            }
            return(sleepQuality.Bad);
        }
Exemple #2
0
 public static void updateUserSleepQualityDetails(UserSleepQualityRecord record)
 {
     try
     {
         var _userSleepQualityRepository = new SleepQualityRepository();
         var sleepQualityRecord          = _userSleepQualityRepository.UpdateUserSleepQuality(record.userId,
                                                                                              record.averageWakeUps,
                                                                                              record.averageSleepEfficiency);
         if (sleepQualityRecord == null)
         {
             throw new Exception("Error updating user sleep quality records in SleepQuality table");
         }
         return;
     }
     catch (Exception e)
     {
         throw new AzureApiBadResponseCodeExcpetion(e);
     }
 }
Exemple #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);
        }