public async Task <IResult <InstaUserShortList> > SearchUsersAsync(string searchPattern) { try { var userUri = UriCreator.GetUserUri(searchPattern); var request = HttpHelper.GetDefaultRequest(HttpMethod.Get, userUri, _deviceInfo); var response = await _httpRequestProcessor.SendAsync(request); var json = await response.Content.ReadAsStringAsync(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <InstaUserShortList>(response, json)); } var userInfo = JsonConvert.DeserializeObject <InstaUserListShortResponse>(json); var userList = new InstaUserShortList(); foreach (var userInfoItem in userInfo.Items) { userList.Add(ConvertersFabric.Instance.GetUserShortConverter(userInfoItem).Convert()); } return(Result.Success(userList)); } catch (Exception exception) { _logger?.LogException(exception); return(Result.Fail <InstaUserShortList>(exception.Message)); } }
private static async Task <InstaUserShortList> GetUnfollowers(IInstaApi api, string username) { var followersListTask = GetFollowersList(api, username); var followingListTask = GetFollowingList(api, username); await Task.WhenAll(followersListTask, followingListTask); var followersList = await followersListTask; var followingList = await followingListTask; if (followersList.Count == 0 && followingList.Count == 0) { throw new Exception("Please check your username!"); } InstaUserShortList unfollowers = new InstaUserShortList(); foreach (var user in followingList) { if (followersList.Where(x => x.UserName == user.UserName).FirstOrDefault() == null) { unfollowers.Add(user); } } return(unfollowers); }