private void button1_Click(object sender, EventArgs e)
        {
            //Open a Word document
            Document document = new Document(@"..\..\..\..\..\..\Data\SampleB_2.docx");

            //Find the text that will be replaced
            TextSelection ts = document.FindString("Test", true, true);

            TextRange tr = ts.GetAsOneRange();

            //Get the paragraph
            Paragraph par = tr.OwnerParagraph;

            //Get the index of the text in the paragraph
            int index = par.ChildObjects.IndexOf(tr);

            //Create a new field
            MergeField field = new MergeField(document);

            field.FieldName = "MergeField";

            //Insert field at specific position
            par.ChildObjects.Insert(index, field);

            //Remove the text
            par.ChildObjects.Remove(tr);

            //Save to file
            document.SaveToFile("result.docx", FileFormat.Docx);
            //Launch result file
            WordDocViewer("result.docx");
        }
예제 #2
0
    private static Field smethod_1(string A_0, Document A_1)
    {
        int       num   = 9;
        Field     field = null;
        string    str   = A_0.Trim();
        FieldType type  = Class819.smethod_2(str);
        FieldType type2 = type;

        if (type2 <= FieldType.FieldMergeField)
        {
            if (type2 != FieldType.FieldIf)
            {
                if (type2 != FieldType.FieldMergeField)
                {
                    goto Label_005C;
                }
                field = new MergeField(A_1);
            }
            else
            {
                field = new IfField(A_1);
            }
            goto Label_0113;
        }
        switch (type2)
        {
        case FieldType.FieldFormTextInput:
        case FieldType.FieldFormCheckBox:
        case FieldType.FieldFormDropDown:
        {
            string str2 = str.ToUpper();
            if (str2 != null)
            {
                if ((str2 == BookmarkStart.b("笮琰欲愴縶眸欺格款", num)) || (str2 == BookmarkStart.b("椮縰愲破挶簸挺椼", num)))
                {
                    field = new TextFormField(A_1);
                }
                else if ((str2 == BookmarkStart.b("欮田缲簴搶洸", num)) || (str2 == BookmarkStart.b("椮縰愲破猶欸琺洼笾เᑂୄ", num)))
                {
                    field = new DropDownFormField(A_1);
                }
                else if ((str2 == BookmarkStart.b("氮礰瘲瘴簶笸琺攼", num)) || (str2 == BookmarkStart.b("椮縰愲破琶焸縺縼琾̀ూᵄ", num)))
                {
                    field = new CheckBoxFormField(A_1);
                }
            }
            (field as FormField).HasFFData = false;
            goto Label_0113;
        }
        }
Label_005C:
        field = new Field(A_1);
Label_0113:
        field.Code = field.Code + A_0;
        if (!(field is FormField))
        {
            field.Type = type;
        }
        return(field);
    }
        public string GetValueForMergeField(MergeField mergeField, NotificationApplication notification)
        {
            if (mergeField.FieldName.InnerTypeName.Equals("Number"))
            {
                return notification.NotificationNumber;
            }

            if (notification.NotificationType == NotificationType.Disposal)
            {
                if (mergeField.FieldName.InnerTypeName.Equals("IsDisposal"))
                {
                    return "☑";
                }

                if (mergeField.FieldName.InnerTypeName.Equals("IsRecovery"))
                {
                    return "☐";
                }
            }

            if (notification.NotificationType == NotificationType.Recovery)
            {
                if (mergeField.FieldName.InnerTypeName.Equals("IsRecovery"))
                {
                    return "☑";
                }

                if (mergeField.FieldName.InnerTypeName.Equals("IsDisposal"))
                {
                    return "☐";
                }
            }

            return String.Empty;
        }
예제 #4
0
        public static void Run()
        {
            //ExStart:RenameMergeFields
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_WorkingWithFields();

            // Specify your document name here.
            Document doc = new Document(dataDir + "RenameMergeFields.doc");

            // Select all field start nodes so we can find the merge fields.
            NodeCollection fieldStarts = doc.GetChildNodes(NodeType.FieldStart, true);

            foreach (FieldStart fieldStart in fieldStarts)
            {
                if (fieldStart.FieldType.Equals(FieldType.FieldMergeField))
                {
                    MergeField mergeField = new MergeField(fieldStart);
                    mergeField.Name = mergeField.Name + "_Renamed";
                }
            }

            dataDir = dataDir + "RenameMergeFields_out_.doc";
            doc.Save(dataDir);
            //ExEnd:RenameMergeFields
            Console.WriteLine("\nMerge fields rename successfully.\nFile saved at " + dataDir);
        }
