public void ProcessFailPostCodeTest()
        {
            JustInTimeShippingFacade target = JustInTimeShippingFacade.GetInstance();
            ShippingDetailInfo       detail = new ShippingDetailInfo();

            detail.PackageInfo        = PackageInfoFactory.GetLetterPackageInstance("Plain");
            detail.DeliveryMethod     = DeliveryMethodEnum.Ground;
            detail.OriginAddress      = new AddressInfo("John Doe", "Happy Street", "KL", "Selangor", "5600011");
            detail.DestinationAddress = new AddressInfo("Jane Doe", "Sad Street", "KL", "Selangor", "5600110");

            IResult result = target.Execute(detail);

            Assert.IsFalse(result.IsSuccess);
            Assert.IsTrue(result.Message.Length > 0);
        }
        private void btnProcess_Click(object sender, EventArgs e)
        {
            detail = new ShippingDetailInfo();

            detail.OriginAddress = new AddressInfo(txtSender.Text.Trim(),
                                                   txtSenderStreet.Text.Trim(),
                                                   txtSenderCity.Text.Trim(),
                                                   cbSenderStates.SelectedItem.ToString(),
                                                   txtSenderPostal.Text.Trim());
            detail.DestinationAddress = new AddressInfo(txtReceipient.Text.Trim(),
                                                        txtReceipientStreet.Text.Trim(),
                                                        txtReceipientCity.Text.Trim(),
                                                        cbReceipientStates.SelectedItem.ToString(),
                                                        txtReceipientPostal.Text.Trim());

            detail.IsInsured = chkInsurance.Checked;

            // Capture the PackageInfo
            detail.PackageInfo = GetPackageInfo();


            // Populate package information
            detail.PackageInfo.Weight = weight;

            // Capture Delivery Type
            detail.DeliveryMethod = GetDeliveryMethod();


            IResult processStatus = controller.Execute(detail);

            if (processStatus.IsSuccess)
            {
                //display all info in message box , message returned as object of IResult with property message
                MessageBox.Show(processStatus.Message, "Click OK to Accept or Cancel to decline", MessageBoxButtons.OKCancel);
            }
            else
            {
                MessageBox.Show(processStatus.Message, "Fail");
            }
        }
        public ActionResult Submit(CreateShippingRequestViewModel request, string packageType, string deliveryType)
        {
            IResult result;

            ShippingDetailInfo       detail  = ViewModelHelper.ConvertToShippingDetail(request);
            JustInTimeShippingFacade handler = JustInTimeShippingFacade.GetInstance();

            result = handler.Execute(detail);

            if (!result.IsSuccess)
            {
                PopulateDropDowns(request);

                request.Message = result.Message;

                return(View("Main", request));
            }
            else
            {
                return(View("Review", ViewModelHelper.ConvertToShippingConfirmation(detail)));
            }
        }