private RatesRequest CreateGetRatesRequest()
        {
            RatesRequest ratesRequest = new RatesRequest();

            ratesRequest.ClientName    = "ProStar";
            ratesRequest.SubClientName = "";
            ratesRequest.SecurityToken = SecurityToken;
            ratesRequest.CarrierList   = new List <string>()
            {
                "USPS"
            };
            ratesRequest.ServiceTypeList = new List <string>()
            {
                "PriorityMail"
            };
            ratesRequest.ShipDate        = DateTime.Now.AddDays(1);
            ratesRequest.PackageType     = "Package";
            ratesRequest.DeclaredValue   = 20;
            ratesRequest.Height          = 3;
            ratesRequest.Width           = 3;
            ratesRequest.Length          = 3;
            ratesRequest.WeightInLbs     = 5;
            ratesRequest.ShipToAddress   = ToAddress;
            ratesRequest.ShipFromAddress = FromAddress;

            return(ratesRequest);
        }
Exemplo n.º 2
0
        public RatesResponse GetShippingRates(RatesRequest request)
        {
            RatesResponse response = null;


            //Calculate rates based on the request shippingfrom and shippingto information
            //Do something here....

            //Hardcoding shipping rates for this sample app
            List <Shippingmethod> shippingmethods = new List <Shippingmethod>();

            shippingmethods.Add(new Shippingmethod()
            {
                methodname = "DHL Priority", rate = 32.00
            });
            shippingmethods.Add(new Shippingmethod()
            {
                methodname = "USPS First Class", rate = 3.00
            });
            shippingmethods.Add(new Shippingmethod()
            {
                methodname = "UPS Ground", rate = 12.00
            });

            response = new RatesResponse()
            {
                shippingmethods = shippingmethods
            };

            return(response);
        }
Exemplo n.º 3
0
        public async void TestGetRatesAsync()
        {
            // This is the example from the API docs
            var ratesRequest = new RatesRequest
            {
                CarrierCode    = "fedex",
                FromPostalCode = "78703",
                ToState        = "DC",
                ToCountry      = "US",
                ToPostalCode   = "20500",
                ToCity         = "Washington",
                Weight         = new Weight
                {
                    Value = 3,
                    Units = WeightUnits.Ounces
                },
                Dimensions = new Dimensions
                {
                    Units  = DimensionsUnits.Inches,
                    Length = 7,
                    Width  = 5,
                    Height = 6
                },
                Confirmation  = "delivery",
                IsResidential = false
            };

            var rates = await Client.Shipments.GetRatesAsync(ratesRequest) as List <Rate>;

            Assert.True(rates.Count > 0);
        }
Exemplo n.º 4
0
        public async Task <RatesResponse> GetRates(string baseCurrency)
        {
            var grpcRequest = new RatesRequest()
            {
                BaseCurrency = baseCurrency
            };

            return(await _grpcClient.GetRatesAsync(grpcRequest));
        }
        public void GetRates()
        {
            RatesRequest ratesRequest = CreateGetRatesRequest();

            VisibleRequest visibleRequest = new VisibleRequest(ratesRequest, "Rates/Retrieve");
            RatesResponse  ratesResponse  = visibleRequest.Execute <RatesResponse>();

            Assert.AreEqual(0, ratesResponse.ResultCode);
        }
Exemplo n.º 6
0
 public static RatesInputModel MapToModel(this RatesRequest request)
 {
     return(new RatesInputModel
     {
         BaseCurrency = request.BaseCurrency,
         TargetCurrency = request.TargetCurrency,
         Dates = request.Dates
     });
 }
        public void Unsupported_Currencies_Throws_ApplicationException()
        {
            var request = new RatesRequest();

            request.From = "Foo";
            request.To   = "Bar";

            Assert.Throws <ApplicationException>(() => _service.GetExchange(request));
        }
        public void USD_To_BRL_Returns_Quarter()
        {
            var request = new RatesRequest();

            request.From = "BRL";
            request.To   = "USD";
            var response = _service.GetExchange(request);

            Assert.AreEqual(0.25, response.To.Amount);
        }
