Exemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SampleDocumentWithTableGenerator"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 public ChangesReportGenerator(DocumentGenerationInfo generationInfo, String foundryName, String fromDate, String toDate)
     : base(generationInfo)
 {
     this.foundryName = foundryName;
     this.fromDate = fromDate;
     this.toDate = toDate;
 }
Exemplo n.º 2
0
        private static DocumentGenerationInfo GetDocumentGenerationInfo(string docType, string docVersion, SPListItem item, object dataContext, string fileName, bool useDataBoundControls)
        {
            DocumentGenerationInfo generationInfo = new DocumentGenerationInfo();
            generationInfo.Metadata = new DocumentMetadata() { DocumentType = docType, DocumentVersion = docVersion };
            generationInfo.DataContext = dataContext;
            //generationInfo.TemplateData = File.ReadAllBytes(Path.Combine("Sample Templates", fileName));

            if (UTIL.Utilities.Utility.IsAbsoluteUri(fileName))
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite site = new SPSite(fileName))
                    {
                        using (SPWeb web = site.OpenWeb())
                        {
                            SPFile file = web.GetFile(fileName);
                            generationInfo.TemplateData = file.OpenBinary();
                        }
                    }
                });
            }
            else
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite site = new SPSite(item.Web.Site.ID))
                    {
                        using (SPWeb web = site.OpenWeb(item.Web.ID))
                        {
                            SPFile file = web.GetFile(fileName);
                            generationInfo.TemplateData = file.OpenBinary();
                        }
                    }
                });
            }

            generationInfo.IsDataBoundControls = useDataBoundControls;

            return generationInfo;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Generates the document.
        /// </summary>
        /// <param name="documentStream">The document stream.</param>
        /// <returns></returns>
        public static byte[] GenerateDocument(byte[] documentStream)
        {
            // Generate Content Controls using Xml
            Dictionary<string, ContentControlXmlMetadata> placeHolderTagToContentControlXmlMetadataCollection = new Dictionary<string, ContentControlXmlMetadata>();

            // Handle ignore placeholders
            placeHolderTagToContentControlXmlMetadataCollection.Add(PlaceholderIgnoreA, new ContentControlXmlMetadata() { PlaceHolderName = PlaceholderIgnoreA, Type = PlaceHolderType.Ignore });
            placeHolderTagToContentControlXmlMetadataCollection.Add(PlaceholderIgnoreB, new ContentControlXmlMetadata() { PlaceHolderName = PlaceholderIgnoreA, Type = PlaceHolderType.Ignore });

            // Handle container placeholders
            placeHolderTagToContentControlXmlMetadataCollection.Add(PlaceholderContainerA, new ContentControlXmlMetadata() { PlaceHolderName = PlaceholderContainerA, Type = PlaceHolderType.Container, ControlTagXPath = "./Id[1]" });

            // Handle recursive placeholders
            placeHolderTagToContentControlXmlMetadataCollection.Add(PlaceholderRecursiveA, new ContentControlXmlMetadata() { PlaceHolderName = PlaceholderRecursiveA, Type = PlaceHolderType.Recursive, ControlValueXPath = "./vendors[1]" });
            placeHolderTagToContentControlXmlMetadataCollection.Add(PlaceholderRecursiveB, new ContentControlXmlMetadata() { PlaceHolderName = PlaceholderRecursiveB, Type = PlaceHolderType.Recursive, ControlValueXPath = "./items[1]" });

            // Handle non recursive placeholders
            placeHolderTagToContentControlXmlMetadataCollection.Add(PlaceholderNonRecursiveA, new ContentControlXmlMetadata() { PlaceHolderName = PlaceholderNonRecursiveA, Type = PlaceHolderType.NonRecursive, ControlTagXPath = "./Id[1]", ControlValueXPath = "/ns0:DocumentRootNode[1]/ns0:DataBoundControlsDataStore[1]/ns0:Data[1]/Order[1]/vendors[1]/Vendor[{0}]/Name[1]" });
            placeHolderTagToContentControlXmlMetadataCollection.Add(PlaceholderNonRecursiveB, new ContentControlXmlMetadata() { PlaceHolderName = PlaceholderNonRecursiveB, Type = PlaceHolderType.NonRecursive, ControlTagXPath = "./Id[1]", ControlValueXPath = "/ns0:DocumentRootNode[1]/ns0:DataBoundControlsDataStore[1]/ns0:Data[1]/Order[1]/items[1]/Item[{0}]/Name[1]" });
            placeHolderTagToContentControlXmlMetadataCollection.Add(PlaceholderNonRecursiveC, new ContentControlXmlMetadata() { PlaceHolderName = PlaceholderNonRecursiveC, Type = PlaceHolderType.NonRecursive, ControlTagXPath = "./Id[1]", ControlValueXPath = "/ns0:DocumentRootNode[1]/ns0:DataBoundControlsDataStore[1]/ns0:Data[1]/Order[1]/Name[1]" });
            placeHolderTagToContentControlXmlMetadataCollection.Add(PlaceholderNonRecursiveD, new ContentControlXmlMetadata() { PlaceHolderName = PlaceholderNonRecursiveD, Type = PlaceHolderType.NonRecursive, ControlTagXPath = "./Id[1]", ControlValueXPath = "/ns0:DocumentRootNode[1]/ns0:DataBoundControlsDataStore[1]/ns0:Data[1]/Order[1]/Description[1]" });

            // Test document generation from template("Test_Template - 1.docx")
            string dataAsXml = "<Order><vendors><Vendor><Id>469c8927-6a68-4f16-b267-acaf38fc2d39</Id><Name>Vendor 1</Name></Vendor><Vendor><Id>48e1f6d0-5060-4725-ae45-51e81b2e89d6</Id><Name>Vendor 2</Name></Vendor><Vendor><Id>b59d289f-93b3-4d03-81f0-e6f49657e611</Id><Name>Vendor 111</Name></Vendor><Vendor><Id>165d4fe3-d445-47ac-b40e-3611a40c4845</Id><Name>Vendor 222</Name></Vendor><Vendor><Id>6d950039-075b-47ea-96f0-6088feca5c9b</Id><Name>Vendor 113</Name></Vendor><Vendor><Id>fe31e8f1-0927-4780-8843-0e166977a505</Id><Name>Vendor 224</Name></Vendor><Vendor><Id>a9edafc3-9117-4499-8820-806ec59a0bc9</Id><Name>Vendor 115</Name></Vendor><Vendor><Id>7eca4fc3-5218-4090-a1cf-10db411b668e</Id><Name>Vendor 226</Name></Vendor><Vendor><Id>8d491555-da72-41a3-ad77-7c001e93b052</Id><Name>Vendor 117</Name></Vendor><Vendor><Id>08654a92-601c-4c38-9218-00a54bc44ec6</Id><Name>Vendor 228</Name></Vendor></vendors><items><Item><Id>81474c98-0094-499d-88d7-678f40581b50</Id><Name>Item 1</Name></Item><Item><Id>60a5d7bc-304a-49fa-be4a-684f91adf6c5</Id><Name>Item 2</Name></Item><Item><Id>bc9d5b75-3861-4bf8-bb26-35689e6b557a</Id><Name>Item 11</Name></Item><Item><Id>72fafb82-179d-4115-a4e7-84bf1a62049d</Id><Name>Item 21</Name></Item></items><Id>736d79d9-0689-419e-b27a-1867f613fd80</Id><Name>Test Order</Name><Description>Test Order Description</Description></Order>";
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(dataAsXml);

            DocumentGenerationInfo generationInfo = new DocumentGenerationInfo();
            generationInfo.Metadata = new DocumentMetadata() { DocumentType = "SampleDocumentGeneratorUsingXml", DocumentVersion = "1.0" };
            generationInfo.DataContext = xmlDoc.DocumentElement;
            generationInfo.TemplateData = documentStream;
            generationInfo.IsDataBoundControls = true;

            SampleDocumentGeneratorUsingXmlAndDataBinding docGen = new SampleDocumentGeneratorUsingXmlAndDataBinding(generationInfo, placeHolderTagToContentControlXmlMetadataCollection, true);

            return docGen.GenerateDocument();
        }
Exemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SampleDocumentWithTableGenerator"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 public FinalRGReportGenerator(DocumentGenerationInfo generationInfo)
     : base(generationInfo)
 {
 }
 /// <summary>
 /// Gets the document generation info.
 /// </summary>
 /// <param name="docType">Type of the doc.</param>
 /// <param name="docVersion">The doc version.</param>
 /// <param name="dataContext">The data context.</param>
 /// <param name="fileName">Name of the file.</param>
 /// <param name="useDataBoundControls">if set to <c>true</c> [use data bound controls].</param>
 /// <returns></returns>
 private DocumentGenerationInfo GetDocumentGenerationInfo(string docType, string docVersion, object dataContext, string fileName, bool useDataBoundControls)
 {
     var generationInfo = new DocumentGenerationInfo
                              {
                                  Metadata =
                                      new DocumentMetadata {DocumentType = docType, DocumentVersion = docVersion},
                                  DataContext = dataContext,
                                  TemplateData =
                                      File.ReadAllBytes(Server.MapPath("~/ReportTemplates/" + fileName)),
                                  IsDataBoundControls = useDataBoundControls
                              };
     return generationInfo;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SampleRefreshableDocumentGenerator"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 public SampleRefreshableDocumentGenerator(DocumentGenerationInfo generationInfo)
     : base(generationInfo)
 {
 }
 protected DocumentGenerator(DocumentGenerationInfo generationInfo, List <string> exclusions)
 {
     this.generationInfo = generationInfo;
     this.exclusions     = exclusions;
 }
Exemplo n.º 8
0
 public BaseDoxGenerator(DocumentGenerationInfo info)
     : base(info)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SampleDocumentWithTableGenerator"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 public SampleDocumentWithTableGenerator(DocumentGenerationInfo generationInfo)
     : base(generationInfo)
 {
 }
Exemplo n.º 10
0
 public PhieuMuaHangGenerator(DocumentGenerationInfo generationInfo)
     : base(generationInfo)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SampleDocumentGenerator"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 /// <param name="placeHolderNameToContentControlXmlMetadataCollection">The place holder name to content control XML metadata collection.</param>
 public SampleDocumentGeneratorUsingXml(DocumentGenerationInfo generationInfo, Dictionary<string, ContentControlXmlMetadata> placeHolderNameToContentControlXmlMetadataCollection)
     : base(generationInfo)
 {
     this.placeHolderNameToContentControlXmlMetadataCollection = placeHolderNameToContentControlXmlMetadataCollection;
 }
Exemplo n.º 12
0
        /// <summary>
        /// Gets the document generation info.
        /// </summary>
        /// <param name="docType">Type of the doc.</param>
        /// <param name="docVersion">The doc version.</param>
        /// <param name="dataContext">The data context.</param>
        /// <param name="fileName">Name of the file.</param>
        /// <param name="useDataBoundControls">if set to <c>true</c> [use data bound controls].</param>
        /// <returns>Returns the Document generation Information</returns>
        private static DocumentGenerationInfo GetDocumentGenerationInfo(string docType, string docVersion, object dataContext, string fileName, bool useDataBoundControls)
        {
            DocumentGenerationInfo generationInfo = new DocumentGenerationInfo();
            generationInfo.Metadata = new DocumentMetadata { DocumentType = docType, DocumentVersion = docVersion };
            generationInfo.DataContext = dataContext;

            DirectoryInfo di = new DirectoryInfo(System.Reflection.Assembly.GetExecutingAssembly().Location);
            if (di.Parent != null)
            {
                generationInfo.TemplateData = File.ReadAllBytes(Path.Combine(di.Parent.FullName, fileName));
            }

            generationInfo.IsDataBoundControls = useDataBoundControls;

            return generationInfo;
        }
Exemplo n.º 13
0
        /// <summary>
        /// Gets the document generation info.
        /// </summary>
        /// <param name="docType">Type of the doc.</param>
        /// <param name="docVersion">The doc version.</param>
        /// <param name="dataContext">The data context.</param>
        /// <param name="fileName">Name of the file.</param>
        /// <param name="useDataBoundControls">if set to <c>true</c> [use data bound controls].</param>
        /// <returns></returns>
        private static DocumentGenerationInfo GetDocumentGenerationInfo(string docType, string docVersion, object dataContext, string fileName, bool useDataBoundControls)
        {
            DocumentGenerationInfo generationInfo = new DocumentGenerationInfo();
            generationInfo.Metadata = new DocumentMetadata() { DocumentType = docType, DocumentVersion = docVersion };
            generationInfo.DataContext = dataContext;
            generationInfo.TemplateData = File.ReadAllBytes(Path.Combine("Sample Templates", fileName));
            generationInfo.IsDataBoundControls = useDataBoundControls;

            return generationInfo;
        }
Exemplo n.º 14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SampleDocumentWithTableGenerator"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 public AddressStickerGenerator(DocumentGenerationInfo generationInfo)
     : base(generationInfo)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SampleDocumentGenerator"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 /// <param name="placeHolderNameToContentControlXmlMetadataCollection">The place holder name to content control XML metadata collection.</param>
 /// <param name="isRefreshable">if set to <c>true</c> [is refreshable].</param>
 public SampleDocumentGeneratorUsingXmlAndDataBinding(DocumentGenerationInfo generationInfo, Dictionary<string, ContentControlXmlMetadata> placeHolderNameToContentControlXmlMetadataCollection, bool isRefreshable)
     : base(generationInfo)
 {
     this.placeHolderNameToContentControlXmlMetadataCollection = placeHolderNameToContentControlXmlMetadataCollection;
     this.isRefreshable = isRefreshable;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SampleDocumentWithTableAndChartsGenerator"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 /// <param name="lineChartData">The line chart data.</param>
 /// <param name="scatterChartData">The scatter chart data.</param>
 public SampleDocumentWithTableAndChartsGenerator(DocumentGenerationInfo generationInfo, LineChartData lineChartData, ScatterChartData scatterChartData)
     : base(generationInfo)
 {
     this.lineChartData = lineChartData;
     this.scatterChartData = scatterChartData;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SampleDocumentWithTableGeneratorUsingDatabinding"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 public SampleDocumentWithTableGeneratorUsingDatabinding(DocumentGenerationInfo generationInfo)
     : base(generationInfo)
 {
 }
Exemplo n.º 18
0
 protected DocumentGenerator(DocumentGenerationInfo generationInfo, List<string> exclusions)
 {
     this.generationInfo = generationInfo;
     this.exclusions = exclusions;
 }
 public BuildNotesDocumentGenerator(DocumentGenerationInfo generationInfo, List<string> exclusions)
     : base(generationInfo, exclusions)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SampleGenericDocumentGeneratorUsingXml"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 public SampleGenericDocumentGeneratorUsingXml(DocumentGenerationInfo generationInfo)
     : base(generationInfo)
 {
 }
Exemplo n.º 21
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DocumentGenerator"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 public DocumentGenerator(DocumentGenerationInfo generationInfo)
 {
     this.generationInfo = generationInfo;
 }
Exemplo n.º 22
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DocumentGenerator"/> class.
 /// </summary>
 /// <param name="generationInfo">The generation info.</param>
 public DocumentGenerator(DocumentGenerationInfo generationInfo)
 {
     this.generationInfo = generationInfo;
 }