コード例 #1
0
        private async void ExecuteStatusChanged(object obj)
        {
            if (obj != null && obj.GetType() == typeof(Models.Models.ClientOrder))
            {
                Models.Models.ClientOrder clientOrder = (Models.Models.ClientOrder)obj;
                if (clientOrder.CurrentStatus != clientOrder.Status)
                {
                    bool res = await RestClient.Instance.Put <Models.Models.ClientOrder>(clientOrder, clientOrder.Id);

                    if (res)
                    {
                        clientOrder.CurrentStatus = clientOrder.Status;
                        refreshItem(clientOrder);
                        (List <Models.Models.Product>, List <Models.Models.Product>)products = await updateStock(clientOrder);

                        List <Models.Models.Product> updatedProducts = products.Item1;
                        List <Models.Models.Product> failedProducts  = products.Item2;

                        if (updatedProducts.Count == clientOrder.ClientOrderItems.Count)
                        {
                            this.productsUpdated = updatedProducts;
                            OnPropertyChanged("ShowProductsVisibility");
                            updateResponseMessage("Tous les produits ont été mis à jour", Colors.VALID_COLOR);
                        }
                        else
                        {
                            this.failedProducts = failedProducts;
                            OnPropertyChanged("ShowFailedProductsVisibility");
                            updateResponseMessage((clientOrder.ClientOrderItems.Count - updatedProducts.Count) + " produits n'ont pas été mis à jour", Colors.INVALID_COLOR);
                        }
                    }
                }
            }
        }
コード例 #2
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     Models.Models.ClientOrder clientOrder = (Models.Models.ClientOrder)e.Parameter;
     if (clientOrder != null)
     {
         clientOrderViewModel.SetClientOrder(clientOrder);
     }
 }
コード例 #3
0
        private void refreshItem(Models.Models.ClientOrder clientOrder)
        {
            int index = ClientOrders.IndexOf(clientOrder);

            if (index > 0)
            {
                ClientOrders.RemoveAt(index);
                ClientOrders.Insert(index, clientOrder);
            }
        }
コード例 #4
0
        private async Task <(List <Models.Models.Product>, List <Models.Models.Product>)> updateStock(Models.Models.ClientOrder clientOrder)
        {
            List <Models.Models.Product> updatedProducts = new List <Models.Models.Product>();
            List <Models.Models.Product> failedProducts  = new List <Models.Models.Product>();

            foreach (Models.Models.ClientOrderItem clientOrderItem in clientOrder.ClientOrderItems)
            {
                clientOrderItem.Product.Quantity -= clientOrderItem.Quantity;
                bool res = await RestClient.Instance.Put(clientOrderItem.Product, clientOrderItem.Product.Id);

                if (res)
                {
                    updatedProducts.Add(clientOrderItem.Product);
                }
                else
                {
                    failedProducts.Add(clientOrderItem.Product);
                }
            }

            return(updatedProducts, failedProducts);
        }