Exemplo n.º 9
0
        public async Task <IActionResult> GetRates([FromRoute] RatesRequest request)
        {
            var rates = await ratesService.GetRates(request.From, request.To);

            return(this.Ok(new RatesResponse()
            {
                From = request.From,
                Rates = rates.ToArray()
            }));
        }
        public void BRL_To_USD_Returns_Four()
        {
            var request = new RatesRequest();

            request.From = "USD";
            request.To   = "BRL";
            var response = _service.GetExchange(request);

            Assert.AreEqual(4, response.To.Amount);
        }
        public void Negative_Amount_Returns_Negative()
        {
            var request = new RatesRequest();

            request.From   = "USD";
            request.To     = "BRL";
            request.Amount = -1;
            var response = _service.GetExchange(request);

            Assert.Negative(response.To.Amount);
        }
        public async Task <ActionResult <RatesResponse> > Get([FromQuery] RatesRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(await Task.FromResult(BadRequest(ModelState)));
            }

            var result = await _fixerIoService.GetLatestRatesAsync(request.BaseCurrency, request.TargetCurrency);

            return(Ok(result.ToRatesResponse(request.BaseCurrency, request.TargetCurrency)));
        }
        public void Zero_Amount_Returns_Zero()
        {
            var request = new RatesRequest();

            request.From   = "USD";
            request.To     = "BRL";
            request.Amount = 0;
            var response = _service.GetExchange(request);

            Assert.AreEqual(0, response.To.Amount);
        }
Exemplo n.º 14
0
 public ActionResult <RatesResponse> Rates([FromQuery] RatesRequest request)
 {
     try
     {
         var response = _service.GetExchange(request);
         return(Ok(response));
     }
     catch (ApplicationException ex)
     {
         return(BadRequest(ex.Message));
     }
 }
Exemplo n.º 15
0
        public async Task GetAll_WhenCalled_ReturnsNoContent()
        {
            var model = new RatesRequest
            {
                From = "NONE"
            };

            var response = await _ratesController.GetAll(model);

            var result = response.Result as NoContentResult;

            Assert.IsType <NoContentResult>(result);
        }
Exemplo n.º 16
0
        // GET: Rates
        public ActionResult GetRates(RatesRequest jsonRatesRequest)
        {
            RatesResponse jsonRatesResponse = null;
            bool          isValid           = false;

            //Validate credentials
            try
            {
                isValid = _ratesService.ValidateCredentials();
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized, ex.Message));
            }

            if (!isValid)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized, "Invalid Credentials"));
            }

            //Validate request
            try
            {
                isValid = _ratesService.ValidateRequest(jsonRatesRequest);
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, ex.Message));
            }

            if (!isValid)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Bad Request"));
            }

            //Proceed to calculates the rates
            try
            {
                jsonRatesResponse = _ratesService.GetShippingRates(jsonRatesRequest);
            }
            catch { }

            if (jsonRatesResponse == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            return(Json(jsonRatesResponse));
        }
Exemplo n.º 17
0
        /// <summary>
        /// Gets the rates for a specified postal code destination and package dimensions asynchronous.
        /// </summary>
        /// <param name="model">The rates model.</param>
        /// <param name="token">The cancellation token.</param>
        /// <returns>A task of <see cref="RatesResponse"/></returns>
        public async Task <RatesResponse> GetRatesAsync(RatesModel model, CancellationToken token)
        {
            var data = new RatesRequest
            {
                Token         = _token,
                PostalCode    = model.PostalCode,
                DeclaredValue = model.DeclaredValue.ToString(CultureInfo.InvariantCulture),
                Height        = model.Dimensions.Height.ToString(CultureInfo.InvariantCulture),
                Length        = model.Dimensions.Length.ToString(CultureInfo.InvariantCulture),
                Weight        = model.Dimensions.Weight.ToString(CultureInfo.InvariantCulture),
                Width         = model.Dimensions.Width.ToString(CultureInfo.InvariantCulture)
            };

            return(await _service.Post <RatesResponse, RatesRequest>(data, token).ConfigureAwait(_configureAwait));
        }
Exemplo n.º 18
0
        public async Task Get_WhenCalled_ReturnsServerError()
        {
            var model = new RatesRequest
            {
                From = "",
                To   = ""
            };

            var response = await _ratesController.Get(model);

            var result = response.Result as StatusCodeResult;

            Assert.IsType <StatusCodeResult>(result);
            Assert.Equal(500, result.StatusCode);
        }
