コード例 #1
0
        public void TestOpenRowSet()
        {
            var ctx = FSQLEngine.Create().Debug(@"
{
   MAP Release TO ""..\\Release"" WITH FILTER ""*.*"";
   MAP Debug To ""."" WITH FILTER ""*.*"";
}");

            Assert.IsNotNull(ctx);
            Assert.AreEqual(2, ctx.Aliases.Count());
            var rel = ctx.GetAlias("Release");
            var dbg = ctx.GetAlias("Debug");

            var relTable = rel.Open();
            var dbgTable = dbg.Open();

            //relTable.GetData().WriteLine();
            //dbgTable.GetData().WriteLine();

            var results = relTable.Join(
                dbgTable,
                (l, r) => l.FileName == r.FileName,
                ScopedAttribute.Create(new[]
            {
                new[] { "Release", "FileName", "ReleaseFullName" },
                new[] { "Release", "size", "ReleaseSize" },
                new[] { "Debug", "size", "DebugSize" }
            }).ToArray()
                );

            results.WriteLine();
        }
コード例 #2
0
 public WhereInSubqueryClause(ScopedAttribute attribute, SelectFrom subSelect, bool negate = false)
 {
     _attribute = attribute;
     _attrName  = attribute.ColumnName;
     _subSelect = subSelect;
     _negate    = negate;
 }
コード例 #3
0
ファイル: FSQLEngine.cs プロジェクト: Ill-Eagle-Software/FSQL
        public override IProgramPart VisitWhereInSubquery(FSQLParser.WhereInSubqueryContext context)
        {
            var             isNegated = context.isNegated != null;
            ScopedAttribute testValue = Visit(context.value) as ScopedAttribute;
            var             subQuery  = (SelectFrom)(Visit(context.subQuery) as IDataSetFormatter).DataSetRetriever; // Ignore any formatter... they shouldn't be there!

            return(new WhereInSubqueryClause(testValue, subQuery, isNegated));
        }
コード例 #4
0
 private static dynamic GetValue(DataRow source, ScopedAttribute attr)
 {
     if (source.Table.Columns.Contains(attr.CanonicalName))
     {
         return(source[attr.CanonicalName]);
     }
     else
     {
         return(source[attr.PropertyName]);
     }
 }
コード例 #5
0
        public void TestColumnFiltering()
        {
            var wrap = new RowSet(GetDataTable001());
            var that = new RowSet(GetDataTable002());

            var ds = wrap.Join(that, (l, r) => l.FirstName == r.FirstName,
                               ScopedAttribute.Create(new[]
            {
                new[] { "age", "firstname", "FirstName" },
                new[] { "age", "middlename", "MiddleInitial" },
                new[] { "age", "lastname", "LastName" },
                new[] { "age", "age", "Age" },
                new[] { "hobby", "hobby", "Hobby" }
            }).ToArray());

            Assert.AreEqual(4, ds.Rows.Count);
            Assert.AreEqual(5, ds.Columns.Count);
            ds.WriteLine();
        }
コード例 #6
0
        public void GetLifeTimeEntity_PassScopedEntityParams_ReturnScopedEntity()
        {
            var registeredEntityInterface         = typeof(IRepositoryArticle);
            var registeredEntityClass             = typeof(RepositoryArticle);
            var registeredEntityLifeTimeAttribute = new ScopedAttribute();

            ScopedEntity expectedEntity = new ScopedEntity()
            {
                Class     = registeredEntityClass,
                Interface = registeredEntityInterface,
                LifeTime  = registeredEntityLifeTimeAttribute,
            };
            //Act
            var resultObj = Core.GetLifeTimeEntity(registeredEntityInterface, registeredEntityClass, registeredEntityLifeTimeAttribute);

            //Assert
            Assert.True(expectedEntity.Class == resultObj.Class);
            Assert.True(expectedEntity.Interface == resultObj.Interface);
            Assert.True(expectedEntity.LifeTime.ToString() == resultObj.LifeTime.ToString());
        }