public DeletePickupResponse RequestDeletePickup(DeletePickupRequest req)
        {
            // Validate the request

            List <ValidationResult> validationResult = Common.Validate(ref req);

            if (validationResult.Any())
            {
                string errors = MyDHLAPIValidationException.PrintResults(validationResult);
                throw new MyDHLAPIValidationException(validationResult);
            }

            LastJSONRequest              = JsonConvert.SerializeObject(req, Formatting.Indented);
            LastDeletePickupJSONRequest  = LastJSONRequest;
            LastJSONResponse             = SendRequestAndReceiveResponse(LastJSONRequest, "DeleteShipment");
            LastDeletePickupJSONResponse = LastJSONResponse;

            DeletePickupResponse retval;

            try
            {
                // Deserialize the result back to an object.
                List <string> errors = new List <string>();

                retval = JsonConvert.DeserializeObject <DeletePickupResponse>(LastJSONResponse
                                                                              , new JsonSerializerSettings()
                {
                    Error = delegate(object sender, Newtonsoft.Json.Serialization.ErrorEventArgs args)
                    {
                        errors.Add(args.ErrorContext.Error.Message);
                        args.ErrorContext.Handled = true;
                    }
                });
            }
            catch
            {
                retval = new DeletePickupResponse();
            }

            return(retval);
        }
        private void BtnGo_Click(object sender, EventArgs e)
        {
            MyDHLAPI api = new MyDHLAPI(Common.CurrentCredentials["Username"]
                                        , Common.CurrentCredentials["Password"]
                                        , Common.CurrentRestBaseUrl);

            try
            {
                this.Enabled       = false;
                this.UseWaitCursor = true;
                Cursor.Current     = Cursors.WaitCursor;

                if (string.IsNullOrWhiteSpace(txtPickupCountry.Text) ||
                    string.IsNullOrWhiteSpace(txtRequestorName.Text))
                {
                    MessageBox.Show(@"Missing data.");
                    return;
                }

                txtPickupCountry.Text       = txtPickupCountry.Text.Trim();
                txtRequestorName.Text       = txtRequestorName.Text.Trim();
                txtPickupRequestNumber.Text = txtPickupRequestNumber.Text.Trim();

                DeletePickupRequest req = new DeletePickupRequest
                {
                    DeleteRequest = new DeleteRequest
                    {
                        Request = new Request()
                        {
                            ServiceHeader = new ServiceHeader()
                            {
                                ShippingSystemPlatform        = "MyDHL API Test App",
                                ShippingSystemPlatformVersion = Application.ProductVersion,
                                Plugin        = "MyDHL API C# Library",
                                PluginVersion = api.GetVersion()
                            }
                        },
                        PickupDate          = dtpPickupDate.Value,
                        PickupCountry       = txtPickupCountry.Text,
                        RequestorName       = txtRequestorName.Text,
                        PickupRequestNumber = txtPickupRequestNumber.Text,
                        Reason = (Enums.DeletePickupRequestReason)cmbReason.SelectedValue
                    }
                };

                DeletePickupResponse resp = api.RequestDeletePickupAsync(req).Result;

                if (null != resp)
                {
                    txtResult.Text = Notification.GetAllNotifications(resp.Notifications, Environment.NewLine);
                }
            }
            catch (MyDHLAPIValidationException gvx)
            {
                txtResult.Text = MyDHLAPIValidationException.PrintResults(gvx.ExtractValidationResults(), 0);
            }
            catch (Exception ex)
            {
                txtResult.Text = ex.Message;
            }
            finally
            {
                this.Enabled       = true;
                this.UseWaitCursor = false;
                Cursor.Current     = Cursors.Default;
                _lastJsonRequest   = api.LastDeletePickupJSONRequest;
                _lastJsonResponse  = api.LastDeletePickupJSONResponse;
            }
        }