Exemplo n.º 19
0
        public async Task GetAll_WhenCalled_ReturnsOk()
        {
            var model = new RatesRequest
            {
                From = "USD"
            };

            var response = await _ratesController.GetAll(model);

            var result = response.Result as OkObjectResult;

            Assert.IsType <OkObjectResult>(result);
            Assert.IsType <RatesResponse>(result.Value);
            Assert.Equal(model.From, (result.Value as RatesResponse).From);
            Assert.NotEmpty((result.Value as RatesResponse).Rates);
        }
Exemplo n.º 20
0
        public RatesResponse GetExchange(RatesRequest request)
        {
            var response = new RatesResponse();

            var sourceCurrency = SupportedCurrencies.Currencies.Find(c => c.Code == request.From?.ToUpper());
            var targetCurrency = SupportedCurrencies.Currencies.Find(c => c.Code == request.To?.ToUpper());


            if (sourceCurrency != null && targetCurrency != null)
            {
                response.From = new Exchange(sourceCurrency, request.Amount);
                response.To   = _quotes.GetExchanges(sourceCurrency, targetCurrency, request.Amount);

                return(response);
            }

            throw new ApplicationException(string.Format("Conversão de {0} para {1} não suportada!", request.From, request.To));
        }
Exemplo n.º 21
0
        public bool ValidateRequest(RatesRequest jsonRatesRequest)
        {
            bool isValid = true;

            var request = _httpContextService.Request;

            if (string.IsNullOrEmpty(request.ContentType) || request.ContentType != "application/json; charset= utf-8")
            {
                throw new Exception("The content type is either empty or isn't application/json.");
            }

            if (string.IsNullOrEmpty(request.HttpMethod) || request.HttpMethod != "POST")
            {
                throw new Exception("The HttpMethod is either empty or isn't POST.");
            }

            //Validate JSON request checking all the required information is valid

            if (jsonRatesRequest.shippingfrom == null)
            {
                isValid = false;
            }
            else
            if (string.IsNullOrEmpty(jsonRatesRequest.shippingfrom.country) || string.IsNullOrEmpty(jsonRatesRequest.shippingfrom.state))
            {
                isValid = false;
            }

            if (jsonRatesRequest.shippingto == null)
            {
                isValid = false;
            }
            else
            if (string.IsNullOrEmpty(jsonRatesRequest.shippingto.postalcode) || string.IsNullOrEmpty(jsonRatesRequest.shippingto.country) || string.IsNullOrEmpty(jsonRatesRequest.shippingto.state))
            {
                isValid = false;
            }

            //Do anay other validation here

            return(isValid);
        }
Exemplo n.º 22
0
        public async Task <ActionResult <RatesResponse> > Get([FromRoute] RatesRequest model)
        {
            try
            {
                var data = await _redisRepository.GetExchangeInfo(Enum.Parse <ExchangeType>(model.From.ToUpperInvariant()), Enum.Parse <ExchangeType>(model.To.ToUpperInvariant()));

                var result = data.ToRatesResponse();

                if (!result.Rates.Any())
                {
                    return(NoContent());
                }

                return(Ok(result));
            }
            catch (Exception ex)
            {
                _logger.LogCritical(ex, ex.Message);

                return(StatusCode(500));
            }
        }
Exemplo n.º 23
0
        public override async Task <RatesResponse> GetRates(RatesRequest request, ServerCallContext context)
        {
            var serializeOptions = new JsonSerializerOptions
            {
                PropertyNamingPolicy = JsonNamingPolicy.CamelCase
            };

            var httpClient = _httpClientFactory.CreateClient("ExchangeRateHttpClient");
            var uri        = $"https://api.exchangeratesapi.io/latest?base={request.BaseCurrency}";

            var apiResponse = await httpClient.GetFromJsonAsync <FxResponse>(uri, serializeOptions);

            var result = new RatesResponse()
            {
                BaseCurrency = request.BaseCurrency, Date = apiResponse.Date
            };

            result.Rates.Add(apiResponse.Rates);

            //TODO: cache this result.

            return(result);
        }