예제 #5
0
        public string GetValueForMergeField(MergeField mergeField, NotificationApplication notification)
        {
            if (mergeField.FieldName.InnerTypeName.Equals("Number"))
            {
                return(notification.NotificationNumber);
            }

            if (notification.NotificationType == NotificationType.Disposal)
            {
                if (mergeField.FieldName.InnerTypeName.Equals("IsDisposal"))
                {
                    return("☑");
                }

                if (mergeField.FieldName.InnerTypeName.Equals("IsRecovery"))
                {
                    return("☐");
                }
            }

            if (notification.NotificationType == NotificationType.Recovery)
            {
                if (mergeField.FieldName.InnerTypeName.Equals("IsRecovery"))
                {
                    return("☑");
                }

                if (mergeField.FieldName.InnerTypeName.Equals("IsDisposal"))
                {
                    return("☐");
                }
            }

            return(String.Empty);
        }
예제 #6
0
        /// <summary>
        /// Add a new list merge field
        /// <param name="mergeField">The merge field to add.</param>
        /// <param name="list_id">Unique id for the list</param>
        /// </summary>
        internal async Task <dynamic> AddMergeFieldAsync(MergeField mergeField, string list_id)
        {
            string endpoint = Authenticate.EndPoint(TargetTypes.lists, SubTargetType.merge_fields,
                                                    SubTargetType.not_applicable, list_id);

            return(await BaseOperation.PostAsync <MergeField>(endpoint, mergeField));
        }
        private void GetFields(ServerTextControl textControl)
        {
            var fields = new List <MergeField>();

            foreach (ApplicationField appFld in textControl.ApplicationFields)
            {
                int nFldEnd = appFld.Start + appFld.Length;
                if ((appFld.Start >= StartMarker.Start) && (nFldEnd <= EndMarker.Start))
                {
                    MergeField adap = MakeAdapterFrom(appFld);
                    if (adap != null)
                    {
                        fields.Add(adap);
                    }
                }
            }

            foreach (MergeField fld in fields)
            {
                if (!IsInside(fld.ApplicationField, _children))
                {
                    _fields.Add(fld);
                }
            }
        }
예제 #8
0
    private static Field smethod_7(string A_0, Document A_1)
    {
        int       num   = 12;
        Field     field = null;
        string    str   = A_0.Trim();
        FieldType type  = Class819.smethod_2(str);
        FieldType type2 = type;

        if (type2 <= FieldType.FieldMergeField)
        {
            if (type2 != FieldType.FieldIf)
            {
                if (type2 != FieldType.FieldMergeField)
                {
                    goto Label_005C;
                }
                field = new MergeField(A_1);
            }
            else
            {
                field = new IfField(A_1);
            }
            goto Label_0113;
        }
        switch (type2)
        {
        case FieldType.FieldFormTextInput:
        case FieldType.FieldFormCheckBox:
        case FieldType.FieldFormDropDown:
        {
            string str2 = str.ToUpper();
            if (str2 != null)
            {
                if ((str2 == BookmarkStart.b("昱焳渵氷猹爻渽ᔿᙁ", num)) || (str2 == BookmarkStart.b("琱笳搵男渹礻昽ᐿ", num)))
                {
                    field = new TextFormField(A_1);
                }
                else if ((str2 == BookmarkStart.b("瘱瀳稵焷椹栻", num)) || (str2 == BookmarkStart.b("琱笳搵男縹渻焽ဿفୃᅅه", num)))
                {
                    field = new DropDownFormField(A_1);
                }
                else if ((str2 == BookmarkStart.b("焱簳猵笷焹縻焽ᠿ", num)) || (str2 == BookmarkStart.b("琱笳搵男礹琻笽̿ुكॅ၇", num)))
                {
                    field = new CheckBoxFormField(A_1);
                }
            }
            (field as FormField).HasFFData = false;
            goto Label_0113;
        }
        }
Label_005C:
        field = new Field(A_1);
Label_0113:
        field.Code = field.Code + A_0;
        if (!(field is FormField))
        {
            field.Type = type;
        }
        return(field);
    }
