示例#1
0
        private JSONDataMap doGetRate(ShippoSession session, string rateID, Guid logID)
        {
            try
            {
                var cred = (ShippoCredentials)session.User.Credentials;

                var request = new WebClient.RequestParams(this)
                {
                    Method      = HTTPRequestMethod.GET,
                    ContentType = ContentType.JSON,
                    Headers     = new Dictionary <string, string>
                    {
                        { HDR_AUTHORIZATION, HDR_AUTHORIZATION_TOKEN.Args(cred.PrivateToken) }
                    }
                };

                var response = WebClient.GetJson(new Uri((URI_API_BASE + URI_RATES).Args(rateID)), request);

                checkResponse(response);

                return(response);
            }
            catch (Exception ex)
            {
                var error = ShippingException.ComposeError(ex.Message, ex);
                Log(MessageType.Error, "getRate()", StringConsts.SHIPPO_CREATE_LABEL_ERROR, error, relatedMessageID: logID);
                return(null);
            }
        }
示例#2
0
        public Address ValidateAddress(ShippoSession session, IShippingContext context, Address address, out ValidateShippingAddressException error)
        {
            var logID = Log(MessageType.Info, "ValidateAddress()", StringConsts.SHIPPO_VALIDATE_ADDRESS_MESSAGE);

            try
            {
                return(doValidateAddress(session, context, address, logID, out error));
            }
            catch (Exception ex)
            {
                StatValidateAddressErrorCount();

                var header = StringConsts.SHIPPO_VALIDATE_ADDRESS_ERROR.Args(ex.ToMessageWithType());
                Log(MessageType.Error, "ValidateAddress()", header, ex, logID);
                throw ShippingException.ComposeError(ex.Message, ex);
            }
        }
示例#3
0
        public ShippingRate EstimateShippingCost(ShippoSession session, IShippingContext context, Shipment shipment)
        {
            var logID = Log(MessageType.Info, "EstimateShippingCost()", StringConsts.SHIPPO_ESTIMATE_SHIPPING_COST_MESSAGE.Args(shipment.FromAddress, shipment.ToAddress, shipment.Service.Name));

            try
            {
                return(doEstimateShippingCost(session, context, shipment, logID));
            }
            catch (Exception ex)
            {
                StatEstimateShippingCostErrorCount();

                var header = StringConsts.SHIPPO_ESTIMATE_SHIPPING_COST_ERROR.Args(shipment.FromAddress, shipment.ToAddress, shipment.Service.Name, ex.ToMessageWithType());
                Log(MessageType.Error, "EstimateShippingCost()", header, ex, logID);
                var error = ShippingException.ComposeError(ex.Message, ex);

                throw error;
            }
        }
示例#4
0
        public Label CreateLabel(ShippoSession session, IShippingContext context, Shipment shipment)
        {
            var logID = Log(MessageType.Info, "CreateLabel()", StringConsts.SHIPPO_CREATE_LABEL_MESSAGE.Args(shipment.FromAddress, shipment.ToAddress));

            try
            {
                return(doCreateLabel(session, context, shipment, logID));
            }
            catch (Exception ex)
            {
                StatCreateLabelError();

                var header = StringConsts.SHIPPO_CREATE_LABEL_ERROR.Args(shipment.FromAddress, shipment.ToAddress, ex.ToMessageWithType());
                Log(MessageType.Error, "CreateLabel()", header, ex, logID);
                var error = ShippingException.ComposeError(ex.Message, ex);

                throw error;
            }
        }
示例#5
0
        public TrackInfo TrackShipment(ShippoSession session, IShippingContext context, string trackingNumber) // carrier ID???
        {
            var logID = Log(MessageType.Info, "TrackShipment()", StringConsts.SHIPPO_TRACK_SHIPMENT_MESSAGE.Args(trackingNumber));

            try
            {
                return(doTrackShipment(session, context, trackingNumber, logID));
            }
            catch (Exception ex)
            {
                StatTrackShipmentErrorCount();

                var header = StringConsts.SHIPPO_TRACK_SHIPMENT_ERROR.Args(trackingNumber, ex.ToMessageWithType());
                Log(MessageType.Error, "TrackShipment()", header, ex, logID);
                var error = ShippingException.ComposeError(ex.Message, ex);

                throw error;
            }
        }