public static List<String> Preparation() { List<ListFriends> ListFriendses = new List<ListFriends>(); FriendsMapper friendsMapper = new FriendsMapper(); ListFriendsMapper listFriendsMapper = new ListFriendsMapper(); listFriendsMapper.deleteAllRecord(); UserMapper userMapper = new UserMapper(); List<User> users = new List<User>(); List<String> allVkIDFriends = new List<String>(); // Все друзья всех пользователей IApi vkClient = new VKClient(); users = userMapper.FindByAllRecord(); foreach (var user in users) { String vkIDUser = user.GetVkId(); List<String> vkIDFriends = new List<String>(); // Актуальный список друзей пользователя vkIDFriends.AddRange(vkClient.FriendsList(vkIDUser)); friendsMapper.Insert(vkIDFriends); // Заносим в БД актуальный список друщзей друзей foreach (var vkId in vkIDFriends) { ListFriendses.Add(new ListFriends(user.GetId(), vkId)); // Заполнили таблицу для сервера } listFriendsMapper.Insert(ListFriendses); allVkIDFriends.AddRange(vkIDFriends); // Актуальный список друзей всех пользователей } List<String> uniqueVkIDFriends = new List<String>(); uniqueVkIDFriends.AddRange(allVkIDFriends.Distinct().ToList()); // Уникальные записи о друзьях всех пользователей return uniqueVkIDFriends; }
public static void FromUpdate(ListFriendsMapper listFriendsMapper) { UserMapper userMapper = new UserMapper(); List<User> users = new List<User>(); users.AddRange(userMapper.FindByAllRecord()); Consumer consumer = new Consumer(); while (listFriendsMapper.countAllRecord() > 0) { int vkIdFriend = Convert.ToInt32(consumer.Receive("FromUpdate")); listFriendsMapper.deleteRecord(vkIdFriend); foreach (var user in users) { int idUser = user.GetId(); if (listFriendsMapper.countRecordForUser(idUser) == 0) { ToTop(idUser); } } } }