Beispiel #1
0
        public void Export()
        {
            this.setViewModel();
            var fileInfo    = new FileInfo(_viewModel.TemplatePath);
            var newFileInfo = new FileInfo(fileInfo.DirectoryName + "\\" + fileInfo.Name.Split('.')[0] + "_new" + fileInfo.Extension);

            File.Delete(newFileInfo.FullName);
            File.Copy(fileInfo.FullName, newFileInfo.FullName);

            using (var outputDocument = new TemplateProcessor(newFileInfo.FullName).SetRemoveContentControls(true)) {
                ListContent listContent = new ListContent("Table list");
                foreach (var t in _viewModel.Tables)
                {
                    var listItemContent = new ListItemContent();
                    listContent.AddItem(listItemContent);
                    listItemContent.AddField("Table title", "[" + t.Schema + "].[" + t.TableName + "]");
                    listItemContent.AddField("Table name", "[" + t.Schema + "].[" + t.TableName + "]");
                    listItemContent.AddField("Table description", t.Description);
                    listItemContent.AddField("Table pk", t.PrimaryKeys);

                    var columnContent = new TableContent("Column row");
                    listItemContent.AddTable(columnContent);
                    foreach (var c in t.Columns)
                    {
                        columnContent.AddRow(
                            new FieldContent("Name", c.Name),
                            new FieldContent("Type", c.Type),
                            new FieldContent("Null", c.Nullable),
                            new FieldContent("Description", c.Description));
                    }
                }

                Content mainContent = new Content(listContent);
                outputDocument.FillContent(mainContent);
                outputDocument.SaveChanges();
            }
        }
Beispiel #2
0
        public static void FillContentControls(string fileName, List <DocumentData> newDocumentDatas)
        {
            List <IContentItem> contentItems = new List <IContentItem>();

            foreach (var item in newDocumentDatas)
            {
                if (item is FieldDocumentData)
                {
                    contentItems.Add(new FieldContent((item as FieldDocumentData).Key, (item as FieldDocumentData).Value));
                }

                if (item is ListDocumentData)
                {
                    ListContent listContent = new ListContent(item.Key);

                    if ((item as ListDocumentData).Fields.Count != 0)
                    {
                        for (int i = 0; i < (item as ListDocumentData).Fields[0].Values.Count; i++)
                        {
                            ListItemContent listcontentItems = new ListItemContent();

                            foreach (var item1 in (item as ListDocumentData).Fields)
                            {
                                listcontentItems.AddField((item1 as FieldsDocumentData).Key, (item1 as FieldsDocumentData).Values[i]);
                            }

                            foreach (var item1 in (item as ListDocumentData).Tables)
                            {
                                TableContent tableContent = new TableContent(item1.Key);

                                if ((item1 as TableDocumentData).Fields.Count != 0)
                                {
                                    for (int j = ((item1 as TableDocumentData).Fields[0].Values.Count / (item as ListDocumentData).Fields[0].Values.Count) * i; j < ((item1 as TableDocumentData).Fields[0].Values.Count / (item as ListDocumentData).Fields[0].Values.Count) + (((item1 as TableDocumentData).Fields[0].Values.Count / (item as ListDocumentData).Fields[0].Values.Count) * i); j++)
                                    {
                                        List <IContentItem> tableRowContent = new List <IContentItem>();

                                        foreach (var item2 in (item1 as TableDocumentData).Fields)
                                        {
                                            tableRowContent.Add(new FieldContent((item2 as FieldsDocumentData).Key, (item2 as FieldsDocumentData).Values[j]));
                                        }

                                        tableContent.AddRow(tableRowContent.ToArray());
                                    }
                                }

                                listcontentItems.AddTable(tableContent);
                            }

                            listContent.AddItem(listcontentItems);
                        }
                    }

                    contentItems.Add(listContent);
                }

                if (item is TableDocumentData)
                {
                    TableContent tableContent = new TableContent(item.Key);

                    if ((item as TableDocumentData).Fields.Count != 0)
                    {
                        for (int i = 0; i < (item as TableDocumentData).Fields[0].Values.Count; i++)
                        {
                            List <IContentItem> tableRowContent = new List <IContentItem>();

                            foreach (var item1 in (item as TableDocumentData).Fields)
                            {
                                tableRowContent.Add(new FieldContent((item1 as FieldsDocumentData).Key, (item1 as FieldsDocumentData).Values[i]));
                            }

                            tableContent.AddRow(tableRowContent.ToArray());
                        }
                    }

                    contentItems.Add(tableContent);
                }
            }

            var valuesToFill = new Content(contentItems.ToArray());

            using (var outputDocument = new TemplateProcessor(fileName).SetRemoveContentControls(true))//true false
            {
                outputDocument.FillContent(valuesToFill);
                outputDocument.SaveChanges();
            }
        }