private static void FillConfigurations() { _excludeDeletedUsers = true; _reverseTotalList = _configurationProvider.GetConfig("reverseTotalList", false); _wait = _configurationProvider.GetConfig("Wait", 23); _cityIds = _configurationProvider.GetConfig("CityIds", _cityIds); _idsToExclude = _configurationProvider.GetConfig("idsToExclude", _idsToExclude); _deletedUserText = "DELETED"; _secondsToSleepAfterOwnerIdIsIncorrect = 1; _secondsToSleepAfterOtherExceptions = 1; _hoursToSleepAfterFloodControl = 4; _blacklistMembersOfChatId = _configurationProvider.GetConfig("BlacklistMembersOfChatId", _blacklistMembersOfChatId); _blacklistFriendsOfUserId = _configurationProvider.GetConfig("BlacklistFriendsOfUserId", _blacklistFriendsOfUserId); _blackListGroupIds = _configurationProvider.GetConfig("BlackListGroupIds", _blackListGroupIds); _strategy = _configurationProvider.GetConfig("Strategy", _strategy); _groupNames = _configurationProvider.GetConfig("GroupNames", _groupNames) ?? new List <string>(); var minDateConfig = _configurationProvider.GetConfig("MinDateForPostsInBackgroundWork"); if (!string.IsNullOrWhiteSpace(minDateConfig)) { MinDateForPostsBackGroundWork = DateTime.ParseExact(minDateConfig, "d", CultureInfo.InvariantCulture); } }
public async Task <List <UserExtended> > GetUserIdsByStrategyAsync(LikeClickerStrategy strategy, List <string> groupNames, AgeRange ageRange, int[] cityIds, DateTime minDateForPosts, List <long> blackListedUserIds) { var users = new List <UserExtended>(); var fields = GetFields(); switch (strategy) { case LikeClickerStrategy.PostsLikers: var likerIds = new List <long>(); foreach (var name in groupNames) { var group = _groupService.GetByName(name); var likers = _groupService.GetGroupPostsLickers(group.Id, blackListedUserIds, minDateForPosts); var likerIdsChunk = likers.Select(x => x.Id); likerIds.AddRange(likerIdsChunk); } likerIds = likerIds.Distinct().ToList(); users = _userService.GetUsersByIds(likerIds, fields).ToList(); Console.WriteLine("Get user by ids"); break; case LikeClickerStrategy.GroupMembers: var allMemebers = new List <UserExtended>(); foreach (var groupName in groupNames) { try { var group = _groupService.GetByName(groupName); var members = _groupService.GetGroupMembers(group.Id.ToString(), UsersFields.Domain); allMemebers.AddRange(members); } catch (Exception) { continue; } } users = _userService.GetUsersByIds(allMemebers.Select(x => x.Id).ToList(), fields).Distinct().ToList(); break; case LikeClickerStrategy.SearchResults: users = await SearchUsers(ageRange, cityIds.FirstOrDefault()); break; } var cities = _citiesService.GetCities(cityIds, false); Console.WriteLine($"Users count is {users.Count}."); var filteredUsers = FilterUsers(users, ageRange, cities); Console.WriteLine($"Filtered users count is {filteredUsers.Count}."); return(filteredUsers); }
private static void FillConfigurations() { _groupNames = _configurationProvider.GetConfig("GroupNames", _groupNames); _profilePhotosToLike = _configurationProvider.GetConfig("ProfilePhotosToLike", 2); _minAge = _configurationProvider.GetConfig("MinAge", 17); _maxAge = _configurationProvider.GetConfig("MaxAge", 29); _skipRecentlyLikedProfilesPhotosCount = _configurationProvider.GetConfig("SkipRecentlyLikedProfilesPhotosCount ", 1); _cityIds = _configurationProvider.GetConfig("CityIds", _cityIds); _strategy = _configurationProvider.GetConfig("Strategy", _strategy); var minDateConfig = _configurationProvider.GetConfig("MinDateForPosts"); if (!string.IsNullOrWhiteSpace(minDateConfig)) { MinDateForPosts = DateTime.ParseExact(minDateConfig, "d", CultureInfo.InvariantCulture); } }