csharp
public List<Product> GetProducts(string keyword, decimal minPrice, decimal maxPrice)
{
using (var session = DocumentStoreHolder.Store.OpenSession())
{
var query = session.Advanced.DocumentQuery<Product>()
.WhereEquals("Type", "Product")
.AndAlso()
.Search(x => x.Name, keyword)
.AndAlso()
.WhereBetweenOrEqual(x => x.Price, minPrice, maxPrice);
return query.ToList();
}
}
public void SubscribeToInventoryChanges()
{
using (var subscription = DocumentStoreHolder.Store.Subscriptions.Create(new SubscriptionCreationOptions<Product>()))
{
subscription.Subscribe(document =>
{
var product = document.Message;
Console.WriteLine($"Inventory of product {product.Name} has changed to {product.Inventory}");
});
while (true)
{
}
}
}