/// <summary> /// Updates a blog. /// </summary> /// <param name="blogId">Id of the object being updated.</param> /// <param name="blog">The updated blog.</param> /// <param name="metafields">Optional metafield data that can be returned by the <see cref="MetaFieldService"/>.</param> /// <param name="cancellationToken">Cancellation Token</param> public virtual async Task <Entities.Blog> UpdateAsync(long blogId, Entities.Blog blog, IEnumerable <Entities.MetaField> metafields = null, CancellationToken cancellationToken = default) { var request = PrepareRequest($"blogs/{blogId}.json"); var body = blog.ToDictionary(); if (metafields != null && metafields.Count() >= 1) { body.Add("metafields", metafields); } var content = new JsonContent(new { blog = body }); var response = await ExecuteRequestAsync <Entities.Blog>(request, HttpMethod.Put, cancellationToken, content, "blog"); return(response.Result); }