Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
            }
        }