public async Task <CorreiosResult> CalculatePriceAndDeadlineAsync( string sourcePostalCode, string destPostalCode, double weightInKg, double length, double height, double width, double diameter, CorreiosServiceType serviceType = CorreiosServiceType.PAC_Varejo) { // Valores fixos utilizados para qualquer requisição var nCdFormato = CorreiosFormatType.Caixa_Pacote; var sCdMaoPropria = "N"; var nVlValorDeclarado = 0.00; var sCdAvisoRecebimento = "N"; using (var client = new HttpClient()) { client.BaseAddress = new Uri(BASE_ADDRESS); var requestUri = $"CalcPrecoPrazo.asmx/CalcPrecoPrazo?nCdEmpresa=&sDsSenha=&nCdServico={(int)serviceType}&sCepOrigem={sourcePostalCode}&sCepDestino={destPostalCode}&nVlPeso={weightInKg}&nCdFormato={(int)nCdFormato}&nVlComprimento={length}&nVlAltura={height}&nVlLargura={width}&nVlDiametro={diameter}&sCdMaoPropria={sCdMaoPropria}&nVlValorDeclarado={nVlValorDeclarado}&sCdAvisoRecebimento={sCdAvisoRecebimento}"; var response = await client.GetAsync(requestUri); } return(new CorreiosResult()); }
private string GetSelectedServices(CorreiosShippingModel model) { var carrierServicesOfferedDomestic = new StringBuilder(); if (model.CheckedCarrierServices != null) { foreach (var cs in model.CheckedCarrierServices) { string serviceId = CorreiosServiceType.GetServiceId(cs); if (!string.IsNullOrEmpty(serviceId)) { carrierServicesOfferedDomestic.Append($"[{serviceId}]:"); // Add delimiters [] so that single digit IDs aren't found in multi-digit IDs } } } return(carrierServicesOfferedDomestic.ToString().RemoveLastIfEndsWith(":")); }
private void LoadSavedServices(CorreiosShippingModel model, CorreiosServiceType serviceTypoes) { if (!string.IsNullOrEmpty(_correiosSettings.ServicesOffered)) { foreach (string service in serviceTypoes.Services) { string serviceId = CorreiosServiceType.GetServiceId(service); if (!string.IsNullOrEmpty(serviceId) && !string.IsNullOrEmpty(_correiosSettings.ServicesOffered)) { if (_correiosSettings.ServicesOffered.Contains($"[{serviceId}]")) // Add delimiters [] so that single digit IDs aren't found in multi-digit IDs { model.ServicesOffered.Add(service); } } } } }
public ActionResult Configure() { var model = new CorreiosShippingModel(); model.Url = _correiosSettings.Url; model.PostalCodeFrom = _correiosSettings.PostalCodeFrom; model.CompanyCode = _correiosSettings.CompanyCode; model.Password = _correiosSettings.Password; model.AddDaysForDelivery = _correiosSettings.AddDaysForDelivery.ToString(); model.ServiceNameDefault = _correiosSettings.ServiceNameDefault; model.ShippingRateDefault = _correiosSettings.ShippingRateDefault; model.QtdDaysForDeliveryDefault = _correiosSettings.QtdDaysForDeliveryDefault; model.PercentageShippingFee = _correiosSettings.PercentageShippingFee; var serviceTypoes = new CorreiosServiceType(); foreach (string service in serviceTypoes.Services) { model.AvailableCarrierServices.Add(service); } LoadSavedServices(model, serviceTypoes); return(View("~/Plugins/Shipping.Correios/Views/ShippingCorreios/Configure.cshtml", model)); }
public GetShippingOptionResponse GetShippingOptions(GetShippingOptionRequest getShippingOptionRequest) { if (getShippingOptionRequest == null) { throw new ArgumentNullException("getShippingOptionRequest"); } var response = new GetShippingOptionResponse(); if (!ValidateRequest(getShippingOptionRequest, response)) { return(response); } try { WSCorreiosCalcPrecoPrazo.cResultado wsResult = _correiosService.RequestCorreios(getShippingOptionRequest); foreach (WSCorreiosCalcPrecoPrazo.cServico serv in wsResult?.Servicos) { try { var obs = ValidateWSResult(serv); response.ShippingOptions.Add(GetShippingOption(ApplyAdditionalFee(Convert.ToDecimal(serv.Valor, new CultureInfo("pt-BR"))), CorreiosServiceType.GetServiceName(serv.Codigo.ToString()), CalcPrazoEntrega(serv), obs)); } catch (Exception e) { _logger.Error(e.Message, e); } } } catch (Exception e) { _logger.Error(e.Message, e); } if (response.ShippingOptions.Count <= 0) { response.ShippingOptions.Add(GetShippingOption(_correiosSettings.ShippingRateDefault, _correiosSettings.ServiceNameDefault, _correiosSettings.QtdDaysForDeliveryDefault)); } return(response); }