private bool CreateDocument(string templatePath, string newFilePath, int applicationId)
        {
            #region создаем экземпляры нужных классов
            XmlTableCreate xmlTableCreate = new XmlTableCreate();
            #endregion
            #region открываем шаблон
            string      xmlFile  = File.ReadAllText(templatePath);
            XmlDocument document = new XmlDocument();
            document.LoadXml(xmlFile);
            #endregion
            #region старый вариант

            /*
             * List<zColumnTable> columnListWithUniqueMark = FindColumnsWithUniqueMarkExist(applicationId);
             * foreach (zColumnTable currentColumn in columnListWithUniqueMark)
             * {
             *  xmlFile = xmlFile.Replace(currentColumn.UniqueMark, FindValue(currentColumn, applicationId));
             * }*/
            #endregion
            XmlNode sectNode = FindNode(document.ChildNodes, "wx:sect");
            //нам нужен список того в файле что нужно заменить)
            // пока что 2 вхождения ищем
            //1) #Table* заменяем весь ноде после секции
            //2) #Line*  заменяем только значение нода
            TagsToReplace       tagsToReplaceClass  = new TagsToReplace();
            CreateXmlTable      createXmlTableClass = new CreateXmlTable();
            List <TagToReplace> tagsToReplaces      = tagsToReplaceClass.GetTagsToReplace(document);
            //мы получили список того что нужно заменить
            //пройдемся по каждому

            foreach (TagToReplace currentTagToReplace in tagsToReplaces)
            {
                if (currentTagToReplace.ReplaceType == 2)
                {
                    XmlNode newXmlNode = createXmlTableClass.GetXmlTable(document, currentTagToReplace, applicationId);
                    document.ImportNode(newXmlNode, true);
                    sectNode.AppendChild(newXmlNode);
                    XmlNode lastNode      = FindNodeByValue(sectNode.ChildNodes, currentTagToReplace.TagsNode.OuterXml);
                    XmlNode nodeToReplace = FindAfterParentNode(sectNode, lastNode);
                    if (nodeToReplace != null)
                    {
                        sectNode.ReplaceChild(newXmlNode, nodeToReplace);
                    }
                }
            }

            //XmlNode childNode = FindNodeByValue(document.ChildNodes, "Ueeeeeeees");
            //XmlNode nodeToReplace = FindAfterParentNode(sectNode, childNode);
            //XmlNode newParamNode = xmlTableCreate.XmlTableCreateInit(document);
            //document.ImportNode(newParamNode, true);
            //sectNode.AppendChild(newParamNode);
            //sectNode.ReplaceChild(newParamNode, nodeToReplace);

            #region подчищаем и сохраняем в файл
            string newXmlFile = document.OuterXml;
            newXmlFile = newXmlFile.Replace("xmlns:w=\"w\"", "").Replace("xmlns:wx=\"wx\"", "").Replace("xmlns:wsp=\"wsp\"", "");
            File.WriteAllText(newFilePath, newXmlFile);
            #endregion
            return(true);
        }
            public XmlNode GetXmlTable(XmlDocument document, TagToReplace currentTagToReplace, int applicationId)
            {
                XmlTableCreate        xmlTableCreate = new XmlTableCreate();
                List <List <string> > newNestedList  = GetNestedDataList(currentTagToReplace.ReplacemantList, applicationId);
                XmlNode newXmlTableNode = xmlTableCreate.GetXmlTable(document, newNestedList);

                return(newXmlTableNode);
            }