Example #1
0
        public static IPostageRateResponse GetPostageRate(IPostageRateRequest request, ILogger logger = null)
        {
            string message;
            IPostageRateResponse postageRateResponse;

            try
            {
                EwsLabelService client = new EwsLabelService();
                postageRateResponse = PostageRateClass.ConstructPostageRateResponse(client.CalculatePostageRate(PostageRateClass.ConstructPostageRateRequest(request)));
            }
            catch (BadRequestException badRequestException)
            {
                message = string.Format("Endicia::Invoker::GetPostageRate Failed({0}).", badRequestException.Message);
                Logger.ExternalLogDebug(logger, message);
                throw;
            }
            catch (Exception exception)
            {
                Exception ex = exception;
                message = string.Format("Endicia::Invoker::GetPostageRate Failed({0}).", ex.Message);
                Logger.ExternalLogDebug(logger, message);
                throw new Exception(message, ex);
            }
            return(postageRateResponse);
        }
Example #2
0
        internal static PostageRateRequest ConstructPostageRateRequest(IPostageRateRequest request)
        {
            DateTime           shipDateTime;
            PostageRateRequest postageRateRequest = new PostageRateRequest()
            {
                RequesterID = ToolsClass.GetRequesterID
            };
            CertifiedIntermediary certifiedIntermediary = new CertifiedIntermediary()
            {
                AccountID  = request.AccountID,
                PassPhrase = request.PassPhrase
            };

            postageRateRequest.CertifiedIntermediary = certifiedIntermediary;
            postageRateRequest.DateAdvance           = ConfigManager.Current.DefaultDateAdvance;
            postageRateRequest.Pricing  = Parsers.ParsePricing(request.Pricing);
            postageRateRequest.WeightOz = request.PackageDetails.WeightOz;
            Dimensions dimension = new Dimensions()
            {
                Height = request.PackageDetails.Height,
                Width  = request.PackageDetails.Width,
                Length = request.PackageDetails.Length
            };

            postageRateRequest.MailpieceDimensions   = dimension;
            postageRateRequest.AutomationRate        = ConfigManager.Current.DefaultAutomationRate;
            postageRateRequest.PackageTypeIndicator  = ConfigManager.Current.DefaultPackageTypeIndicator;
            postageRateRequest.Machinable            = ConfigManager.Current.DefaultMachinable;
            postageRateRequest.ServiceLevel          = ConfigManager.Current.DefaultServiceLevel;
            postageRateRequest.SundayHolidayDelivery = ConfigManager.Current.DefaultSundayHolidayDelivery;
            SpecialServices specialService = new SpecialServices()
            {
                DeliveryConfirmation    = ToolsClass.ParseBoolONOFF(request.DeliveryConfirmation),
                SignatureConfirmation   = ToolsClass.ParseBoolONOFF(request.SignatureConfirmation),
                CertifiedMail           = ConfigManager.Current.DefaultCertifiedMail,
                RestrictedDelivery      = ConfigManager.Current.DefaultRestrictedDelivery,
                ReturnReceipt           = ConfigManager.Current.DefaultReturnReceipt,
                ElectronicReturnReceipt = ConfigManager.Current.DefaultElectornicReturnReceipt,
                HoldForPickup           = ConfigManager.Current.DefaultHoldForPickup,
                OpenAndDistribute       = ConfigManager.Current.DefaultOpenAndDistribute,
                COD            = ConfigManager.Current.DefaultCOD,
                InsuredMail    = Parsers.ParseInsuredMail(request.InsuredMail),
                AdultSignature = ConfigManager.Current.DefaultAdultSignature,
                AdultSignatureRestrictedDelivery = ConfigManager.Current.DefaultAdultSignatureRestrictedDelivery
            };

            postageRateRequest.Services       = specialService;
            postageRateRequest.EntryFacility  = ConfigManager.Current.DefaultEntryFacility;
            postageRateRequest.Value          = request.OrderValueForInsurance;
            postageRateRequest.InsuredValue   = request.OrderValueForInsurance.ToString();
            postageRateRequest.FromPostalCode = request.FromPostalCode;
            postageRateRequest.ToPostalCode   = request.TargetAddress.PostalCode;
            postageRateRequest.ToCountry      = request.TargetAddress.Country;
            postageRateRequest.ToCountryCode  = request.TargetAddress.CountryCode;
            ResponseOptions responseOption = new ResponseOptions()
            {
                PostagePrice = ConfigManager.Current.DefaultResponseOptions
            };

            postageRateRequest.ResponseOptions = responseOption;
            postageRateRequest.MailClass       = Parsers.ParseMailClass(request.MailClass);
            PostageRateRequest result = postageRateRequest;

            try
            {
                shipDateTime    = request.ShipDateTime;
                result.ShipDate = shipDateTime.ToString("MM/dd/yyyy");
            }
            catch
            {
                shipDateTime    = DateTime.Now;
                result.ShipDate = shipDateTime.ToString("MM/dd/yyyy");
            }
            try
            {
                shipDateTime    = request.ShipDateTime;
                result.ShipTime = shipDateTime.ToString("hh:mm tt");
            }
            catch
            {
                shipDateTime    = DateTime.Now;
                result.ShipDate = shipDateTime.ToString("hh:mm tt");
            }
            return(result);
        }