예제 #9
0
        private Table FindTable(MergeField firstMergeFieldInTable)
        {
            var fieldRun       = firstMergeFieldInTable.Run;
            var tableAncestors = fieldRun.Ancestors <Table>();

            return(tableAncestors.First());
        }
        public static void Run()
        {
            // ExStart:RenameMergeFields
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_WorkingWithFields();

            // Specify your document name here.
            Document doc = new Document(dataDir + "RenameMergeFields.doc");

            // Select all field start nodes so we can find the merge fields.
            NodeCollection fieldStarts = doc.GetChildNodes(NodeType.FieldStart, true);
            foreach (FieldStart fieldStart in fieldStarts)
            {
                if (fieldStart.FieldType.Equals(FieldType.FieldMergeField))
                {
                    MergeField mergeField = new MergeField(fieldStart);
                    mergeField.Name = mergeField.Name + "_Renamed";
                }
            }

            dataDir = dataDir + "RenameMergeFields_out.doc";
            doc.Save(dataDir);
            // ExEnd:RenameMergeFields
            Console.WriteLine("\nMerge fields rename successfully.\nFile saved at " + dataDir);
        }
예제 #11
0
        protected void RemoveSiteOfGenerationTable()
        {
            MergeField f = AnnexMergeFields.Single(
                mf => mf.FieldName.OuterTypeName.Equals("SiteOfExport", StringComparison.InvariantCultureIgnoreCase) &&
                mf.FieldName.InnerTypeName.Equals("RegistrationNumber",
                                                  StringComparison.InvariantCultureIgnoreCase));

            f.Run.Ancestors <Table>().First().Remove();
        }
        public ActionResult GetList(string listId, MergeField mergeField, int? mergeId = null)
        {
            Task<MergeField> result = null;

            if (listId != null && mergeField != null)
                result = mailChimpManager.WebHooks.UpdateAsync(listId, mergeField, mergeId);

            return View(result.Result);
        }
예제 #13
0
        public ActionResult AddMergeFields(string listId, MergeField member)
        {
            Task <MergeField> result = null;

            if (listId != null && member != null)
            {
                result = mailChimpManager.MergeFields.AddAsync(listId, member);
            }

            return(View(result.Result));
        }
예제 #14
0
        /// <summary>
        /// Update a list merge field
        /// <param name="mergeField">Merge field to update</param>
        /// <param name="list_id">Unique id for the list</param>
        /// </summary>
        internal async Task <dynamic> UpdateMergeField(MergeField mergeField, string list_id)
        {
            if (mergeField.merge_id < 0)
            {
                throw (new Exception("Merge Field ID must not be less than zero."));
            }

            string endpoint = Authenticate.EndPoint(TargetTypes.lists, SubTargetType.merge_fields, SubTargetType.not_applicable, list_id, Convert.ToString(mergeField.merge_id));

            return(await BaseOperation.PatchAsync <MergeField>(endpoint, mergeField));
        }
예제 #15
0
        public ActionResult AddMergeFields(string listId, MergeField mergeField, int?mergeId = null)
        {
            Task <MergeField> result = null;

            if (listId != null && mergeField != null)
            {
                result = mailChimpManager.MergeFields.UpdateAsync(listId, mergeField, mergeId);
            }

            return(View(result.Result));
        }
예제 #16
0
        /// <summary>
        /// Updates a specific field with data from the object
        /// </summary>
        /// <param name="client">The object you want the data to come from</param>
        /// <param name="field">The field to be updated</param>
        /// <param name="properties">A list of the properties of the object, if null it will ascertain</param>
        public static void UpdateMergeField(object client, Field field, List <PropertyInfo> properties = null)
        {
            if (properties == null)
            {
                properties = client.GetType().GetProperties().ToList();
            }
            MergeField mergeField = GetMergeFieldData(field);

            if (mergeField.Name != "")
            {
                foreach (var prop in properties)
                {
                    if (prop.Name.ToUpper() == mergeField.Name.ToUpper())
                    {
                        try
                        {
                            field.Select();
                            if (prop.PropertyType.Name == "Decimal")
                            {
                                decimal value = Decimal.Parse(prop.GetValue(client, null).ToString());
                                app.Selection.TypeText(String.Format("{0:0.00}", value));
                            }
                            else if (mergeField.Type.ToUpper() == "IMAGE")
                            {
                                app.Selection.TypeText(" ");
                                string imageLocation = prop.GetValue(client, null).ToString();
                                Range  range         = app.Selection.Range;
                                Microsoft.Office.Interop.Word.InlineShape shape = range.InlineShapes.AddPicture(imageLocation);
                                shape.LockAspectRatio = MsoTriState.msoTrue;
                                if (mergeField.Parameters.TryGetValue("height", out string sHeight))
                                {
                                    try
                                    {
                                        shape.Height = float.Parse(sHeight);
                                    }
                                    catch
                                    {
                                        throw new Exception("Height was not an float value");
                                    }
                                }
                            }
                            else
                            {
                                app.Selection.TypeText(prop.GetValue(client, null).ToString());
                            }
                        }
                        catch
                        {
                        }
                    }
                }
            }
        }
