public static async Task <SanityDocumentResponse <SanityFileAsset> > UploadFileAsync(this SanityClient client, Uri fileUrl, string label = null)
        {
            if (fileUrl == null)
            {
                throw new ArgumentNullException(nameof(fileUrl));
            }

            var mimeType  = "application/octet-stream";
            var fileName  = fileUrl.PathAndQuery.Split('?')[0].Split('#')[0].Split('/').Last();
            var extension = fileName.Split('.').Last();

            if (extension != fileName)
            {
                mimeType = MimeTypeMap.GetMimeType(extension);
            }
            using (var fs = await _httpClient.GetStreamAsync(fileUrl).ConfigureAwait(false))
            {
                var result = await client.UploadFileAsync(fs, fileName, mimeType, label ?? "Source:" + fileUrl.OriginalString).ConfigureAwait(false);

                fs.Close();
                return(result);
            }
        }
 public static SanityMutationBuilder <TDoc> BeginTransaction <TDoc>(this SanityClient client)
 {
     return(new SanityMutationBuilder(client).For <TDoc>());
 }
 public static SanityMutationBuilder BeginTransaction(this SanityClient client)
 {
     return(new SanityMutationBuilder(client));
 }
 public static Task <SanityMutationResponse> DeleteAsync(this SanityClient client, string id, CancellationToken cancellationToken = default)
 {
     return(client.BeginTransaction().DeleteById(id).CommitAsync(false, false, SanityMutationVisibility.Sync, cancellationToken));
 }
 public static Task <SanityMutationResponse <TDoc> > SetAsync <TDoc>(this SanityClient client, TDoc document, CancellationToken cancellationToken = default)
 {
     return(client.BeginTransaction <TDoc>().SetValues(document).CommitAsync(false, true, SanityMutationVisibility.Sync, cancellationToken));
 }
        public static async Task <SanityDocumentResponse <SanityImageAsset> > UploadImageAsync(this SanityClient client, Uri imageUrl, string label = null, CancellationToken cancellationToken = default)
        {
            if (imageUrl == null)
            {
                throw new ArgumentNullException(nameof(imageUrl));
            }
            //Default to JPG
            var mimeType  = MimeTypeMap.GetMimeType(".jpg");
            var fileName  = imageUrl.PathAndQuery.Split('?')[0].Split('#')[0].Split('/').Last();
            var extension = fileName.Split('.').Last();

            if (extension != fileName)
            {
                mimeType = MimeTypeMap.GetMimeType(extension);
            }
            using (var fs = await _httpClient.GetStreamAsync(imageUrl).ConfigureAwait(false))
            {
                var result = await client.UploadImageAsync(fs, fileName, mimeType, label ?? "Source:" + imageUrl.OriginalString, cancellationToken).ConfigureAwait(false);

                fs.Close();
                return(result);
            }
        }