//displays order details
 private static void DisplayPurchOrder(FredODataService.PurchTable purch)
 {
     Console.WriteLine("    {0}  {1}   {2}", purch.OrderAccount, purch.PurchId, purch.PurchStatus);
 }
 //displays customer detail
 private static void DisplayCustomer(FredODataService.CustTable cust)
 {
     Console.WriteLine("    {0}  {1}   {2}", cust.AccountNum, cust.RecId, cust.Party);
 }
 //displays vendr details
 private static void DisplayVendor(FredODataService.VendTable vend)
 {
     Console.WriteLine("    {0}  {1}   {2}", vend.AccountNum, vend.RecId, vend.Party);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="container">The Odata connection container</param>
 private static void GetCustomerPurchases(FredODataService.Container container)
 {
     //can use expand expression to get sub-entities within a parent entity
     foreach (var cust in container.VendTables.Expand(p => p.PurchItems))
     {
         DisplayVendor(cust);
         foreach (var purch in cust.PurchItems)
         {
             DisplayPurchOrder(purch);
         }
         
     }
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="container">The Odata connection container</param>
 /// <param name="purchId"></param>
 private static void GetPurchById(FredODataService.Container container, string purchId)
 {
     //can add query options like $filter, $top, $skip, $sort etc like this
     DisplayPurchOrder(container.PurchTables.AddQueryOption("$filter","PurchId eq '"+purchId+"'").SingleOrDefault());
 }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="container">The Odata connection container</param>
        private static void GetCustomerById(FredODataService.Container container)
        {
            Console.WriteLine("    Please enter the customer recId to search (ex:5637146827):");
            long id = Convert.ToInt64(Console.ReadLine());

            //can apply most of the LINQ expressions on the OData entities 
            DisplayCustomer(container.CustTables.Where(p => p.RecId == id).SingleOrDefault());
        }
 /// <summary>
 /// Gets the counts of customers via fred odata
 /// </summary>
 /// <param name="container">The Odata connection container</param>
 private static void CountAllCustomers(FredODataService.Container container)
 {
     //can add additional query parameters on the entities before executing it
     int count = container.CustTables.IncludeTotalCount().Execute().Count();
     Console.WriteLine("    Count of customers:" + count);
 }
  /// <summary>
 /// Gets the list of customers via Fred OData and displays them
 /// </summary>
 /// <param name="container">The Odata connection container</param>
  private static void ListAllCustomers(FredODataService.Container container)
  {            
      //access the enumerable objects under any entity directly 
      foreach (var cust in container.CustTables)
      {
          DisplayCustomer(cust);
      }
  }