// This code is part of GrapeCity Documents for Word samples.
// Copyright (c) GrapeCity, Inc. All rights reserved.
using System;
using System.IO;
using System.Drawing;
using System.Linq;
using GrapeCity.Documents.Word;

namespace GcWordWeb.Samples
    // This sample shows how to fill a template document with data
    // using the RangeBase.Replace extension method provided by 
    // the RangeBaseFindReplaceExtensions class.
    // The template document is similar to the document generated by
    // the ProcurementLetter sample, but the data values in that document
    // were changed to template placeholders (in the form '__%<name>%__')
    // using MS Word. In the sample, we use the text replace functionality
    // to change the placeholders back to original data. The resulting
    // document can be viewed by running the ProcurementLetterTpl sample.
    // In a real life application, the same approach can be used for example
    // to go over a record set, generating a document for each record.
    public class ReplaceInTemplate
        public GcWordDocument CreateDocx()
            // Placeholders and sample data:
            (string placeholder, string data)[] placeholderData =
                ("__%c_name%__", "Nancy Davolio"),
                ("__%c_title%__", "Chief Procurement Officer"),
                ("__%c_phone%__", "555-543-5432"),
                ("__%c_url%__", ""),
                ("__%c_address%__", "5432 Street West, Townsvilla, State 54321"),
                ("__%to_name%__", "Mark"),
                ("__%dlr_name%__", "AMA Ltd"),
                ("__%order_no%__", "8393"),

            // Load the document:
            var doc = new GcWordDocument();
            doc.Load(Path.Combine("Resources", "WordDocs", "ProcurementLetterTpl.docx"));

            // Replace all placeholders in the body with sample data values:
            foreach ((string placeholder, string data) pair in placeholderData)

            // Done:
            return doc;