コード例 #1
0
        /// <summary>
        /// Valida primera compra de TCMM
        /// </summary>
        /// <param name="informacionTCMMRequest"></param>
        /// <returns></returns>
        public ResponseBussiness <PrimeraCompraResponse> ValidarPrimeraCompra(PlanesFinanciamientoRequest informacionTCMMRequest)
        {
            return(tryCatch.SafeExecutor(() =>
            {
                PrimeraCompraResponse informacion = new PrimeraCompraResponse();
                InfoService infoService = new InfoService();
                InformacionServiciosExternosBusiness informacionServiciosExternosBusiness = new InformacionServiciosExternosBusiness();
                //NOTA: Unicamente se manda a llamar la URL ya que en el web.config se tiene como keys, y no se esta conectando el servicio mediante vs
                infoService = informacionServiciosExternosBusiness.ObtenerCadenaServicioExterno(9);
                var cadenaURL = infoService.UrlService;
                System.Net.HttpWebRequest webrequest = (HttpWebRequest)System.Net.WebRequest.Create(cadenaURL);//ConfigurationManager.AppSettings["servicioTxCMMPrimerCompra"].ToString());
                //webrequest.Headers.Add ("Authorization","Basic dXNybW13czpNMWw0bjAqMjAxOA==");
                webrequest.Headers.Add("Authorization", credenciales.Licence);
                webrequest.Method = "POST";
                webrequest.ContentType = "application/json";
                using (var streamWriter = new StreamWriter(webrequest.GetRequestStream()))
                {
                    string json = "{\"User\":\"" + credenciales.UserName + "\"," +
                                  "\"Pwd\":\"" + credenciales.Password + "\"," +
                                  "\"CardId\":\"" + informacionTCMMRequest.NumeroTarjeta + "\"}";
                    streamWriter.Write(json);
                    streamWriter.Flush();
                    streamWriter.Close();
                }
                var httpResponse = (HttpWebResponse)webrequest.GetResponse();
                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    var result = streamReader.ReadToEnd();
                    dynamic resultadoTemporal = JsonConvert.DeserializeObject(result);

                    informacion.CodigoError = resultadoTemporal.ErrorCode;
                    informacion.Mensaje = resultadoTemporal.Message;
                    informacion.Respuesta = resultadoTemporal.Response;
                }
                return informacion;
            }));
        }
コード例 #2
0
        /// <summary>
        /// Método para consultar los planes de financiamiento
        /// </summary>
        /// <param name="planesFinanciamientoRequest">Objeto petición con información de TCMM asociada</param>
        /// <returns></returns>
        public ResponseBussiness <PlanesFinanciamientoResponse> ConsultarPlanesFinanciamientoDescuentoPrimeraCompra(PlanesFinanciamientoRequest planesFinanciamientoRequest)
        {
            return(tryCatch.SafeExecutor(() =>
            {
                descuentosPromocionesRepository = new DescuentosPromocionesRepository();
                PlanesFinanciamientoResponse response = new PlanesFinanciamientoResponse();
                InfoService infoService = new InfoService();
                InformacionServiciosExternosBusiness informacionServiciosExternosBusiness = new InformacionServiciosExternosBusiness();
                //NOTA: Unicamente se manda a llamar la URL ya que en el web.config se tiene como keys, y no se esta conectando el servicio mediante vs
                infoService = informacionServiciosExternosBusiness.ObtenerCadenaServicioExterno(8);
                var cadenaURL = infoService.UrlService;
                HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(cadenaURL);//ConfigurationManager.AppSettings["servicioTxCMMEsquemas"]);
                httpWebRequest.Headers.Add("Authorization", credenciales.Licence);
                httpWebRequest.Method = "POST";
                httpWebRequest.ContentType = "application/json";
                var serializer = new Newtonsoft.Json.JsonSerializer();
                using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    using (var textWriter = new Newtonsoft.Json.JsonTextWriter(streamWriter))
                    {
                        serializer.Serialize(textWriter,
                                             new
                        {
                            User = credenciales.UserName,
                            Pwd = credenciales.Password,
                            CardId = planesFinanciamientoRequest.NumeroTarjeta
                        });
                    }
                }

                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    var responseText = streamReader.ReadToEnd();
                    JToken token = JObject.Parse(responseText);
                    response.CodigoRespuestaTCMM = new CodigoRespuestaTCMM();
                    response.CodigoRespuestaTCMM.CodigoRespuesta = Convert.ToString(token.SelectToken("ErrorCode"));
                    response.CodigoRespuestaTCMM.MensajeRetorno = Convert.ToString(token.SelectToken("Message"));

                    if (response.CodigoRespuestaTCMM.CodigoRespuesta == "0")
                    {
                        response.PlanesFinanciamiento = new List <PlanFinanciamientoResponse>();
                        var array = token.SelectToken("Response").Value <JArray>();

                        foreach (JObject jObject in array.Children <JObject>())
                        {
                            PlanFinanciamientoResponse planFinanciamiento = new PlanFinanciamientoResponse();
                            planFinanciamiento.Id = Convert.ToInt32(jObject.SelectToken("FinancingSchemeId"));
                            planFinanciamiento.Descripcion = Convert.ToString(jObject.SelectToken("Description"));
                            planFinanciamiento.Periodo = Convert.ToInt32(jObject.SelectToken("PaybackPeriod"));

                            response.PlanesFinanciamiento.Add(planFinanciamiento);
                        }
                    }
                }

                // Validar si existe promoción primera compra con TCMM
                DescuentoPromocionalVenta[] descuentoPromocionalEncontrado = descuentosPromocionesRepository.ObtenerDescuentoMMPrimeraCompra(planesFinanciamientoRequest.FolioOperacionAsociada, token.CodeStore, token.CodeBox);
                if (descuentoPromocionalEncontrado != null && descuentoPromocionalEncontrado.Length > 0)
                {
                    // Si existe la promoción se valida si se trata de la primera compra TCMM
                    // Respuesta = T ES Primera compra
                    // Respuesta = F NO es primera compra
                    PrimeraCompraResponse validar = this.ValidarPrimeraCompra(planesFinanciamientoRequest).Data;
                    if (validar.Respuesta == "T")
                    {
                        response.DescuentoPromocionalPrimeraCompra = descuentoPromocionalEncontrado[0];
                    }
                }
                return response;
            }));
        }