public CommonResult Unfollow(string viewerId, string ownerId, string accessToken) { if (logService) { WriteLogToFile(viewerId + "/unfollow/" + ownerId + "?accessToken=" + accessToken); } try { ValidateSignature(); ChatterSoapService soap = getChatterSoapService(); var ssOwnerId = getSalesforceUserId(soap, ownerId); var ssViewerId = getSalesforceUserId(soap, viewerId); ChatterRestService rest = getChatterRestService(accessToken); ChatterResponse cresp = rest.Unfollow(ssViewerId, ssOwnerId); return(IsUserFollowing(viewerId, ownerId, accessToken)); } catch (Exception ex) { HandleError(ex, url); HandleError(ex, accessToken); return(new CommonResult() { Success = false, ErrorMessage = ex.Message }); } }
public CommonResult IsUserFollowing(string viewerId, string ownerId, string accessToken) { try { ChatterSoapService soap = getChatterSoapService(); var ssOwnerId = getSalesforceUserId(soap, ownerId); var ssViewerId = getSalesforceUserId(soap, viewerId); ChatterRestService rest = getChatterRestService(accessToken); ChatterResponse cresp = rest.GetFollowers(ssOwnerId); int total = cresp != null ? cresp.total : 0; while (cresp != null && cresp.followers != null) { foreach (ChatterSubscription csub in cresp.followers) { if (csub.subscriber != null && csub.subscriber.id.StartsWith(ssViewerId)) { return(new CommonResult() { Success = true, Following = true, Total = total, AccessToken = rest.GetAccessToken() }); } } cresp = rest.GetNextPage(cresp); } return(new CommonResult() { Success = true, Following = false, Total = total, AccessToken = rest.GetAccessToken() }); } catch (Exception ex) { HandleError(ex, url); HandleError(ex, accessToken); return(new CommonResult() { Success = false, ErrorMessage = ex.Message }); } }