Querying orders
This topic contains the following:
- Querying a single order
- Querying orders by customer
- Querying orders by product
- Querying all orders
Querying a single order
To query a single order, you must perform the following:
- Get an instance of the manager.
Get an instance of the OrdersManager object.
- Get the order.
To get the order, you must either call the GetOrder method and pass the ID of the order as an argument, or call the GetOrders method and filter the collection by the desired criteria (e.g. by order number).
Here are examples of querying a single order by ID and by order number:
Querying an order by ID
public static Order GetOrderById(Guid orderId)
{
OrdersManager ordersManager = OrdersManager.GetManager();
Order order = ordersManager.GetOrder(orderId);
return order;
}
Querying an order by order number
public static Order GetOrderByNumber(int orderNumber)
{
OrdersManager ordersManager = OrdersManager.GetManager();
Order order = ordersManager.GetOrders().SingleOrDefault(o => o.OrderNumber == orderNumber);
return order;
}
Querying orders by customer
To query orders by customer, you must perform the following:
- Get an instance of the manager.
Get an instance of the OrdersManager object.
- Get the orders.
To get the orders, you must call the GetOrders method of the manager and filter the query by the ID of the customer.
Here is a code example:
public static IQueryable<Order> GetOrdersByCustomer(Guid customerId)
{
OrdersManager ordersManager = OrdersManager.GetManager();
IQueryable<Order> orders = ordersManager.GetOrders().Where(o => o.Customer.Id == customerId);
return orders;
}
Querying orders by product
To query orders by product, you must perform the following:
- Get an instance of the manager.
Get an instance of the OrdersManager object.
- Get the orders.
To get the orders, you must call the GetOrders method of the manager and filter the query by the ID of the product.
Here is a code example:
public static IQueryable<Order> GetOrdersByProduct(Guid productId)
{
OrdersManager ordersManager = OrdersManager.GetManager();
IQueryable<Order> orders = ordersManager.GetOrders().Where(o => o.Details.Where(d => d.ProductId == productId).Count() > 0);
return orders;
}
Querying all orders
To query all orders, you must perform the following:
- Get an instance of the manager.
Get an instance of the OrdersManager object.
- Get the orders.
To get the orders, you must call the GetOrders method of the manager.
Here is a code example:
public static IQueryable<Order> GetOrders()
{
OrdersManager ordersManager = OrdersManager.GetManager();
IQueryable<Order> orders = ordersManager.GetOrders();
return orders;
}