예제 #17
0
        private static string GetValueForMergeField(MergeField mergeField, object viewModel, PropertyInfo[] properties)
        {
            foreach (var propertyInfo in properties)
            {
                if (propertyInfo.Name.Equals(mergeField.FieldName.InnerTypeName, StringComparison.InvariantCultureIgnoreCase))
                {
                    return(propertyInfo.GetValue(viewModel).ToString());
                }
            }

            return(string.Empty);
        }
        private static string GetValueForMergeField(MergeField mergeField, object viewModel, PropertyInfo[] properties)
        {
            foreach (var propertyInfo in properties)
            {
                if (propertyInfo.Name.Equals(mergeField.FieldName.InnerTypeName, StringComparison.InvariantCultureIgnoreCase))
                {
                    return propertyInfo.GetValue(viewModel).ToString();
                }
            }

            return string.Empty;
        }
예제 #19
0
        /// <summary>
        /// The add async.
        /// </summary>
        /// <param name="listId">
        /// The list id.
        /// </param>
        /// <param name="member">
        /// The member.
        /// </param>
        /// <returns>
        /// The <see cref="Task"/>.
        /// </returns>
        public async Task <MergeField> AddAsync(string listId, MergeField member)
        {
            using (var client = this.CreateMailClient(string.Format(BaseUrl, listId)))
            {
                var response = await client.PostAsJsonAsync(string.Empty, member).ConfigureAwait(false);

                await response.EnsureSuccessMailChimpAsync().ConfigureAwait(false);

                var mergeResponse = await response.Content.ReadAsAsync <MergeField>().ConfigureAwait(false);

                return(mergeResponse);
            }
        }
예제 #20
0
        /// <summary>
        /// The update async.
        /// </summary>
        /// <param name="listId">
        /// The list id.
        /// </param>
        /// <param name="mergeField">
        /// The merge field.
        /// </param>
        /// <param name="mergeId">
        /// The merge id.
        /// </param>
        /// <returns>
        /// The <see cref="Task"/>.
        /// </returns>
        public async Task <MergeField> UpdateAsync(string listId, MergeField mergeField, int?mergeId = null)
        {
            using (var client = this.CreateMailClient(string.Format(BaseUrl + "/", listId)))
            {
                var response = await client.PatchAsJsonAsync((mergeId ?? mergeField.MergeId).ToString(), mergeField).ConfigureAwait(false);

                await response.EnsureSuccessMailChimpAsync().ConfigureAwait(false);

                var mergeResponse = await response.Content.ReadAsAsync <MergeField>().ConfigureAwait(false);

                return(mergeResponse);
            }
        }
