protected void Page_Load(object sender, EventArgs e)
        {
            const string reportTemplateName = "ChangesReportTemplate.docx";
            var          foundryName        = Request.Params["FOUNDRY_NAME"];
            var          fromDate           = Request.Params["FROM_DATE"];
            var          toDate             = Request.Params["TO_DATE"];

            //date is expected in dd/MM/yyyy format from the url

            if (!String.IsNullOrEmpty(fromDate))
            {
                fromDate = DateTime.Parse(fromDate, CustomCulture).ToString("dd-MM-yyyy");
            }

            if (!String.IsNullOrEmpty(toDate))
            {
                toDate = DateTime.Parse(toDate, CustomCulture).ToString("dd-MM-yyyy");
            }

            if (string.IsNullOrEmpty(reportTemplateName))
            {
                return;
            }

            var generationInfo = GetDocumentGenerationInfo("ChangesReportGenerator", "1.0", GetDataContext(),
                                                           reportTemplateName, false);

            var sampleDocumentGenerator
                = new ChangesReportGenerator(generationInfo,
                                             String.IsNullOrEmpty(foundryName) ? "All" : foundryName,
                                             fromDate,
                                             toDate);

            byte[] result   = sampleDocumentGenerator.GenerateDocument();
            var    filePath = WriteOutputToFile("ChangesReportTemplate" + DateTime.Now.ToString("SSMIHH") + ".docx", result);

            using (var wordDocument = WordprocessingDocument.Open(filePath, true))
            {
                wordDocument.ChangeDocumentType(WordprocessingDocumentType.Document);
                var mainDocumentPart = wordDocument.MainDocumentPart;
                var document         = mainDocumentPart.Document;
                // Clean up: The user will appreciate a clean document!
                var helper = new OpenXmlHelper(DocumentGenerationInfo.NamespaceUri);
                helper.RemoveContentControlsAndKeepContents(document);
                document.Save();
            }

            //download the file to the user

            string filename = "ChangesReport" + foundryName + ".docx";

            Response.ContentType = "application/ms-word";
            Response.AddHeader("content-disposition", "attachment; filename=" + filename);
            Response.TransmitFile(filePath);
            Response.Flush();

            //clean up the file
            File.Delete(filePath);
            Response.End();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            const string reportTemplateName = "ChangesReportTemplate.docx";
            var foundryName = Request.Params["FOUNDRY_NAME"];
            var fromDate = Request.Params["FROM_DATE"];
            var toDate = Request.Params["TO_DATE"];

            //date is expected in dd/MM/yyyy format from the url

            if (!String.IsNullOrEmpty(fromDate))
            {
                fromDate = DateTime.Parse(fromDate, CustomCulture).ToString("dd-MM-yyyy");
            }

            if(!String.IsNullOrEmpty(toDate))
            {
                toDate = DateTime.Parse(toDate, CustomCulture).ToString("dd-MM-yyyy");
            }

            if (string.IsNullOrEmpty(reportTemplateName))
                return;

            var generationInfo = GetDocumentGenerationInfo("ChangesReportGenerator", "1.0", GetDataContext(),
                                        reportTemplateName, false);

            var sampleDocumentGenerator
                = new ChangesReportGenerator(generationInfo,
                                                String.IsNullOrEmpty(foundryName) ? "All" : foundryName,
                                                fromDate,
                                                toDate);

            byte[] result = sampleDocumentGenerator.GenerateDocument();
            var filePath = WriteOutputToFile("ChangesReportTemplate" + DateTime.Now.ToString("SSMIHH") + ".docx", result);

            using (var wordDocument = WordprocessingDocument.Open(filePath, true))
            {
                wordDocument.ChangeDocumentType(WordprocessingDocumentType.Document);
                var mainDocumentPart = wordDocument.MainDocumentPart;
                var document = mainDocumentPart.Document;
                // Clean up: The user will appreciate a clean document!
                var helper = new OpenXmlHelper(DocumentGenerationInfo.NamespaceUri);
                helper.RemoveContentControlsAndKeepContents(document);
                document.Save();
            }

            //download the file to the user

            string filename = "ChangesReport" + foundryName + ".docx";
            Response.ContentType = "application/ms-word";
            Response.AddHeader("content-disposition", "attachment; filename="+filename);
            Response.TransmitFile(filePath);
            Response.Flush();

            //clean up the file
            File.Delete(filePath);
            Response.End();
        }