Ejemplo n.º 1
0
        private void _UpdateOrderList(RequestNS.RequestOrderStatus orderStatus)
        {
            try {
                lock (this._LockCurrentOrders) {
                    DTO.Order editOrder = this._CurrentOrders.FirstOrDefault(x => x.OrderId == orderStatus.OrderId);

                    if (editOrder == null)
                    {
                        editOrder         = new DTO.Order();
                        editOrder.OrderId = orderStatus.OrderId;
                        this._CurrentOrders.Add(editOrder);
                    }

                    DTO.Order updatedOrder = orderStatus.GetOrder();

                    editOrder.DrinkId = updatedOrder.DrinkId;
                    editOrder.ExpectedSecondsToDeliver = updatedOrder.ExpectedSecondsToDeliver;
                    editOrder.OrderStatus  = updatedOrder.OrderStatus;
                    editOrder.OrderStateId = updatedOrder.OrderStateId;

                    this._CleanupCompletedOrders();

                    this._NotifyOrderChanged((DTO.Order)editOrder.Clone());
                }
            } catch (InvalidOperationException) {
            } catch (ArgumentNullException) {
            }
        }
Ejemplo n.º 2
0
        void orderUpdaterequest_OnRequestCompleted(object sender, RequestNS.RequestCompletedEventArgs e)
        {
            RequestNS.RequestOrderStatus orderStatus = e.Request as RequestNS.RequestOrderStatus;

            if (e.Request.State != RequestNS.RequestStates.Successful)
            {
                this._HandleFailedOrderRequest(orderStatus);
            }
            else
            {
                this._UpdateOrderList(orderStatus);
            }
        }
Ejemplo n.º 3
0
        private void _HandleFailedOrderRequest(RequestNS.RequestOrderStatus failedRequest)
        {
            DTO.Order failedOrder = null;
            lock (this._LockCurrentOrders) {
                failedOrder = this._CurrentOrders.FirstOrDefault(x => x.OrderId == failedRequest.OrderId);
                if (failedOrder != null)
                {
                    this._CurrentOrders.Remove(failedOrder);
                }
            }
            failedOrder.OrderStateId = DTO.StateId.Failed;
            this._NotifyOrderChanged(failedOrder);

            return;
        }