public static IList <StormResult> ToResults(StormDataSet data, SchemaNavigator navigator, List <Origin> requests, OriginTree fromTree) { var root = navigator.GetEntity(data.root); var ranges = data.ObjectRanges; var primaryKeys = data.IdentityIndexes; var items = new Dictionary <EntityPath, Dictionary <object, StormResult> >(); var results = new List <StormResult>(); for (int i = 0; i < data.Count(); i++) { var ctx = new RecCtx() { Data = data, Index = i, PrimaryKeys = primaryKeys, Ranges = ranges, Root = root }; var(pk, r) = CreateResult(fromTree.root, ctx); if (!results.Any(x => x.PrimaryKey == pk)) { results.Add(r); } r = results.First(x => x.PrimaryKey == pk); CreateResultRelations(ctx, requests.Where(x => x.FullPath != fromTree.root.FullPath).ToList(), r); } return(results); }
public void Should_Read_Projection_Result() { using (var con = storm.OpenConnection(PrepMethods.PrepareDB())) { StormDataSet r = con.Projection("Task") .Select("User.{FirstName, LastName}") .Select("TaskType") .Select("Completed") .Select("{DateStart, DateEnd}") .Select("Info.Field2") .Where(x => x["User.Email"].EqualTo.Val("*****@*****.**")) .Execute(); Assert.Equal(8, r.Count()); Assert.Equal(2, r.Count(x => (bool)x["Completed"] == true)); } }