public async Task<Order> UpdateOrder(Order order)
 {
     string request = "api/Order";
     var response = await ServiceProxy.Instance.PutAsync(request, order, ServiceProxy.Formatter);
     response.EnsureSuccessStatusCode();
     var result = await response.Content.ReadAsAsync<Order>(new[] { ServiceProxy.Formatter });
     return result;
 }
        public OrderDetailView(Order order)
        {
            InitializeComponent();

            // Initialize view model
            ViewModel = (OrderViewModelDetail)DataContext;
            ViewModel.Initialize(order);
            ViewModel.ErrorNotice += OnErrorNotice;
            ViewModel.ResultNotice += OnResultNotice;
        }
示例#3
0
 private static void PrintOrderWithDetails(Order o)
 {
     Console.WriteLine("{0} {1}",
         o.OrderId,
         o.OrderDate.GetValueOrDefault().ToShortDateString());
     foreach (var od in o.OrderDetails)
     {
         Console.WriteLine("\t{0} {1} {2} {3}",
             od.OrderDetailId,
             od.Product.ProductName,
             od.Quantity,
             od.UnitPrice.ToString("c"));
     }
 }
示例#4
0
 private static void PrintOrder(Order o)
 {
     Console.WriteLine("{0} {1}",
         o.OrderId,
         o.OrderDate.GetValueOrDefault().ToShortDateString());
 }
示例#5
0
 private static void DeleteOrder(HttpClient client, Order order)
 {
     string request = "api/Order/" + order.OrderId;
     var response = client.DeleteAsync(request).Result;
     response.EnsureSuccessStatusCode();
 }
示例#6
0
 private static Order UpdateOrder(HttpClient client, Order order)
 {
     string request = "api/Order";
     var response = client.PutAsJsonAsync(request, order).Result;
     response.EnsureSuccessStatusCode();
     var result = response.Content.ReadAsAsync<Order>().Result;
     return result;
 }
示例#7
0
        static void Main(string[] args)
        {
            // Main method
            
            Console.WriteLine("Press Enter to start");
            Console.ReadLine();

            // Create http client
            const string serviceBaseAddress = "http://localhost:" + "49580" + "/";
            var client = new HttpClient { BaseAddress = new Uri(serviceBaseAddress) };

            // Get customers
            Console.WriteLine("Customers:");
            IEnumerable<Customer> customers = GetCustomers(client);
            if (customers == null) return;
            foreach (var c in customers)
                PrintCustomer(c);

            // Get orders for a customer
            Console.WriteLine("\nGet customer orders {CustomerId}:");
            string customerId = Console.ReadLine();
            if (!customers.Any(c => string.Equals(c.CustomerId, customerId, StringComparison.OrdinalIgnoreCase)))
            {
                Console.WriteLine("Invalid customer id: {0}", customerId.ToUpper());
                return;
            }
            IEnumerable<Order> orders = GetCustomerOrders(client, customerId);
            foreach (var o in orders)
                PrintOrder(o);

            // Get an order
            Console.WriteLine("\nGet an order {OrderId}:");
            int orderId = int.Parse(Console.ReadLine());
            if (!orders.Any(o => o.OrderId == orderId))
            {
                Console.WriteLine("Invalid order id: {0}", orderId);
                return;
            }
            Order order = GetOrder(client, orderId);
            PrintOrderWithDetails(order);

            // Create a new order
            Console.WriteLine("\nPress Enter to create a new order for {0}",
                customerId.ToUpper());
            Console.ReadLine();

            var newOrder = new Order
            {
                CustomerId = customerId,
                OrderDate = DateTime.Today,
                ShippedDate = DateTime.Today.AddDays(1),
                OrderDetails = new ChangeTrackingCollection<OrderDetail>
                    {
                        new OrderDetail { ProductId = 1, Quantity = 5, UnitPrice = 10 },
                        new OrderDetail { ProductId = 2, Quantity = 10, UnitPrice = 20 },
                        new OrderDetail { ProductId = 4, Quantity = 40, UnitPrice = 40 }
                    }
            };
            var createdOrder = CreateOrder(client, newOrder);
            PrintOrderWithDetails(createdOrder);

            // Update the order
            Console.WriteLine("\nPress Enter to update order details");
            Console.ReadLine();

            // Start change-tracking the order
            var changeTracker = new ChangeTrackingCollection<Order>(createdOrder);

            // Modify order details
            createdOrder.OrderDetails[0].UnitPrice++;
            createdOrder.OrderDetails.RemoveAt(1);
            createdOrder.OrderDetails.Add(new OrderDetail
            {
                OrderId = createdOrder.OrderId,
                ProductId = 3,
                Quantity = 15,
                UnitPrice = 30
            });

            // Submit changes
            var changedOrder = changeTracker.GetChanges().SingleOrDefault();
            var updatedOrder = UpdateOrder(client, changedOrder);

            // Merge changes
            changeTracker.MergeChanges(updatedOrder);
            Console.WriteLine("Updated order:");
            PrintOrderWithDetails(createdOrder);

            // Delete the order
            Console.WriteLine("\nPress Enter to delete the order");
            Console.ReadLine();
            DeleteOrder(client, createdOrder);

            // Verify order was deleted
            var deleted = VerifyOrderDeleted(client, createdOrder.OrderId);
            Console.WriteLine(deleted ?
                "Order was successfully deleted" :
                "Order was not deleted");

            // Keep console open
            Console.WriteLine("Press any key to exit");
            Console.ReadKey(true);
        }