async Task <WrikeGroup> IWrikeGroupsClient.UpdateAsync(WrikeClientIdParameter id, string title, List <string> membersToAdd, List <string> membersToRemove, string parentId, WrikeGroupAvatar avatar, List <WrikeMetadata> metaData) { var contentBuilder = new WrikeFormUrlEncodedContentBuilder() .AddParameter("title", title) .AddParameter("addMembers", membersToAdd) .AddParameter("removeMembers", membersToRemove) .AddParameter("parent", parentId) .AddParameter("avatar", avatar) .AddParameter("metadata", metaData); var response = await SendRequest <WrikeGroup>($"groups/{id}", HttpMethods.Put, contentBuilder.GetContent()).ConfigureAwait(false); return(GetReponseDataFirstItem(response)); }
async Task <WrikeGroup> IWrikeGroupsClient.CreateAsync(WrikeGroup newGroup, string parentId, WrikeGroupAvatar avatar) { if (newGroup == null) { throw new ArgumentNullException(nameof(newGroup)); } var requestUri = $"groups"; var postDataBuilder = new WrikeFormUrlEncodedContentBuilder() .AddParameter("title", newGroup.Title) .AddParameter("members", newGroup.MemberIds) .AddParameter("parent", parentId) .AddParameter("avatar", avatar) .AddParameter("metadata", newGroup.Metadata); var postContent = postDataBuilder.GetContent(); var response = await SendRequest <WrikeGroup>(requestUri, HttpMethods.Post, postContent).ConfigureAwait(false); return(GetReponseDataFirstItem(response)); }