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);
        }
        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)));
            }
        }