/// <summary>
        /// The first step in an embedded template workflow. Creates a draft template that can then be further set up in the template 'edit' stage.
        /// </summary>
        /// <param name="draft">The draft.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">request</exception>
        public Task <NewTemplateResponse> CreateEmbeddedTemplateDraftAsync(NewEmbeddedTemplateDraft draft, CancellationToken cancellationToken)
        {
            if (draft == null)
            {
                throw new ArgumentNullException("request");
            }

            var content = new MultipartFormDataContent();

            content.AddTemplateDraft(_log, draft);

            return(PostAsync <NewTemplateResponse>($"{TemplateUrl}/create_embedded_draft", content, cancellationToken));
        }
 /// <summary>
 /// The first step in an embedded template workflow. Creates a draft template that can then be further set up in the template 'edit' stage.
 /// </summary>
 /// <param name="draft">The draft.</param>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException">request</exception>
 public Task <NewTemplateResponse> CreateEmbeddedTemplateDraftAsync(NewEmbeddedTemplateDraft draft)
 {
     return(CreateEmbeddedTemplateDraftAsync(draft, CancellationToken.None));
 }
Exemplo n.º 3
0
        public static void AddTemplateDraft(this MultipartFormDataContent content, IApiLog log, NewEmbeddedTemplateDraft draft)
        {
            if (draft.TestMode)
            {
                content.AddParameter(log, "test_mode", "1");
            }

            content.AddFiles(log, draft.Files);
            content.AddParameter(log, "title", draft.Title);
            content.AddParameter(log, "subject", draft.Subject);
            content.AddParameter(log, "message", draft.Message);

            int i = 0;

            foreach (var role in draft.SignerRoles)
            {
                content.AddParameter(log, $"signer_roles[{i}][name]", role.Name);
                content.AddParameter(log, $"signer_roles[{i}][order]", role.Order?.ToString());
            }
            i = 0;
            foreach (var role in draft.CcRoles)
            {
                content.AddParameter(log, $"cc_roles[{i}]", role);
            }

            content.AddParameter(log, "merge_fields", JsonConvert.SerializeObject(draft.MergeFields, HttpResponseExtensions.JsonSettings));

            if (draft.UsePreexistingFields)
            {
                content.AddParameter(log, "use_preexisting_fields", "1");
            }
            content.AddMetadata(log, draft.Metadata);
            content.AddParameter(log, "client_id", draft.ClientId);
        }