Exemplo n.º 24
0
        public async Task <RateResponse> MakeNegotiatedRateRequest(RatesRequest req)
        {
            var settings = new JsonSerializerSettings
            {
                NullValueHandling     = NullValueHandling.Ignore,
                MissingMemberHandling = MissingMemberHandling.Ignore
            };


            var json = JsonConvert.SerializeObject(req);

            var response = await _httpClient.PostAsync("Rate", new StringContent(json, Encoding.UTF8, "application/json"));

            if (!response.IsSuccessStatusCode)
            {
            }

            var one = await response.Content.ReadAsStringAsync();

            var responseData = JsonConvert.DeserializeObject <RootRatedResponse>(await response.Content.ReadAsStringAsync(), settings).RateResponse;


            return(responseData);
        }
Exemplo n.º 25
0
        public void Init()
        {
            this.apiClient = Setup.GetClient();
            this.request   = new RatesRequest()
            {
                pickupDate         = new DateTime(2014, 12, 1)
                , originPostalCode = "30303"
                , originType       = "business dock"
                , destPostalCode   = "60606"
                , destType         = "business dock"
                , paymentTerms     = "Outbound Prepaid"
                , items            = new List <QuoteItem>()
                {
                    new QuoteItem()
                    {
                        freightClass = 50
                        , weight     = 500
                        , length     = 48
                        , width      = 48
                        , height     = 48
                        , hazardous  = false
                        , pieces     = 1
                        , package    = "Pallets_other"
                    }
                }
                , charges = new List <string>()
                {
                    "liftgate pickup"
                }
            };

            var task = apiClient.GetRates(request);

            task.Wait(30000);
            this.result = task.Result;
        }
Exemplo n.º 26
0
 /// <summary>
 /// Retrieves shipping rates for the specified shipping details.
 /// </summary>
 /// <param name="request">A request that specifies the parameters of a shipment.</param>
 /// <returns>A list of rates matching the requested shipment.</returns>
 public Task <IList <Rate> > GetRatesAsync(RatesRequest request)
 {
     return(PostDataAsync <RatesRequest, IList <Rate> >("getrates", request));
 }
