예제 #1
0
        public static void ReportEngine(string filePath, string documentName)
        {
            // Debut test report engine
            using (var word = new WordManager())
            {
                JsonContextConverter[] converters = { new JsonContextConverter() };

                if (string.IsNullOrWhiteSpace(filePath))
                {
                    if (string.IsNullOrWhiteSpace(documentName))
                    {
                        documentName = "ExampleDocument.docx";
                    }

                    var template             = GetTemplateDocument();
                    var templateJson         = JsonConvert.SerializeObject(template);
                    var templateUnserialized = JsonConvert.DeserializeObject <Document>(templateJson, new JsonSerializerSettings()
                    {
                        Converters = converters
                    });

                    var context             = GetContext();
                    var contextJson         = JsonConvert.SerializeObject(context);
                    var contextUnserialized = JsonConvert.DeserializeObject <ContextModel>(contextJson, new JsonSerializerSettings()
                    {
                        Converters = converters
                    });

                    var res = word.GenerateReport(templateUnserialized, contextUnserialized, new CultureInfo("en-US"));

                    // test ecriture fichier
                    File.WriteAllBytes(documentName, res);
                }
                else
                {
                    if (string.IsNullOrWhiteSpace(documentName))
                    {
                        documentName = "ExampleDocument.docx";
                    }
                    if (!documentName.EndsWith(".docx"))
                    {
                        documentName = string.Concat(documentName, ".docx");
                    }

                    var stream = File.ReadAllText(filePath);
                    var report = JsonConvert.DeserializeObject <Report>(stream, new JsonSerializerSettings()
                    {
                        Converters = converters
                    });

                    var res = word.GenerateReport(report.Document, report.ContextModel, new CultureInfo("en-US"));

                    // test ecriture fichier
                    File.WriteAllBytes(documentName, res);
                }
            }
        }