async Task <List <WrikeComment> > IWrikeCommentsClient.GetAsync(WrikeClientIdListParameter commentIds, bool?plainText) { var requestUri = $"comments/{commentIds}"; var uriBuilder = new WrikeUriBuilder(requestUri).AddParameter("plainText", plainText); var response = await SendRequest <WrikeComment>(uriBuilder.GetUri(), HttpMethods.Get, jsonConverter : new WrikeCommentConverter()).ConfigureAwait(false); return(GetReponseDataList(response)); }
async Task <List <WrikeAttachment> > IWrikeAttachmentsClient.GetAsync(WrikeClientIdListParameter ids, bool?versions) { var uriBuilder = new WrikeUriBuilder($"attachments/{ids}") .AddParameter("versions", versions); var response = await SendRequest <WrikeAttachment>(uriBuilder.GetUri(), HttpMethods.Get, jsonConverter : new WrikeAttachmentConverter()).ConfigureAwait(false); return(GetReponseDataList(response)); }
async Task <List <WrikeUser> > IWrikeContactsClient.GetAsync(WrikeClientIdListParameter contactIds, WrikeMetadata metadata, bool?retrieveMetadata) { var requestUri = $"contacts/{contactIds}"; var uriBuilder = new WrikeUriBuilder(requestUri) .AddParameter("metadata", metadata); if (retrieveMetadata.HasValue && retrieveMetadata == true) { var fields = new List <string> { "metadata" }; uriBuilder.AddParameter("fields", fields); } var response = await SendRequest <WrikeUser>(uriBuilder.GetUri(), HttpMethods.Get).ConfigureAwait(false); return(GetReponseDataList(response)); }
async Task <List <WrikeTask> > IWrikeTasksClient.GetAsync(WrikeClientIdListParameter taskIds, List <string> optionalFields) { var supportedOptionalFields = new List <string> { WrikeTask.OptionalFields.Recurrent, WrikeTask.OptionalFields.AttachmentCount }; if (optionalFields != null && (optionalFields.Count > 2 || optionalFields.Any(o => !supportedOptionalFields.Contains(o)))) { throw new ArgumentOutOfRangeException(nameof(optionalFields), "Only Recurrent and AttachmentCount is supported."); } var uriBuilder = new WrikeUriBuilder($"tasks/{taskIds}") .AddParameter("fields", optionalFields); var response = await SendRequest <WrikeTask>(uriBuilder.GetUri(), HttpMethods.Get).ConfigureAwait(false); return(GetReponseDataList(response)); }
async Task <List <WrikeDependency> > IWrikeDependenciesClient.GetAsync(WrikeClientIdListParameter ids) { var response = await SendRequest <WrikeDependency>($"dependencies/{ids}", HttpMethods.Get).ConfigureAwait(false); return(GetReponseDataList(response)); }
async Task <List <WrikeCustomField> > IWrikeCustomFieldsClient.GetAsync(WrikeClientIdListParameter customFieldIds) { var response = await SendRequest <WrikeCustomField>($"customfields/{customFieldIds}", HttpMethods.Get).ConfigureAwait(false); return(GetReponseDataList(response)); }
async Task <List <WrikeFolder> > IWrikeFoldersAndProjectsClient.GetFoldersAsync(WrikeClientIdListParameter folderIds, List <string> optionalFields) { if (optionalFields != null && optionalFields.Count > 0 && optionalFields.Except(WrikeFolder.OptionalFields.List).Any()) { throw new ArgumentOutOfRangeException(nameof(optionalFields), "Use only values in WrikeFolder.OptionalFields"); } var uriBuilder = new WrikeUriBuilder($"folders/{folderIds}") .AddParameter("fields", optionalFields); var response = await SendRequest <WrikeFolder>(uriBuilder.GetUri(), HttpMethods.Get).ConfigureAwait(false); return(GetReponseDataList(response)); }
async Task <List <WrikeWebHook> > IWrikeWebHooksClient.GetAsync(WrikeClientIdListParameter webHookIds) { var response = await SendRequest <WrikeWebHook>($"webhooks/{webHookIds}", HttpMethods.Get).ConfigureAwait(false); return(GetReponseDataList(response)); }