Beispiel #1
0
        public static void Program(string mdbfilePath, string[] ids)
        {
            var _connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", mdbfilePath);

            using (var connection = new OleDbConnection(_connectionString))
            {
                connection.Open();
                Console.WriteLine("开始检查");
                #region  检查数据库是否存在要求的表
                var tableStructure = new TableStructure();
                Console.WriteLine(string.Format("开始检查{0}", tableStructure.Name));
                tableStructure.Check(connection);
                if (tableStructure.Erros.Count == 0)
                {
                    Console.WriteLine(string.Format("符合{0}", tableStructure.Name.Replace("检查", "")));
                }
                else
                {
                    QuestionManager.AddRange(tableStructure.Erros.Select(e => new Models.Question {
                        Code = "2101", Name = "矢量图层完整", Project = Models.CheckProject.图层完整性, Description = e
                    }).ToList());
                    Console.WriteLine("存在如下错误:");
                    foreach (var error in tableStructure.Erros)
                    {
                        Console.WriteLine(error);
                    }
                }
                #endregion
                if (tableStructure.ExistTables.Contains(DCDYTB))
                {
                    DCDYTBManager.Init(connection);
                }
                var rule = new RuleManager()
                {
                    IDS = ids
                };
                rule.Program(connection);


                #region 检查图斑面积

                Console.WriteLine("正在核对图斑面积一致性;");

                try
                {
                    DCDYTBManager.Program();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }


                Console.WriteLine("完成核对图斑面积一致性;");
                #endregion

                connection.Close();
            }
        }
        public void Check()
        {
            var tools = new List <GainAreaTool>()
            {
                new GainAreaTool {
                    TableName = "CLZJD", AreaFields = new string[] { "JZZDMJ", "FSYDMJ" }, Denominator = 1
                },
                new GainAreaTool {
                    TableName = "JYXJSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 1
                },
                new GainAreaTool {
                    TableName = "GGGL_GGFWSSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 1
                },
                new GainAreaTool {
                    TableName = "QTCLJSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 1
                }
            };

            try
            {
                Parallel.ForEach(tools, tool =>
                {
                    tool.Gain(ParameterManager.Connection);
                });
                DCDYTBManager.Program();//校验图斑的面积-(宅基地、经营性建设用地、公共管理和公共服务设施和其他存量建设用地)面积和<1平方米
            }catch (AggregateException ae)
            {
                foreach (var exp in ae.InnerExceptions)
                {
                    LogManager.LogRecord(exp.ToString());
                }
            }catch (Exception ex)
            {
                LogManager.LogRecord(ex.ToString());
            }
        }
Beispiel #3
0
        public static void Program(string mdbfilePath, string[] ids)
        {
            var _connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", mdbfilePath);
            var info = string.Empty;

            using (var connection = new OleDbConnection(_connectionString))
            {
                connection.Open();
                LogManager.Log("开始检查");
                #region  检查数据库是否存在要求的表
                var tableStructure = new TableStructure();
                LogManager.Log(string.Format("开始检查{0}", tableStructure.Name));
                tableStructure.Check(connection);
                if (tableStructure.Erros.Count == 0)
                {
                    info = string.Format("符合{0}", tableStructure.Name.Replace("检查", ""));
                    LogManager.Log(info);
                }
                else
                {
                    QuestionManager.AddRange(tableStructure.Erros.Select(e => new Models.Question {
                        Code = "2101", Name = "矢量图层完整", Project = Models.CheckProject.图层完整性, Description = e
                    }).ToList());
                }
                #endregion
                if (tableStructure.ExistTables.Contains(DCDYTB))
                {
                    //DCDYTBManager.Init(connection);
                }
                else
                {
                    LogManager.Record("不存在或者未找到表DCDYTB,未获取图斑相关信息");
                }
                var rule = new RuleManager()
                {
                    IDS = ids
                };
                rule.Program(connection);


                #region 检查图斑面积
                LogManager.Log("核对图斑面积");

                var tbTools = new List <GainAreaTool>()
                {
                    new GainAreaTool {
                        TableName = "CLZJD", AreaFields = new string[] { "JZZDMJ", "FSYDMJ" }, Denominator = 10000
                    },
                    new GainAreaTool {
                        TableName = "JYXJSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 10000
                    },
                    new GainAreaTool {
                        TableName = "GGGL_GGFWSSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 10000
                    },
                    new GainAreaTool {
                        TableName = "QTCLJSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 10000
                    }
                };
                try
                {
                    Parallel.ForEach(tbTools, tool =>
                    {
                        tool.Gain(connection);
                    });
                    DCDYTBManager.Program();
                }
                catch (AggregateException ae)
                {
                    foreach (var exp in ae.InnerExceptions)
                    {
                        LogManager.Log(exp.ToString());
                    }
                }catch (Exception ex)
                {
                    LogManager.Log(ex.ToString());
                    LogManager.Record(ex.ToString());
                }


                Console.WriteLine("完成核对图斑面积一致性;");
                #endregion

                connection.Close();
            }
        }