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(); }
public WhereInSubqueryClause(ScopedAttribute attribute, SelectFrom subSelect, bool negate = false) { _attribute = attribute; _attrName = attribute.ColumnName; _subSelect = subSelect; _negate = negate; }
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)); }
private static dynamic GetValue(DataRow source, ScopedAttribute attr) { if (source.Table.Columns.Contains(attr.CanonicalName)) { return(source[attr.CanonicalName]); } else { return(source[attr.PropertyName]); } }
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(); }
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()); }