예제 #21
0
    private static void smethod_12(Class857 A_0, Paragraph A_1, FieldType A_2, string A_3, string A_4, CharacterFormat A_5, Style A_6)
    {
        Field field;
        int   num = 0x13;

        if (A_5 == null)
        {
            A_5 = A_1.BreakCharacterFormat;
        }
        if (A_2 == FieldType.FieldMergeField)
        {
            field = new MergeField(A_0.method_9());
        }
        else
        {
            field = new Field(A_0.method_9());
        }
        string str = A_3.Trim();

        if (str.EndsWith(BookmarkStart.b("攸ᄺ", num)))
        {
            A_3 = str.Substring(0, str.Length - 2);
        }
        field.Code = A_3;
        if (A_2 == FieldType.FieldMergeField)
        {
            field.ParseFieldCode(field.Code);
        }
        field.ApplyCharacterFormat(A_5);
        field.Type = A_2;
        A_1.method_13(field);
        if (A_2 != FieldType.FieldMergeField)
        {
            FieldMark mark = new FieldMark(A_0.method_9(), FieldMarkType.FieldSeparator);
            mark.ApplyCharacterFormat(A_5);
            TextRange range = new TextRange(A_0.method_9())
            {
                Text = A_4
            };
            range.ApplyCharacterFormat(A_5);
            FieldMark mark2 = new FieldMark(A_0.method_9(), FieldMarkType.FieldEnd);
            mark2.ApplyCharacterFormat(A_5);
            field.Separator = mark;
            field.End       = mark2;
            A_1.method_13(mark);
            A_1.method_13(range);
            A_1.method_13(mark2);
        }
        field.UpdateFieldCode(field.Code);
    }
예제 #22
0
    private void imethod_15(CharacterFormat A_0, FieldType A_1)
    {
        Field     field;
        FieldType type = A_1;

        if (type <= FieldType.FieldMergeField)
        {
            if (type != FieldType.FieldIf)
            {
                if (type != FieldType.FieldMergeField)
                {
                    goto Label_0044;
                }
                field = new MergeField(this.document_0);
            }
            else
            {
                field = new IfField(this.document_0);
            }
            goto Label_007A;
        }
        switch (type)
        {
        case FieldType.FieldFormTextInput:
            field = new TextFormField(this.document_0);
            goto Label_007A;

        case FieldType.FieldFormCheckBox:
            field = new CheckBoxFormField(this.document_0);
            goto Label_007A;

        case FieldType.FieldFormDropDown:
            field = new DropDownFormField(this.document_0);
            goto Label_007A;
        }
Label_0044:
        field = new Field(this.document_0);
Label_007A:
        this.fieldCharType_0  = FieldCharType.Begin;
        field.Type            = A_1;
        field.CharacterFormat = (CharacterFormat)A_0.Clone();
        this.documentObject_0.method_13(field);
        if (A_1 == FieldType.FieldTOC)
        {
            (this.documentObject_0 as Paragraph).IsTOCPara = true;
        }
        this.stack_0.Push(field);
    }
        public static void BindCorrespondingField(MergeField mergeField, object model, PropertyInfo[] properties)
        {
            mergeField.RemoveCurrentContents();

            string text;
            if (mergeField.FieldType == MergeFieldType.Checkbox)
            {
                text = GetCheckboxForMergeField(mergeField, model, properties);
            }
            else
            {
                text = GetValueForMergeField(mergeField, model, properties);
            }

            mergeField.SetText(text);
        }
예제 #24
0
        private static string GetCheckboxForMergeField(MergeField mergeField, object viewModel, PropertyInfo[] properties)
        {
            foreach (var propertyInfo in properties)
            {
                if (propertyInfo.Name.Equals(mergeField.FieldName.InnerTypeName, StringComparison.InvariantCultureIgnoreCase))
                {
                    object value = propertyInfo.GetValue(viewModel);

                    if (value is bool)
                    {
                        return(Convert.ToBoolean(value) ? CheckboxChecked : CheckboxUnchecked);
                    }
                }
            }

            return(string.Empty);
        }
예제 #25
0
        public static void BindCorrespondingField(MergeField mergeField, object model, PropertyInfo[] properties)
        {
            mergeField.RemoveCurrentContents();

            string text;

            if (mergeField.FieldType == MergeFieldType.Checkbox)
            {
                text = GetCheckboxForMergeField(mergeField, model, properties);
            }
            else
            {
                text = GetValueForMergeField(mergeField, model, properties);
            }

            mergeField.SetText(text);
        }