Exemplo n.º 27
0
        public async Task <ActionResult> GetNegotiatedRates([FromBody] RatesForm form)
        {
            var req = new RatesRequest(_config.Value);

            //This is all going to have less values hardcoded and should probably be moved somewhere else.


            //ShipmentRequest
            req.RateRequest.Request.RequestOption = "Rate";
            req.RateRequest.Request.TransactionReference.CustomerContext = "Your Customer Context";

            //Shipment
            req.RateRequest.Shipment.Description = "Description";
            req.RateRequest.Shipment.ShipmentRatingOptions.NegotiatedRatesIndicator = "0";

            //Shipper
            req.RateRequest.Shipment.Shipper.Name                    = form.NameFrom;
            req.RateRequest.Shipment.Shipper.AttentionName           = form.NameFrom;
            req.RateRequest.Shipment.Shipper.TaxIdentificationNumber = "faketaxcode";
            req.RateRequest.Shipment.Shipper.Phone.Number            = form.PhoneFrom;
            req.RateRequest.Shipment.Shipper.Phone.Extension         = "1";
            req.RateRequest.Shipment.Shipper.ShipperNumber           = _config.Value.ShipperNumber;
            req.RateRequest.Shipment.Shipper.FaxNumber               = form.PhoneFrom;

            //Shipper address
            req.RateRequest.Shipment.Shipper.Address.AddressLine       = form.AddressFrom;
            req.RateRequest.Shipment.Shipper.Address.City              = form.CityFrom;
            req.RateRequest.Shipment.Shipper.Address.StateProvinceCode = form.StateFrom;
            req.RateRequest.Shipment.Shipper.Address.PostalCode        = form.ZipFrom;
            req.RateRequest.Shipment.Shipper.Address.CountryCode       = form.CountryFrom;

            //Ship to
            req.RateRequest.Shipment.ShipTo.Name                      = form.NameTo;
            req.RateRequest.Shipment.ShipTo.AttentionName             = form.NameTo;
            req.RateRequest.Shipment.ShipTo.Phone.Number              = form.PhoneTo;
            req.RateRequest.Shipment.ShipTo.Phone.Extension           = "1";
            req.RateRequest.Shipment.ShipTo.Address.AddressLine       = form.AddressTo;
            req.RateRequest.Shipment.ShipTo.Address.City              = form.CityTo;
            req.RateRequest.Shipment.ShipTo.Address.StateProvinceCode = form.StateTo;
            req.RateRequest.Shipment.ShipTo.Address.PostalCode        = form.ZipTo;
            req.RateRequest.Shipment.ShipTo.Address.CountryCode       = form.CountryTo;

            //Ship from
            req.RateRequest.Shipment.ShipFrom.Name                      = form.NameFrom;
            req.RateRequest.Shipment.ShipFrom.AttentionName             = form.NameFrom;
            req.RateRequest.Shipment.ShipFrom.Phone.Number              = form.PhoneFrom;
            req.RateRequest.Shipment.ShipFrom.Phone.Extension           = "1";
            req.RateRequest.Shipment.ShipFrom.FaxNumber                 = form.PhoneFrom;
            req.RateRequest.Shipment.ShipFrom.Address.AddressLine       = form.AddressFrom;
            req.RateRequest.Shipment.ShipFrom.Address.City              = form.CityFrom;
            req.RateRequest.Shipment.ShipFrom.Address.StateProvinceCode = form.StateFrom;
            req.RateRequest.Shipment.ShipFrom.Address.PostalCode        = form.ZipFrom;
            req.RateRequest.Shipment.ShipFrom.Address.CountryCode       = form.CountryFrom;

            //PaymentInformation
            //req.RateRequest.Shipment.PaymentInformation.ShipmentCharge.Type = "01";
            //req.RateRequest.Shipment.PaymentInformation.ShipmentCharge.BillShipper.AccountNumber = _config.Value.ShipperNumber;

            //Service
            req.RateRequest.Shipment.Service.Description = "Service code description";
            req.RateRequest.Shipment.Service.Code        = "02";

            //Package
            req.RateRequest.Shipment.Package.Description           = form.PackageDescription;
            req.RateRequest.Shipment.Package.Packaging.Code        = "02";
            req.RateRequest.Shipment.Package.Packaging.Description = "Description";

            req.RateRequest.Shipment.Package.Dimensions.UnitOfMeasurement.Code        = "IN";
            req.RateRequest.Shipment.Package.Dimensions.UnitOfMeasurement.Description = "Inches";
            req.RateRequest.Shipment.Package.Dimensions.Length = form.Length;
            req.RateRequest.Shipment.Package.Dimensions.Width  = form.Width;
            req.RateRequest.Shipment.Package.Dimensions.Height = form.Height;

            req.RateRequest.Shipment.Package.PackageWeight.UnitOfMeasurement.Code        = "LBS";
            req.RateRequest.Shipment.Package.PackageWeight.UnitOfMeasurement.Description = "Pounds";
            req.RateRequest.Shipment.Package.PackageWeight.Weight = form.Weight;

            req.RateRequest.Shipment.Package.PackagingType.Code        = "02";
            req.RateRequest.Shipment.Package.PackagingType.Description = "Rate";



            var res = await _apiService.MakeNegotiatedRateRequest(req);


            return(Ok(res));
        }
        public void Null_Currencies_Throws_ApplicationException()
        {
            var request = new RatesRequest();

            Assert.Throws <ApplicationException>(() => _service.GetExchange(request));
        }
        protected virtual IList <ShipStationServiceRate> GetRates(GetShippingOptionRequest getShippingOptionRequest, string carrierCode)
        {
            var usedWeight = _measureService.GetMeasureWeightBySystemKeyword(Weight.Units);

            if (usedWeight == null)
            {
                throw new NopException("ShipStatio shipping service. Could not load \"{0}\" measure weight", Weight.Units);
            }

            var usedMeasureDimension = _measureService.GetMeasureDimensionBySystemKeyword(Dimensions.Units);

            if (usedMeasureDimension == null)
            {
                throw new NopException("ShipStatio shipping service. Could not load \"{0}\" measure dimension", Dimensions.Units);
            }

            var weight = Convert.ToInt32(Math.Ceiling(_measureService.ConvertFromPrimaryMeasureWeight(_shippingService.GetTotalWeight(getShippingOptionRequest), usedWeight)));

            var postData = new RatesRequest
            {
                CarrierCode    = carrierCode,
                FromPostalCode = getShippingOptionRequest.ZipPostalCodeFrom ?? getShippingOptionRequest.ShippingAddress.ZipPostalCode,
                ToState        = getShippingOptionRequest.ShippingAddress.StateProvince.Abbreviation,
                ToCountry      = getShippingOptionRequest.ShippingAddress.Country.TwoLetterIsoCode,
                ToPostalCode   = getShippingOptionRequest.ShippingAddress.ZipPostalCode,
                ToCity         = getShippingOptionRequest.ShippingAddress.City,
                Weight         = new Weight {
                    Value = weight
                }
            };

            if (_shipStationSettings.SendDimensio)
            {
                int length, height, width;

                decimal lengthTmp, widthTmp, heightTmp;

                switch (_shipStationSettings.PackingType)
                {
                case PackingType.PackByDimensions:
                    _shippingService.GetDimensions(getShippingOptionRequest.Items, out widthTmp, out lengthTmp,
                                                   out heightTmp);

                    length = ConvertFromPrimaryMeasureDimension(lengthTmp, usedMeasureDimension);
                    height = ConvertFromPrimaryMeasureDimension(heightTmp, usedMeasureDimension);
                    width  = ConvertFromPrimaryMeasureDimension(widthTmp, usedMeasureDimension);
                    break;

                case PackingType.PackByVolume:
                    if (getShippingOptionRequest.Items.Count == 1 &&
                        getShippingOptionRequest.Items[0].GetQuantity() == 1)
                    {
                        var sci = getShippingOptionRequest.Items[0].ShoppingCartItem;

                        _shippingService.GetDimensions(new List <GetShippingOptionRequest.PackageItem>
                        {
                            new GetShippingOptionRequest.PackageItem(sci, 1)
                        }, out widthTmp, out lengthTmp, out heightTmp);

                        length = ConvertFromPrimaryMeasureDimension(lengthTmp, usedMeasureDimension);
                        height = ConvertFromPrimaryMeasureDimension(lengthTmp, usedMeasureDimension);
                        width  = ConvertFromPrimaryMeasureDimension(widthTmp, usedMeasureDimension);
                    }
                    else
                    {
                        decimal totalVolume = 0;
                        foreach (var item in getShippingOptionRequest.Items)
                        {
                            var sci = item.ShoppingCartItem;

                            _shippingService.GetDimensions(new List <GetShippingOptionRequest.PackageItem>
                            {
                                new GetShippingOptionRequest.PackageItem(sci, 1)
                            }, out widthTmp, out lengthTmp, out heightTmp);

                            var productLength = ConvertFromPrimaryMeasureDimension(lengthTmp, usedMeasureDimension);
                            var productHeight = ConvertFromPrimaryMeasureDimension(heightTmp, usedMeasureDimension);
                            var productWidth  = ConvertFromPrimaryMeasureDimension(widthTmp, usedMeasureDimension);
                            totalVolume += item.GetQuantity() * (productHeight * productWidth * productLength);
                        }

                        int dimension;
                        if (totalVolume == 0)
                        {
                            dimension = 0;
                        }
                        else
                        {
                            // cubic inches
                            var packageVolume = _shipStationSettings.PackingPackageVolume;
                            if (packageVolume <= 0)
                            {
                                packageVolume = 5184;
                            }

                            // cube root (floor)
                            dimension = Convert.ToInt32(Math.Floor(Math.Pow(Convert.ToDouble(packageVolume),
                                                                            1.0 / 3.0)));
                        }

                        length = width = height = dimension;
                    }

                    break;

                default:
                    length = height = width = 1;
                    break;
                }

                if (length < 1)
                {
                    length = 1;
                }
                if (height < 1)
                {
                    height = 1;
                }
                if (width < 1)
                {
                    width = 1;
                }

                postData.Dimensions = new Dimensions
                {
                    Length = length,
                    Height = height,
                    Width  = width
                };
            }

            using (var client = new WebClient())
            {
                client.Credentials = new NetworkCredential(_shipStationSettings.ApiKey, _shipStationSettings.ApiSecret);

                client.Headers.Add("Content-Type", CONTENT_TYPE);

                var data = client.UploadString($"{API_URL}{LIST_RATES_CMD}", JsonConvert.SerializeObject(postData));

                return(TryGetError(data) ? new List <ShipStationServiceRate>() : JsonConvert.DeserializeObject <List <ShipStationServiceRate> >(data));
            }
        }
Exemplo n.º 30
0
        public IActionResult Get([FromBody] RatesRequest request)
        {
            var resultModel = _exchangeRateService.FilterAndCompute(RatesRequestMapper.MapToModel(request));

            return(Ok(RatesResponseMapper.MapToResponse(resultModel)));
        }