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); } }); } } }
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); } }
public void Execute(RavenJObject document) { if (Includes == null) { return; } foreach (var include in Includes) { IncludesUtil.Include(document, include, LoadId); } }
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); } }
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); } }