예제 #26
0
        /// <summary>
        /// Ascertains the "name" part of the field stripping out extraneous data
        /// </summary>
        /// <param name="fieldText"></param>
        /// <returns></returns>
        private static MergeField GetMergeFieldData(Field field)
        {
            string fieldName    = "";
            Range  rngFieldCode = field.Code;
            String fieldText    = rngFieldCode.Text;

            if (fieldText.Contains(" MERGEFIELD"))
            {
                Int32 endMerge = fieldText.IndexOf("\\");
                if (endMerge > 0)
                {
                    Int32 fieldNameLength = fieldText.Length - endMerge;
                    fieldName = fieldText.Substring(11, endMerge - 11);
                }
                else
                {
                    fieldName = fieldText.Substring(11);
                }
                fieldName = fieldName.Trim();
            }
            if (fieldName.Contains("@"))
            {
                MergeField mergeField = new MergeField();
                string[]   parts      = fieldName.Split('@');
                mergeField.Name = parts[0].Trim();
                string[] paramaters = parts[1].Split(';');
                foreach (string p in paramaters)
                {
                    string[] details = p.Split('=');
                    mergeField.Parameters.Add(details[0].Trim().ToLower(), details[1].Trim().ToLower());
                    if (details[0].Trim().ToUpper() == "TYPE")
                    {
                        mergeField.Type = details[1].Trim();
                    }
                }
                return(mergeField);
            }
            else
            {
                MergeField mergeField = new MergeField()
                {
                    Name = fieldName
                };
                return(mergeField);
            }
        }
        private static string GetCheckboxForMergeField(MergeField mergeField, object viewModel, PropertyInfo[] properties)
        {
            foreach (var propertyInfo in properties)
            {
                if (propertyInfo.Name.Equals(mergeField.FieldName.InnerTypeName, StringComparison.InvariantCultureIgnoreCase))
                {
                    object value = propertyInfo.GetValue(viewModel);

                    if (value is bool)
                    {
                        return Convert.ToBoolean(value) ? CheckboxChecked : CheckboxUnchecked;
                    }
                }
            }

            return string.Empty;
        }
예제 #28
0
        void editor_CommandExecuting(object sender, Telerik.Windows.Documents.RichTextBoxCommands.CommandExecutingEventArgs e)
        {
            if (e.Command is InsertFieldCommand && e.CommandParameter is MergeField)
            {
                string fieldName = (e.CommandParameter as MergeField).PropertyPath;

                if ((e.CommandParameter as MergeField).PropertyPath.ToUpper() == "RECIPIENTPHOTO")
                {
                    e.Cancel = true;

                    MergeField mf = new MergeField();
                    mf.PropertyPath = fieldName;
                    IncludePictureField picField = new IncludePictureField();
                    picField.SetPropertyValue(IncludePictureField.ImageUriProperty, mf);
                    this.editor.InsertField(picField);
                }
            }
        }
