void AppendInclude(StringBuilder sb, PostIncludes includes) { var requireComma = false; if (includes.HasFlag(PostIncludes.Comments)) { if (requireComma) { sb.Append(","); } sb.Append("comments"); requireComma = true; } if (includes.HasFlag(PostIncludes.CommentsStargazers)) { if (requireComma) { sb.Append(","); } sb.Append("comments.stargazers"); requireComma = true; } if (includes.HasFlag(PostIncludes.Stargazers)) { if (requireComma) { sb.Append(","); } sb.Append("stargazers "); requireComma = true; } }
public Task <Post> GetPostAsync(string teamName, int postNumber, PostIncludes include = PostIncludes.None) { var url = BuildStringBuilderWithTeamName(teamName); url.Append("/posts/"); url.Append(postNumber); AppendInclude(url, include); return(ReadMessage <Post>(httpClient.GetAsync(url.ToString()))); }
public Task <Post[]> GetPostsAsync(string teamName, string query, PostIncludes include = PostIncludes.None, PostSort sort = PostSort.Updated, PostOrder order = PostOrder.Desc, int perPage = 20) { var url = BuildStringBuilderWithTeamName(teamName); url.Append("/posts"); url.Append("?q="); url.Append(query); url.Append("&include="); AppendInclude(url, include); url.Append("&sort="); AppendSort(url, sort); url.Append("&order="); AppendOrder(url, order); url.Append("&per_page="); url.Append(perPage); return(ReadPaginiationMesasge <Post>(url.ToString())); }