/// <param name="xslTemplateFileNames">The XSL templates.</param> /// <param name="srcFolder">The SRC folder.</param> /// <param name="cryptoProcessor">The crypto processor.</param> private void ProcessXslTemplateFiles(IEnumerable<string> xslTemplateFileNames, string srcFolder, CryptoProcessor cryptoProcessor) { var languageFolders = GetReportLanguages().ToArray(); var systemSettings = SystemSettingsInfo.LoadFrom(Settings.SystemSettingsFile); this._logger.WriteToLog( "start modules processing...." ); foreach (var fileName in xslTemplateFileNames) { try { this._logger.WriteToLog( "Start module file name processing. File:'{0}'", fileName ); foreach (var localeFolder in languageFolders) { var srcFileName = Path.Combine( srcFolder, "Templates", localeFolder, fileName ); if (!File.Exists(srcFileName)) { this._logger.WriteToLog( "ERROR: Module not found. File name: '{0}'", srcFileName ); continue; } string dstFileName = Path.Combine( this._settings.DstFolderFull + @"\" + systemSettings.TemplateDirectory + @"\", "Templates", localeFolder, fileName ); this.SureCopy(srcFileName, dstFileName); new XSLPreparator(new KeyValuePair<string, string>(dstFileName, localeFolder), this._logger) .Prepare(this._settings.AdditionalTemplates); if (AppVersionHelper.IsNotDebug()) { var doc = new XmlDocument(); doc.Load(dstFileName); this._logger.WriteToLog( "EncryptXmlDocument: file name: '{0}'", dstFileName ); cryptoProcessor.EncryptXmlDocument(doc); doc.Save(dstFileName); } } } catch (Exception e) { this._logger.WriteToLog( "ERROR: Module has not been processed. File:'{0}';Error:'{1}'", fileName, e.Message ); } } this._logger.WriteToLog( "Modules processing is completed." ); }
/// <summary> /// Save queries to encoded file /// </summary> /// <param name="fileName">Xml-file name</param> /// <param name="queries">Collection of queries</param> /// <param name="cryptoProcessor">Encoder</param> public static void SaveToXml(string fileName, List<QueryInfo> queries, CryptoProcessor cryptoProcessor) { XmlDocument doc = new XmlDocument(); SaveToXml(fileName, queries); doc.PreserveWhitespace = true; doc.Load(fileName); cryptoProcessor.EncryptXmlDocument(doc); doc.Save(fileName); }
private void ProcessTreeNodeTemplateFiles( IEnumerable<string> treeNodeTemplateFileNames, out List<string> xslTemplateFiles, out Dictionary<string, List<string>> queriesInQueryFiles, CryptoProcessor cryptoProcessor ) { xslTemplateFiles = new List<string>(); queriesInQueryFiles = new Dictionary<string, List<string>>(); var systemSettings = SystemSettingsInfo.LoadFrom(Settings.SystemSettingsFile); foreach (string templateFileName in treeNodeTemplateFileNames) { string fullTemplateFileName = Path.GetFullPath(templateFileName); if (File.Exists(fullTemplateFileName)) { string dstTemplateFileName = Path.Combine( this._settings.DstFolderFull + @"\" + systemSettings.TemplateDirectory + @"\", Path.GetFileName(templateFileName) ); this.SureCopy(fullTemplateFileName, dstTemplateFileName); XmlDocument doc = new XmlDocument(); doc.Load(dstTemplateFileName); string startupTemplateId = null; Stack<string> startupTemplateInfoIdStack = null; var rootNode = TemplateNodesLoader.LoadFromXml(null, doc, out startupTemplateId, out startupTemplateInfoIdStack); var allNodesInTemplate = ToPlainList(rootNode); foreach (TemplateNodeInfo node in allNodesInTemplate) { //foreach (TemplateNodeLocaleInfo locale in // node.Locales.Where(l => !string.IsNullOrEmpty(l.TemplateFile))) //{ // if (!xslTemplates.ContainsKey(locale.TemplateFile)) // { // xslTemplates.Add(locale.TemplateFile, locale.Language); // } //} if (!string.IsNullOrWhiteSpace(node.XslTemplateFileName) && !xslTemplateFiles.Contains(node.XslTemplateFileName)) { xslTemplateFiles.Add(node.XslTemplateFileName); } var allQueries = node.Queries.Union(node.GroupQueries); foreach (TemplateNodeQueryInfo query in allQueries) { if (!queriesInQueryFiles.ContainsKey(query.QueryFileName)) { queriesInQueryFiles.Add(query.QueryFileName, new List<string>()); } if (!queriesInQueryFiles[query.QueryFileName].Contains(query.QueryName)) { queriesInQueryFiles[query.QueryFileName].Add(query.QueryName); } } foreach (TemplateNodeQueryInfo query in node.ConnectionQueries) { if (!queriesInQueryFiles.ContainsKey(query.QueryFileName)) { queriesInQueryFiles.Add(query.QueryFileName, new List<string>()); } if (!queriesInQueryFiles[query.QueryFileName].Contains(query.QueryName)) { queriesInQueryFiles[query.QueryFileName].Add(query.QueryName); } } } if (AppVersionHelper.IsNotDebug()) { cryptoProcessor.EncryptXmlDocument(doc); doc.Save(dstTemplateFileName); } } else { this._logger.WriteToLog(this.GetText("TemplateTreeFileNotFound") + templateFileName); } } }