예제 #29
0
        void editor_CommandExecuting(object sender, Telerik.Windows.Documents.RichTextBoxCommands.CommandExecutingEventArgs e)
        {
            if (e.Command is InsertFieldCommand && e.CommandParameter is MergeField)
            {
                string fieldName = (e.CommandParameter as MergeField).PropertyPath;

                if ((e.CommandParameter as MergeField).PropertyPath.ToUpper() == "RECIPIENTPHOTO")
                {
                    e.Cancel = true;

                    MergeField mf = new MergeField();
                    mf.PropertyPath = fieldName;
                    IncludePictureField picField = new IncludePictureField();
                    picField.SetPropertyValue(IncludePictureField.ImageUriProperty, mf);
                    this.editor.InsertField(picField);
                }
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //Open a Word document
            Document document = new Document(@"..\..\..\..\..\..\Data\SampleB_2.docx");

            //Get the first section
            Section section = document.Sections[0];

            Paragraph par = section.AddParagraph();

            //Add merge field in the paragraph
            MergeField field
                = par.AppendField("MyFieldName", FieldType.FieldMergeField) as MergeField;

            //Save to file
            document.SaveToFile("result.docx", FileFormat.Docx);
            //Launch result file
            WordDocViewer("result.docx");
        }
예제 #31
0
    private static Field smethod_3(string A_0, Document A_1)
    {
        Field     field = null;
        FieldType type  = Class819.smethod_2(A_0.Trim());
        FieldType type2 = type;

        if (type2 <= FieldType.FieldMergeField)
        {
            if (type2 != FieldType.FieldIf)
            {
                if (type2 != FieldType.FieldMergeField)
                {
                    goto Label_004A;
                }
                field = new MergeField(A_1);
            }
            else
            {
                field = new IfField(A_1);
            }
            goto Label_0051;
        }
        switch (type2)
        {
        case FieldType.FieldFormTextInput:
        case FieldType.FieldFormCheckBox:
        case FieldType.FieldFormDropDown:
            goto Label_0051;
        }
Label_004A:
        field = new Field(A_1);
Label_0051:
        field.Code = field.Code + A_0;
        if (!(field is FormField))
        {
            field.Type = type;
        }
        return(field);
    }
예제 #32
0
        void AddPageBreakForMergeField(IMergeField mergeField)
        {
            //Find position of needing to add page break
            bool       foundGroupStart = false;
            Paragraph  paramgraph      = mergeField.PreviousSibling.Owner as Paragraph;
            MergeField merageField     = null;

            while (!foundGroupStart)
            {
                paramgraph = paramgraph.PreviousSibling as Paragraph;
                for (int i = 0; i < paramgraph.Items.Count; i++)
                {
                    merageField = paramgraph.Items[i] as MergeField;
                    if ((merageField != null) && (merageField.Prefix == "GroupStart"))
                    {
                        foundGroupStart = true;
                        break;
                    }
                }
            }

            paramgraph.AppendBreak(BreakType.PageBreak);
        }
        public void RenameMergeFields()
        {
            //ExStart:RenameMergeFields
            Document        doc     = new Document();
            DocumentBuilder builder = new DocumentBuilder(doc);

            builder.InsertField(@"MERGEFIELD MyMergeField1 \* MERGEFORMAT");
            builder.InsertField(@"MERGEFIELD MyMergeField2 \* MERGEFORMAT");

            // Select all field start nodes so we can find the merge fields.
            NodeCollection fieldStarts = doc.GetChildNodes(NodeType.FieldStart, true);

            foreach (FieldStart fieldStart in fieldStarts)
            {
                if (fieldStart.FieldType == FieldType.FieldMergeField)
                {
                    MergeField mergeField = new MergeField(fieldStart);
                    mergeField.Name += "_Renamed";
                }
            }

            doc.Save(ArtifactsDir + "WorkingWithFields.RenameMergeFields.doc");
            //ExEnd:RenameMergeFields
        }
        /******************************************************************************
         * Sends Document from API and returns response as XDocument
         *
         * guid - RightSignature's Dcoument GUID
         * 		ex. "AKJ8CUID2D34TFS"
         * roles - Dictionary of RoleUser structs with the Key being the Role Name in the Document:
         * 		ex. Dictionary<string, string> roles = new Dictionary;
         * 		tags.Add('Client', RoleUser("Tim Tam Timmy", "*****@*****.**", true))
         * 		tags.Add('CoSigner', RoleUser("Jim Jam Jammy", "*****@*****.**", false))
         * mergeFields - Array of MergeField structs the name must map to MergeField names in the Document.
         * 		ex. [MergeField('Address', "123 Maple Lane", false)]
         * tags (optional) - Dictionary tag names and values to associate with Document.
         * 		ex. Dictionary<string, string> tags = new Dictionary;
         * 		tags.Add('test', null)
         * 		tags.Add('user id', '123')
         * description (Optional) - description of document for signer to see
         * callbackURL (Optional) - string of URL for RightSignature to POST document details to after Template gets created, viewed, and completed (all parties have signed).
         *      Tip: add a unique parameter in the URL to distinguish each callback, like the template_id.
         *      NULL will use the default callback url set in the RightSignature Account settings page (https://rightsignature.com/oauth_clients).
         *      ex. 'http://mysite/document_callback.php?template_id=123'
         * expires_in (Optional) - integer of days to expire document, allowed values are 2, 5, 15, or 30.
         ******************************************************************************/
        public XDocument SendDocument(string guid, string subject, Dictionary<string, RoleUser> roles, MergeField[] mergeFields, Dictionary<string, string> tags, string description, string callbackURL, int? expires_in)
        {
            string urlPath = "/api/templates.xml";
            string requestPath;
            List<string> queryParams = new List<string>();
            XElement rootNode = new XElement("template");
            XDocument xml = new XDocument(rootNode);

            // Creates the xml body to send to API
            rootNode.Add(new XElement("guid", guid));
            rootNode.Add(new XElement("subject", subject));
            rootNode.Add(new XElement("action", "send"));               // Action can be 'send' or 'prefill'
            if (description != null)
                rootNode.Add(new XElement("description", description));
            if (expires_in != null)
                rootNode.Add(new XElement("expires_in", expires_in.ToString()));        // Must be 2, 5, 15, or 30. Otherwise, API will default it to 30 days

            // Create Roles XML
            XElement rolesNode = new XElement("roles");
            foreach (KeyValuePair<string, RoleUser> role in roles) {
                XElement roleNode = new XElement("role");
                roleNode.SetAttributeValue("role_name", role.Key);
                roleNode.Add(new XElement("name", role.Value.name));
                roleNode.Add(new XElement("email", role.Value.email));
                roleNode.Add(new XElement("locked", role.Value.locked.ToString().ToLower()));
                rolesNode.Add(roleNode);
            }
            rootNode.Add(rolesNode);

            // Create mergefields XML
            if (mergeFields != null)
            {
                XElement mfsNode = new XElement("merge_fields");
                foreach (MergeField mergeField in mergeFields)
                {
                    XElement mfNode = new XElement("merge_field");
                    mfNode.SetAttributeValue("merge_field_name", mergeField.name);
                    mfNode.Add(new XElement("value", mergeField.value));
                    mfNode.Add(new XElement("locked", mergeField.locked.ToString().ToLower()));
                    mfsNode.Add(mfNode);
                }
                rootNode.Add(mfsNode);
            }

            if (tags != null)
                rootNode.Add(CreateTagsXML(tags));
            if (callbackURL != null)
                rootNode.Add(new XElement("callback_location", callbackURL));

            RightSignature.RightSignatureAPI.log("Generated xml:\n~~~~~~~~~~~~\n" + xml.ToString() + "\n~~~~~~~~~~~~\n");

            // Creates URL path with query parameters in it
            requestPath = CreateRequestPath(urlPath, queryParams);

            // Creates HTTP Request and parses it as XDocument
            return ParseResponseAsXML(HttpRequest(requestPath, "POST", xml.ToString()));
        }
 private Table FindAnnexTable(MergeField firstMergeFieldInTable)
 {
     return firstMergeFieldInTable.Run.Ancestors<Table>().First();
 }
예제 #36
0
 private Table FindMultipleCarriersTable(MergeField firstMergeFieldInTable)
 {
     return(firstMergeFieldInTable.Run.Ancestors <Table>().First());
 }
예제 #37
0
 /// <summary>
 /// Creates a merge field adapter.
 /// </summary>
 public static MergeField <RowType> CreateFieldAdapter <RowType, AdaptedFieldRowType>(MergeField <AdaptedFieldRowType> adaptedField,
                                                                                      MergeFieldAdapterImplementation <RowType, AdaptedFieldRowType>
                                                                                      implementation) where RowType : class where AdaptedFieldRowType : class
 {
     return(new MergeFieldAdapter <RowType, AdaptedFieldRowType>(adaptedField, implementation));
 }
예제 #38
0
 protected Table FindMultipleProducersTable(MergeField firstMergeFieldInTable)
 {
     return firstMergeFieldInTable.Run.Ancestors<Table>().First();
 }
예제 #39
0
 protected Table FindTable(MergeField firstMergeFieldInTable)
 {
     var fieldRun = firstMergeFieldInTable.Run;
     var tableAncestors = fieldRun.Ancestors<Table>();
     return tableAncestors.First();
 }
 private void InsertPictureField_Click(object sender, RoutedEventArgs e)
 {
     MergeField mergeField = new MergeField();
     mergeField.PropertyPath = "RecipientPhoto";
     IncludePictureField pictureField = new IncludePictureField();
     pictureField.SetPropertyValue(IncludePictureField.ImageUriProperty, mergeField);
     this.radRichTextBox.InsertField(pictureField);
 }
 private Table FindMultipleCarriersTable(MergeField firstMergeFieldInTable)
 {
     return firstMergeFieldInTable.Run.Ancestors<Table>().First();
 }
 internal MergeFieldAdapter(MergeField <AdaptedFieldRowType> adaptedField, MergeFieldAdapterImplementation <RowType, AdaptedFieldRowType> implementation)
 {
     this.adaptedField   = adaptedField;
     this.implementation = implementation;
 }
        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count == 0)
                return;

            bDirtyFlag = true;

            // get the current field and change the name and text based on the selection
            MergeField field = new MergeField(listApplicationFields[currentApplicationField]);
            field.Name = listView1.SelectedItems[0].Text;
            field.Text = listView1.SelectedItems[0].Text;

            EnableNavigateButtons();
            HighlightField();
        }