private void ProcessManyWaves() { if (_mangoWaves != null && _mangoWaves.Count > 0) { var oneGroup = _mangoWaves.Dequeue(); var context = new UserSearchLoadContext(oneGroup) { SearchType = _searchType, }; DataManager.Current.Load <UserSearch>( context, (results) => { if (results != null && results.NotYetFriends != null) { foreach (var entry in results.NotYetFriends) { var id = entry.UserId; if (!_mangoResults.ContainsKey(id)) // slow { _mangoResults[id] = entry; } } ProcessManyWaves(); } }, (bad) => { ProcessManyWaves(); // TODO: ...? }); } else { _mangoWaves = null; // Done! if (_mangoResults != null && _mangoResults.Count > 0) { var allResults = new List <CompactUser>(_mangoResults.Values); var fake = new FakeUserSearch { NotYetFriends = allResults }; UserSearch = fake; } _mangoResults = null; } }
private void ProcessManyWaves() { if (_mangoWaves != null && _mangoWaves.Count > 0) { var oneGroup = _mangoWaves.Dequeue(); var context = new UserSearchLoadContext(oneGroup) { SearchType = _searchType, }; DataManager.Current.Load<UserSearch>( context, (results) => { if (results != null && results.NotYetFriends != null) { foreach (var entry in results.NotYetFriends) { var id = entry.UserId; if (!_mangoResults.ContainsKey(id)) // slow { _mangoResults[id] = entry; } } ProcessManyWaves(); } }, (bad) => { ProcessManyWaves(); // TODO: ...? }); } else { _mangoWaves = null; // Done! if (_mangoResults != null && _mangoResults.Count > 0) { var allResults = new List<CompactUser>(_mangoResults.Values); var fake = new FakeUserSearch { NotYetFriends = allResults }; UserSearch = fake; } _mangoResults = null; } }