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); }
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); } }
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); }