public void Program() { QuestionManager.Clear(); LogManager.Init(); ParameterManager.Init(Folder); DCDYTBManager.Init(); ExcelParameterManager.Clear(); if (!Init()) { OutputMessage("00", "初始化失败,程序终止", ProgressResultTypeEnum.Fail); return; } OutputMessage("00", "成功初始化", ProgressResultTypeEnum.Pass); foreach (var id in _ruleIds) { var rule = _rules.FirstOrDefault(e => e.ID == id.ToString()); if (rule != null) { var sb = new StringBuilder(rule.RuleName); var result = ProgressResultTypeEnum.Pass; try { rule.Check(); } catch (AggregateException ae) { foreach (var exp in ae.InnerExceptions) { sb.Append(exp.Message + "\r\n"); } result = ProgressResultTypeEnum.Fail; } catch (Exception ex) { result = ProgressResultTypeEnum.Fail; sb.Append(ex.ToString()); } if (result != ProgressResultTypeEnum.Pass) { QuestionManager.Add(new Question { Code = rule.ID, Name = rule.RuleName, Description = sb.ToString() }); } if (OutputMessage(rule.ID, sb.ToString(), result) == true) { break; } } } _reportPath = QuestionManager.Save(ReportPath); //PDFHelper.Save(_reportPath, ReportPDFPath); //PdfHelper2.SavePdf(_reportPath, ReportPDFPath); PdfHelper2.Convert(_reportPath, ReportPDFPath); }
public void Program() { QuestionManager.Clear();//质检问题初始化 if (!System.IO.Directory.Exists(Folder)) { LogManager.Log(string.Format("质检路径不存在:{0},请核对!", Folder)); QuestionManager.Add(new Question() { Code = "1102", Name = "质检路径不存在", Project = CheckProject.目录及文件规范性, Description = string.Format("质检路径不存在:{0},请核对!", Folder) }); return; } var folderTool = new FolderTool { Folder = Folder }; //对质检路径进行命名规范检查 folderTool.Check(); //if (!folderTool.Check()) //{ // return; //} Code = folderTool.Code; District = folderTool.CityName; var resultComplete = new ResultComplete(Folder) { Children = XmlManager.Get("/Folders/Folder", "Name", XmlEnum.DataTree) }; resultComplete.Check();//对质检路径下的文件夹、文件是否存在,是否能够打开进行检查 QuestionManager.AddRange(resultComplete.Messages.Select(e => new Question { Code = "1102", Name = "成果数据丢露", Project = CheckProject.目录及文件规范性, Description = e }).ToList()); if (OnProgramProcess != null) { var args = new ProgressEventArgs() { Code = "11", Cancel = false, Message = string.Empty }; OnProgramProcess(this, args); if (args.Cancel) { return; } } _folderTools.AddRange(resultComplete.ExistPath.Select(e => new FileFolder() { Folder = e, FileNames = XmlManager.GetChildren(string.Format("/Folders/Folder[@Name='{0}']", new DirectoryInfo(e).Name), "Name", XmlEnum.DataTree), CityName = folderTool.CityName, Code = folderTool.Code })); try { Parallel.ForEach(_folderTools, tool => { tool.Check(); }); } catch (AggregateException ae) { foreach (var exp in ae.InnerExceptions) { LogManager.Log(exp.ToString()); LogManager.Record(exp.ToString()); } } var path = System.IO.Path.Combine(Folder, DataBase); //获取空间数据库文件夹下的单位代码表文件,并获取单位代码信息 var codefileTool = new Tool.FileTool { Folder = path, Filter = "*.xls", RegexString = @"^[\u4e00-\u9fa5]+\(\d{6}\)单位代码表.xls$" }; var currentCodeFile = codefileTool.GetFile(); if (string.IsNullOrEmpty(currentCodeFile)) { LogManager.Log("未识别到单位代码表文件,请核对空间数据库文件下的文件"); } else { ExcelManager.Init(currentCodeFile); } //获取空间数据库文件夹下的空间数据库文件,并对数据库进行检查 var mdbfileTool = new Tool.FileTool() { Folder = path, Filter = "*.mdb", RegexString = @"^[\u4e00-\u9fa5]+\(\d{6}\)农村存量建设用地调查成功空间数据库.mdb$" }; var currentMdbFile = mdbfileTool.GetFile(); if (string.IsNullOrEmpty(currentMdbFile)) { LogManager.Log("未识别到数据库文件,请核对农村存量建设用地调查成功空间数据库.mdb文件"); QuestionManager.Add(new Question { Code = "2101", Name = "适量数据文件", Project = CheckProject.目录及文件规范性, Description = "未识别到数据库文件,请核对农村存量建设用地调查成功空间数据库.mdb文件" }); } else { TableHeart.Program(currentMdbFile, IDS); var gisheart = new ArcGISHeart() { MDBFilePath = currentMdbFile, FeatureClassNames = XmlManager.Get("/Tables/Table[@IsSpace='true']", "Name", XmlEnum.Field) }; gisheart.Program(); } Console.WriteLine("开始对统计表格进行质检......"); var collectfolder = System.IO.Path.Combine(Folder, Collect); if (!System.IO.Directory.Exists(collectfolder)) { QuestionManager.Add(new Question { Code = "1101", Name = "统计表格文件夹", Project = CheckProject.目录及文件规范性, Description = string.Format("目录:{0}不存在", collectfolder) }); } else { //汇总表质检 var excel = new ExcelHeart() { Folder = collectfolder, MDBFilePath = currentMdbFile, District = folderTool.CityName, Code = folderTool.Code }; excel.Program(); QuestionManager.AddRange(excel.Questions); } }