Пример #1
0
        /// <summary>
        /// Robert Forbes
        /// Created: 2017/03/09
        ///
        /// Creates a new delivery in the database and assignes all packages in the proposed list to the new delivery
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCreateDelivery_Click(object sender, RoutedEventArgs e)
        {
            if (_proposedPackages.Count > 0)
            {
                if (dpDeliveryDate.SelectedDate != null)
                {
                    try
                    {
                        Delivery delivery = new Delivery()
                        {
                            RouteId        = null,
                            DeliveryDate   = dpDeliveryDate.SelectedDate,
                            Verification   = null,
                            StatusId       = "Ready For Assignment",
                            DeliveryTypeId = "Drop off",
                            OrderId        = _orderId
                        };
                        int            deliveryId = _deliveryManager.CreateDeliveryAndRetrieveDeliveryId(delivery);
                        List <Package> toBeRemovedFromProposed = new List <Package>();
                        foreach (Package p in _proposedPackages)
                        {
                            if (!_packageManager.UpdatePackageDelivery(p.PackageId, deliveryId))
                            {
                                MessageBox.Show("There was a problem assigning package: " + p.PackageId + " to the delivery");
                            }
                            else
                            {
                                toBeRemovedFromProposed.Add(p);
                            }
                        }

                        foreach (Package p in toBeRemovedFromProposed)
                        {
                            _proposedPackages.Remove(p);
                        }
                        LoadPackages();
                        RefreshListViews();
                    }catch {
                        MessageBox.Show("There was a problem communicating with the database");
                    }
                }
                else
                {
                    MessageBox.Show("Please enter a delivery date");
                }
            }
            else
            {
                MessageBox.Show("You cannot create an empty delivery");
            }
        }