Example #1
0
        public void RegisterMissingIncludes(IEnumerable <RavenJObject> results, ICollection <string> includes)
        {
            if (includes == null || includes.Any() == false)
            {
                return;
            }

            foreach (var result in results)
            {
                foreach (var include in includes)
                {
                    IncludesUtil.Include(result, include, id =>
                    {
                        if (id == null)
                        {
                            return;
                        }
                        if (IsLoaded(id) == false)
                        {
                            RegisterMissing(id);
                        }
                    });
                }
            }
        }
Example #2
0
        public async Task include_with_suffix()
        {
            using (var store = GetDocumentStore())
            {
                var order = RavenJObject.FromObject(new Order()
                {
                    CustomerId = "1",
                    Number     = "abc"
                });
                using (var session = store.OpenAsyncSession())
                {
                    await session.StoreAsync(order, "orders/1");

                    await session.SaveChangesAsync();
                }

                var ids = new HashSet <string>(StringComparer.OrdinalIgnoreCase);
                IncludesUtil.Include(order, "CustomerId[{0}/customer]", CustomerId =>
                {
                    if (CustomerId == null)
                    {
                        return(false);
                    }
                    ids.Add(CustomerId);
                    return(true);
                });

                Assert.Equal(new[] { "1/customer", "1" }, ids);
            }
        }
Example #3
0
 public void Execute(RavenJObject document)
 {
     if (Includes == null)
     {
         return;
     }
     foreach (var include in Includes)
     {
         IncludesUtil.Include(document, include, LoadId);
     }
 }
Example #4
0
        public void include_with_suffix()
        {
            using (var context = JsonOperationContext.ShortTermSingleUse())
            {
                var json = DocumentConventions.Default.Serialization.DefaultConverter.ToBlittable(new Order
                {
                    CustomerId = "1",
                    Number     = "abc"
                }, context);

                var ids = new HashSet <string>(StringComparer.OrdinalIgnoreCase);
                IncludesUtil.Include(json, "CustomerId[{0}/customer]", customerId =>
                {
                    if (customerId == null)
                    {
                        return;
                    }

                    ids.Add(customerId);
                });

                Assert.Equal(new[] { "1/customer", "1" }, ids);
            }
        }
Example #5
0
        public void include_with_prefix()
        {
            using (var context = JsonOperationContext.ShortTermSingleUse())
            {
                var json = EntityToBlittable.ConvertCommandToBlittable(new Order
                {
                    CustomerId = "1",
                    Number     = "abc"
                }, context);

                var ids = new HashSet <string>(StringComparer.OrdinalIgnoreCase);
                IncludesUtil.Include(json, "CustomerId(customer/)", customerId =>
                {
                    if (customerId == null)
                    {
                        return;
                    }

                    ids.Add(customerId);
                });

                Assert.Equal(new[] { "customer/1", "1" }, ids);
            }
        }