public void AverageOrderAmountShouldBeCalculatedCorrectly() { using (var store = NewDocumentStore()) { var ordersAverageAmount = new OrdersAverageAmount(); ordersAverageAmount.Execute(store); store.DatabaseCommands.Put("Raven/IndexedProperties/" + ordersAverageAmount.IndexName, null, RavenJObject.FromObject(new IndexedPropertiesSetupDoc { DocumentKey = "CustomerId", FieldNameMappings = { { "AverageOrderAmount", "AverageOrderAmount" } } }), new RavenJObject()); using (var session = store.OpenSession()) { session.Store(new Customer { Id = "customers/1", Name = "Customer 1" }); session.Store(new Customer { Id = "customers/2", Name = "Customer 2" }); session.Store(new Order { Id = "orders/1", CustomerId = "customers/1", TotalAmount = 10 }); session.Store(new Order { Id = "orders/2", CustomerId = "customers/1", TotalAmount = 5 }); session.Store(new Order { Id = "orders/3", CustomerId = "customers/1", TotalAmount = 3 }); session.Store(new Order { Id = "orders/4", CustomerId = "customers/2", TotalAmount = 1 }); session.Store(new Order { Id = "orders/5", CustomerId = "customers/2", TotalAmount = 2 }); session.SaveChanges(); } WaitForIndexing(store); using (var session = store.OpenSession()) { var customer1 = session.Load <Customer>("customers/1"); var customer2 = session.Load <Customer>("customers/2"); Assert.Equal(6m, customer1.AverageOrderAmount); Assert.Equal(1.5m, customer2.AverageOrderAmount); } } }
public void Sample() { using (var store = NewDocumentStore()) { #region indexed_properties_0 store.DatabaseCommands.CreateDatabase(new DatabaseDocument { Id = "ExampleDB", Settings = { { "Raven/ActiveBundles", "IndexedProperties" } } }); #endregion #region indexed_properties_4 var ordersAverageAmount = new OrdersAverageAmount(); ordersAverageAmount.Execute(store); store.DatabaseCommands.Put("Raven/IndexedProperties/" + ordersAverageAmount.IndexName, null, RavenJObject.FromObject(new IndexedPropertiesSetupDoc { DocumentKey = "CustomerId", FieldNameMappings = { { "AverageOrderAmount", "AverageOrderAmount" } } }), new RavenJObject()); #endregion #region indexed_properties_5 using (var session = store.OpenSession()) { session.Store(new Customer { Id = "customers/1", Name = "Customer 1" }); session.Store(new Customer { Id = "customers/2", Name = "Customer 2" }); session.Store(new Order { Id = "orders/1", CustomerId = "customers/1", TotalAmount = 10 }); session.Store(new Order { Id = "orders/2", CustomerId = "customers/1", TotalAmount = 5 }); session.Store(new Order { Id = "orders/3", CustomerId = "customers/1", TotalAmount = 3 }); session.Store(new Order { Id = "orders/4", CustomerId = "customers/2", TotalAmount = 1 }); session.Store(new Order { Id = "orders/5", CustomerId = "customers/2", TotalAmount = 3 }); session.SaveChanges(); } #endregion #region indexed_properties_6 using (var session = store.OpenSession()) { var customer1 = session.Load <Customer>("customers/1"); // AverageOrderAmount is 6 var customer2 = session.Load <Customer>("customers/2"); // AverageOrderAmount is 1.5 } #endregion } }