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