示例#1
0
        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));
        }
示例#5
0
        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);
        }