Exemplo n.º 1
0
 public void RefreshCurrentPageDataTable()
 {
     using (ComReleaser comreleaser = new ComReleaser())
     {
         IFeatureCursor cursor = TargetFeatureClass.Search(null, false);
         comreleaser.ManageLifetime(cursor);
         IFeature tempFt = cursor.NextFeature();
         comreleaser.ManageLifetime(tempFt);
         ISet <int> IngoreFieldIndex = ConvertIngoreColName2FieldIndex();
         for (int index = 0; index < FeatureCount; index++)
         {
             if (index < CurrentPage * PageContains)
             {
                 tempFt = cursor.NextFeature();
             }
             else if (index > (CurrentPage + 1) * PageContains)
             {
                 break;
             }
             else
             {
                 int     colIndex = 0;
                 DataRow tempRow  = ResultTable.NewRow();
                 for (int i = 0; i < TargetFeatureClass.Fields.FieldCount; i++)
                 {
                     if (IngoreFieldIndex.Contains(i))
                     {
                         continue;
                     }
                     tempRow[colIndex++] = tempFt.get_Value(index);
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
        public void TestTableToReader()
        {
            var table = new ResultTable();

            table.Columns.Add(new ColumnRef("a"), aColDef);
            table.Columns.Add(new ColumnRef("b"), bColDef);
            table.Columns.Add(new ColumnRef("c"), cColDef);

            for (var i = 0; i < 5; i++)
            {
                var row = table.NewRow();
                row.Add(new object[] { (i + 1) * 1, (i + 1) * 2, (i + 1) * 3 });
                table.Rows.Add(row);
            }

            var results = new List <int[]>();

            using (var reader = new ResultReader(table))
            {
                while (reader.Read())
                {
                    var row = new int[3];
                    row[0] = (int)reader[new ColumnRef("a")];
                    row[1] = (int)reader[bColDef];
                    row[2] = (int)reader["c"];
                    results.Add(row);
                }
            }

            Assert.Equal(3, results[2][0]);
            Assert.Equal(6, results[2][1]);
            Assert.Equal(9, results[2][2]);
            Assert.Equal(5, results.Count);
        }
Exemplo n.º 3
0
        public void TestResultTableSerialization()
        {
            var table = new ResultTable();

            table.Columns.Add(new ResultColumnHeader("a", typeof(int)));
            table.Columns.Add(new ResultColumnHeader("b", typeof(string)));
            table.Columns.Add(new ResultColumnHeader("c", typeof(string)));
            var row1 = table.NewRow();

            row1.Add(new object[] { 1, "abc", "DEF" });
            table.Rows.Add(row1);
            var row2 = table.NewRow();

            row2.Add(new object[] { 2, DBNull.Value, "xyz" });
            table.Rows.Add(row2);

            string xmlRes;

            using (var memStm = new MemoryStream())
            {
                var types = new List <Type> {
                    typeof(DBNull)
                };
                var serializer = new DataContractSerializer(typeof(ResultTable), types);
                var settings   = new XmlWriterSettings {
                    Indent = true
                };

                using (var w = XmlWriter.Create(memStm, settings))
                    serializer.WriteObject(w, table);

                memStm.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(memStm))
                    xmlRes = streamReader.ReadToEnd();
            }

            var jsonRes = JsonConvert.SerializeObject(table, Newtonsoft.Json.Formatting.Indented);

            Assert.NotNull(xmlRes);
            Assert.NotNull(jsonRes);

            output.WriteLine(table.ToString());
            output.WriteLine(xmlRes);
            output.WriteLine(jsonRes);
        }
Exemplo n.º 4
0
        public void TestBooleanExpressionLike()
        {
            //Initialize
            var table = new ResultTable();
            var col   = new ResultColumnHeader("TextColumn", typeof(string));

            col.Expression = new ColumnRef("TextColumn");
            table.Columns.Add(col);
            var like = new BooleanLike();

            var row1 = table.NewRow();

            row1.Add(new object[] { "%%ABCDEFG" });

            //Escape character test
            like = new BooleanLike(new ColumnRef("TextColumn"), new StringConstant("!%!%%"), '!');
            Assert.Equal(true, like.Eval(row1));

            //Leading percent test
            like = new BooleanLike(new ColumnRef("TextColumn"), new StringConstant("%EFG"));
            Assert.Equal(true, like.Eval(row1));

            //Trailing percent test
            like = new BooleanLike(new ColumnRef("TextColumn"), new StringConstant("!%!%ABC%"), '!');
            Assert.Equal(true, like.Eval(row1));

            //Middle percent test
            like = new BooleanLike(new ColumnRef("TextColumn"), new StringConstant("!%!%ABC%EFG"), '!');
            Assert.Equal(true, like.Eval(row1));

            //Leading underscore test
            like = new BooleanLike(new ColumnRef("TextColumn"), new StringConstant("_!%ABCDEFG"), '!');
            Assert.Equal(true, like.Eval(row1));

            //Trailing underscore test
            like = new BooleanLike(new ColumnRef("TextColumn"), new StringConstant("!%!%ABCDEF_"), '!');
            Assert.Equal(true, like.Eval(row1));

            //Middle underscore test
            like = new BooleanLike(new ColumnRef("TextColumn"), new StringConstant("!%!%ABC_EFG"), '!');
            Assert.Equal(true, like.Eval(row1));

            //Mixed wild card test
            like = new BooleanLike(new ColumnRef("TextColumn"), new StringConstant("__ABCD%_"));
            Assert.Equal(true, like.Eval(row1));

            //Case insensitive test
            like = new BooleanLike(new ColumnRef("TextColumn"), new StringConstant("___bcd%_"));
            Assert.Equal(true, like.Eval(row1));

            //Invalid escape character test
            like = new BooleanLike(new ColumnRef("TextColumn"), new StringConstant("!%!%!ABCDEF!G!"));
            Assert.Equal(false, like.Eval(row1));

            //Null escape character test
            like = new BooleanLike(new ColumnRef("TextColumn"), new StringConstant("\\%\\%ABCDEFG"), null);
            Assert.Equal(true, like.Eval(row1));
        }
Exemplo n.º 5
0
        public void TestResultTableSerialization()
        {
            var table = new ResultTable();

            table.Columns.Add(new ResultColumnHeader("a", typeof(int)));
            table.Columns.Add(new ResultColumnHeader("b", typeof(string)));
            table.Columns.Add(new ResultColumnHeader("c", typeof(string)));
            var row1 = table.NewRow();

            row1.Add(new object[] { 1, "abc", "DEF" });
            table.Rows.Add(row1);
            var row2 = table.NewRow();

            row2.Add(new object[] { 2, null, "xyz" });
            table.Rows.Add(row2);

            Assert.Equal(3, table.Columns.Count);

            var jsonRes = JsonConvert.SerializeObject(table);

            Assert.NotNull(jsonRes);
        }
Exemplo n.º 6
0
        public void TestOperations()
        {
            var table = new ResultTable();

            table.Columns.Add(new ColumnRef("a"));
            table.Columns.Add(new ColumnRef("b"));
            table.Columns.Add(new ColumnRef("c"));
            table.Columns.Add(new ColumnRef("d"));
            var row = table.NewRow();

            row.Add(new object[] { 1, 432, 24.42d, 0.256m });

            var computeAddInt = new Addition(new ColumnRef("a"), new ColumnRef("b"));

            Assert.Equal(433, computeAddInt.Eval(row));

            var computeAddDouble = new Addition(new ColumnRef("c"), new ColumnRef("c"));

            Assert.Equal(48.84, computeAddDouble.Eval(row));

            var computeAddDecimal = new Addition(new ColumnRef("d"), new ColumnRef("d"));

            Assert.Equal(0.512m, computeAddDecimal.Eval(row));

            var computeAddMixed = new Addition(new ColumnRef("c"), new ColumnRef("d"));

            Assert.Equal(24.676m, computeAddMixed.Eval(row));

            var computeSubInt = new Subtraction(new ColumnRef("a"), new ColumnRef("b"));

            Assert.Equal(-431, computeSubInt.Eval(row));

            var computeSubDouble = new Subtraction(new ColumnRef("c"), new ColumnRef("c"));

            Assert.Equal(0d, computeSubDouble.Eval(row));

            var computeSubDecimal = new Subtraction(new ColumnRef("d"), new ColumnRef("d"));

            Assert.Equal(0m, computeSubDecimal.Eval(row));

            var computeSubMixed = new Subtraction(new ColumnRef("c"), new ColumnRef("d"));

            Assert.Equal(24.164m, computeSubMixed.Eval(row));

            var computeMulInt = new Multiplication(new ColumnRef("a"), new ColumnRef("b"));

            Assert.Equal(432, computeMulInt.Eval(row));

            var computeMulDouble = new Multiplication(new ColumnRef("c"), new ColumnRef("c"));

            Assert.Equal(24.42d * 24.42d, computeMulDouble.Eval(row));

            var computeMulDecimal = new Multiplication(new ColumnRef("d"), new ColumnRef("d"));

            Assert.Equal(0.065536m, computeMulDecimal.Eval(row));

            var computeMulMixed = new Multiplication(new ColumnRef("c"), new ColumnRef("d"));

            Assert.Equal(6.25152m, computeMulMixed.Eval(row));

            var computeDivInt = new Division(new ColumnRef("a"), new ColumnRef("b"));

            Assert.Equal(0, computeDivInt.Eval(row));

            var computeDivDouble = new Division(new ColumnRef("c"), new ColumnRef("c"));

            Assert.Equal(24.42d / 24.42d, computeDivDouble.Eval(row));

            var computeDivDecimal = new Division(new ColumnRef("d"), new ColumnRef("d"));

            Assert.Equal(1m, computeDivDecimal.Eval(row));

            var computeDivMixed = new Division(new ColumnRef("c"), new ColumnRef("d"));

            Assert.Equal(95.390625m, computeDivMixed.Eval(row));
        }