public IHttpActionResult Create(Lead Lead) { string exceptionMsg = string.Empty; UnidadNegocioKeys?_unidadNegocioKey = null; object objEnvio = null; LeadResponse Rpta = new LeadResponse(); try { /// Obtiene Token para envío a Salesforce var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); /// Envío de cotizacion a Salesforce var leadSF = new List <object>(); leadSF.Add(Lead.ToSalesforceEntity()); try { ClearQuickLog("body_request.json", "Lead"); /// ♫ Trace objEnvio = new { datos = leadSF }; QuickLog(objEnvio, "body_request.json", "Lead"); /// ♫ Trace var response = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.LeadCreateMethod, Method.POST, objEnvio, true, token); if (response.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(response.Content); foreach (var jsResponse in jsonResponse["Leads"]) { Rpta.CodigoRetorno = jsResponse[OutParameter.SF_CodigoRetorno]; Rpta.MensajeRetorno = jsResponse[OutParameter.SF_MensajeRetorno]; Rpta.IdLeadSf = jsResponse[OutParameter.SF_IdLead]; } } } catch (Exception ex) { Rpta.CodigoRetorno = ApiResponseCode.ErrorCode; Rpta.MensajeRetorno = ex.Message; exceptionMsg = ex.Message; } return(Ok(Rpta)); } catch (Exception ex) { return(InternalServerError(ex)); } finally { (new { Body = objEnvio, UnidadNegocio = _unidadNegocioKey.ToString(), Exception = exceptionMsg }).TryWriteLogObject(_logFileManager, _clientFeatures); } }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { IEnumerable <SolicitudPagoNM> solicitudPagoNMs = null; List <RptaSolicitudPagoSF> ListRptaSolicitudPagoSF_Fail = null; RptaSolicitudPagoSF _rptaSolicitudPagoSF = null; object SFResponse = null; string error = string.Empty; object objEnvio = null; try { var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio()); /// I. Consulta de Solicitud Pago NM solicitudPagoNMs = (IEnumerable <SolicitudPagoNM>)(_solicitudPagoNMRepository.GetSolicitudesPago())[OutParameter.CursorSolicitudPagoNM]; if (solicitudPagoNMs == null || solicitudPagoNMs.ToList().Count.Equals(0)) { return(Ok(false)); } /// Obtiene Token para envío a Salesforce var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); /// preparación de hotel para envio a Salesforce var solicitudPagoNMSF = new List <object>(); foreach (var solicitudPago in solicitudPagoNMs) { solicitudPagoNMSF.Add(solicitudPago.ToSalesforceEntity()); } try { /// Envío de CuentaNM a Salesforce objEnvio = new { ListdatosSolicitudPago = solicitudPagoNMSF }; QuickLog(objEnvio, "body_request.json", "SolicitudPagoNM", previousClear: true); /// ♫ Trace var responseSolicitudPagoNM = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.SolicitudPagoNMMethod, Method.POST, objEnvio, true, token); if (responseSolicitudPagoNM.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonResponse = (new JavaScriptSerializer()).DeserializeObject(responseSolicitudPagoNM.Content); SFResponse = jsonResponse["respuestas"]; QuickLog(SFResponse, "body_response.json", "SolicitudPagoNM", previousClear: true); /// ♫ Trace ListRptaSolicitudPagoSF_Fail = new List <RptaSolicitudPagoSF>(); foreach (var solicitudPagoNM in jsonResponse["respuestas"]) { try { #region Deserialize _rptaSolicitudPagoSF = new RptaSolicitudPagoSF(); _rptaSolicitudPagoSF.CodigoError = solicitudPagoNM[OutParameter.SF_Codigo]; _rptaSolicitudPagoSF.MensajeError = solicitudPagoNM[OutParameter.SF_Mensaje]; _rptaSolicitudPagoSF.idOportunidad_SF = solicitudPagoNM[OutParameter.SF_IdOportunidad2]; _rptaSolicitudPagoSF.IdRegSolicitudPago_SF = solicitudPagoNM[OutParameter.SF_IdRegSolicitudPago]; _rptaSolicitudPagoSF.Identificador_NM = solicitudPagoNM[OutParameter.SF_IdentificadorNM]; #endregion #region ReturnToDB var updOperation = _solicitudPagoNMRepository.Update(_rptaSolicitudPagoSF); if (Convert.IsDBNull(updOperation[OutParameter.IdActualizados]) == true || updOperation[OutParameter.IdActualizados].ToString().ToLower().Contains("null") || Convert.ToInt32(updOperation[OutParameter.IdActualizados].ToString()) <= 0) { error = error + "Error en el Proceso de Actualizacion - No Actualizo Ningun Registro. Identificador NM : " + _rptaSolicitudPagoSF.Identificador_NM.ToString() + "||||"; ListRptaSolicitudPagoSF_Fail.Add(_rptaSolicitudPagoSF); /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/ } #endregion } catch (Exception ex) { error = error + "Error en el Proceso de Actualizacion - Response SalesForce : " + ex.Message + "||||"; ListRptaSolicitudPagoSF_Fail.Add(_rptaSolicitudPagoSF); /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/ } } } else { QuickLog(SFResponse, "body_response.json", "SolicitudPagoNM", previousClear: true); /// ♫ Trace error = responseSolicitudPagoNM.StatusCode.ToString(); } } catch (Exception ex) { error = ex.Message; } return(Ok(true)); } catch (Exception ex) { error = error + " / " + ex.Message; return(InternalServerError(ex)); } finally { if (objEnvio != null || SFResponse != null || ListRptaSolicitudPagoSF_Fail != null || string.IsNullOrEmpty(error) == false) { (new { Request = objEnvio, Response = SFResponse, Rpta_NoUpdate_Fail = ListRptaSolicitudPagoSF_Fail, Exception = error //LegacySystems = solicitudPagoNMs }).TryWriteLogObject(_logFileManager, _clientFeatures); } } }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { IEnumerable <CuentaNM> cuentasNMs = null; List <RptaCuentaSF> ListRptaCuentaSF_Fail = new List <RptaCuentaSF>(); RptaCuentaSF _rptaCuentaSF = null; object SFResponse = null; string exceptionMsg = string.Empty; object objEnvio = null; try { var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio()); /// I. Consulta de Cuentas NM cuentasNMs = (IEnumerable <CuentaNM>)_cuentaNMRepository.GetCuentas()[OutParameter.CursorCuentaNM]; if (cuentasNMs == null || cuentasNMs.ToList().Count.Equals(0)) { return(Ok(false)); } /// Obtiene Token para envío a Salesforce var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); /// preparación de cuenta para envio a Salesforce var cuentaNMSF = new List <object>(); foreach (var cuenta in cuentasNMs) { cuentaNMSF.Add(cuenta.ToSalesforceEntity()); } try { /// Envío de CuentaNM a Salesforce objEnvio = new { listadatosCuenta = cuentaNMSF }; QuickLog(objEnvio, "body_request.json", "CuentaNM", previousClear: true); /// ♫ Trace var responseCuentaNM = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.CuentaNMMethod, Method.POST, objEnvio, true, token); if (responseCuentaNM.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonResponse = (new JavaScriptSerializer()).DeserializeObject(responseCuentaNM.Content); QuickLog(jsonResponse, "body_response.json", "CuentaNM", previousClear: true); /// ♫ Trace SFResponse = jsonResponse["respuestas"]; foreach (var jsResponse in jsonResponse["respuestas"]) { try { _rptaCuentaSF = new RptaCuentaSF(); _rptaCuentaSF.CodigoError = "OK"; _rptaCuentaSF.MensajeError = "TST"; _rptaCuentaSF.idCuenta_SF = "001P002201bpIOWIC4"; _rptaCuentaSF.Identificador_NM = "2"; _rptaCuentaSF.CodigoError = jsResponse[OutParameter.SF_Codigo]; _rptaCuentaSF.MensajeError = jsResponse[OutParameter.SF_Mensaje]; _rptaCuentaSF.idCuenta_SF = jsResponse[OutParameter.SF_IdCuenta2]; _rptaCuentaSF.Identificador_NM = jsResponse[OutParameter.SF_IdentificadorNM]; /// Actualización de estado de la Cuenta var updateResponse = _cuentaNMRepository.Update(_rptaCuentaSF); if (Convert.IsDBNull(updateResponse[OutParameter.IdActualizados]) == true || updateResponse[OutParameter.IdActualizados].ToString().ToLower().Contains("null") || Convert.ToInt32(updateResponse[OutParameter.IdActualizados].ToString()) <= 0) { exceptionMsg = exceptionMsg + "Error en el Proceso de Actualizacion - No Actualizo Ningun Registro. Identificador NM : " + _rptaCuentaSF.Identificador_NM.ToString() + "||||"; ListRptaCuentaSF_Fail.Add(_rptaCuentaSF); /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/ } } catch (Exception ex) { exceptionMsg = exceptionMsg + "Error en el Proceso de Actualizacion - Response SalesForce : " + ex.Message + "||||"; ListRptaCuentaSF_Fail.Add(_rptaCuentaSF); /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/ } } } else { exceptionMsg = responseCuentaNM.StatusCode.ToString(); if (responseCuentaNM != null && responseCuentaNM.Content != null) { QuickLog(responseCuentaNM.Content, "body_response.json", "CuentaNM", previousClear: true); /// ♫ Trace } } } catch (Exception ex) { exceptionMsg = ex.Message; } return(Ok(true)); } catch (Exception ex) { cuentasNMs = null; exceptionMsg = exceptionMsg + " / " + ex.Message; return(InternalServerError(ex)); } finally { if (objEnvio != null || SFResponse != null || ListRptaCuentaSF_Fail != null || string.IsNullOrEmpty(exceptionMsg) == false) { (new { Request = objEnvio, Response = SFResponse, Rpta_NoUpdate_Fail = ListRptaCuentaSF_Fail, Exception = exceptionMsg //LegacySystems = cuentasNMs }).TryWriteLogObject(_logFileManager, _clientFeatures); } } }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { /// ♫ Listas de Respuesta IEnumerable <AgenciaPnr> agenciasPnrs = null; IEnumerable <File> files; IEnumerable <Boleto> boletos; string exceptionMsg = string.Empty; try { var _unidadNegocio = GetUnidadNegocio(unidadNegocio.Descripcion); RepositoryByBusiness(_unidadNegocio); _instants[InstantKey.Salesforce] = DateTime.Now; /// I. Consulta de PNRs a PTA agenciasPnrs = (IEnumerable <AgenciaPnr>)_fileRepository.GetNewAgenciaPnr()[OutParameter.CursorAgenciaPnr]; if (agenciasPnrs == null || agenciasPnrs.ToList().Count.Equals(0)) { return(Ok(agenciasPnrs)); } /// Obtiene Token para envío a Salesforce var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); /// Procesamos los Files y Boletos de cada Agencia PNR foreach (var agenciaPnr in agenciasPnrs) { /// II. Completar PNR en Salesforce agenciaPnr.UnidadNegocio = unidadNegocio.Descripcion; agenciaPnr.CodigoError = agenciaPnr.MensajeError = string.Empty; if (string.IsNullOrEmpty(agenciaPnr.IdOportunidad)) { SendToSalesforce(agenciaPnr, token, crmServer); } /// III. Envío de Files, Boletos a Salesforce if (!string.IsNullOrEmpty(agenciaPnr.IdOportunidad)) { /// 1. Consulta Lista de Files, Lista de Boletos var _operFileAndBoleto = _fileRepository.GetFileAndBoleto(agenciaPnr); /// 2. Envío de Files agenciaPnr.Files = files = (IEnumerable <File>)_operFileAndBoleto[OutParameter.CursorFile]; foreach (var file in files) { try { /// a. Envío a Salesforce SendToSalesforce(file, token, crmServer); if (EvaluateRetry(file)) { SendToSalesforce(file, token, crmServer); } /// b. Resultado a BD var operFileUpdate = _fileRepository.UpdateFile(file); file.Actualizados = int.Parse(operFileUpdate[OutParameter.IdActualizados].ToString()); } catch { } } /// 3. Envío de Boletos agenciaPnr.Boletos = boletos = (IEnumerable <Boleto>)_operFileAndBoleto[OutParameter.CursorBoleto]; foreach (var boleto in boletos) { try { /// a. Envío a Salesforce SendToSalesforce(boleto, token, crmServer); if (EvaluateRetry(boleto)) { SendToSalesforce(boleto, token, crmServer); } /// b. Resultado a BD var operBoletoUpdate = _fileRepository.UpdateBoleto(boleto); boleto.Actualizados = int.Parse(operBoletoUpdate[OutParameter.IdActualizados].ToString()); } catch { } } } } return(Ok(new { AgenciasPnr = agenciasPnrs })); } catch (Exception ex) { exceptionMsg = ex.Message; agenciasPnrs = null; return(InternalServerError(ex)); } finally { (new { UnidadNegocio = unidadNegocio.Descripcion, Exception = exceptionMsg, LegacySystems = agenciasPnrs }).TryWriteLogObject(_logFileManager, _clientFeatures); } }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { IEnumerable <InformacionPagoNM> informacionPagoNMs = null; List <RptaInformacionPagoSF> ListRptaInformacionPagoSF = null; List <InfoPagoNM> lInfoPagoNM = null; RptaInformacionPagoSF _rptaInformacionPagoSF = null; string error = string.Empty; object objEnvio = null; dynamic jsonResponse = null; try { var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio()); RepositoryByBusiness(_unidadNegocio); _instants[InstantKey.Salesforce] = DateTime.Now; /// I. Consulta de Informacion Pago NM informacionPagoNMs = (IEnumerable <InformacionPagoNM>)(_informacionPagoNMRepository.GetInformacionPago(_unidadNegocio))[OutParameter.CursorInformacionPagoNM]; if (informacionPagoNMs == null || informacionPagoNMs.ToList().Count.Equals(0)) { return(Ok(informacionPagoNMs)); } /// Obtiene Token para envío a Salesforce var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); //Armando estructura de objetos. InfoPagoNM oInfoPagoNM; var results = (from p in informacionPagoNMs group p.idOportunidad_SF by p.idOportunidad_SF into g select new { idOportunidad_SF = g.Key }).ToList(); string idOportunidad_SF = string.Empty; int index = -1; if (results != null) { int id_sucursal = 0; int codigoweb = 0; int PaqueteId = 0; lInfoPagoNM = new List <InfoPagoNM>(); foreach (var item in results) { oInfoPagoNM = new InfoPagoNM(); index = informacionPagoNMs.ToList().FindIndex(x => x.idOportunidad_SF == item.idOportunidad_SF); oInfoPagoNM.idOportunidad_SF = item.idOportunidad_SF; oInfoPagoNM.Identificador_NM = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).Identificador_NM; oInfoPagoNM.IdInformacionPago_SF = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).IdInformacionPago_SF; //Aqui Lista ListPago_Boleto_Servicios oInfoPagoNM.ListPago_Boleto_Servicios = informacionPagoNMs.Where(x => x.idOportunidad_SF == item.idOportunidad_SF && !string.IsNullOrWhiteSpace(x.reservaID)) .Select(x => new PagoBoletoServicios { reservaID = x.reservaID, tipoServicio = x.tipoServicio, tipoPasajero = x.tipoPasajero, totalBoleto = x.totalBoleto, tarifaNeto = x.tarifaNeto, impuestos = x.impuestos, cargos = x.cargos, descripcion = x.descripcion }).ToList(); oInfoPagoNM.totalPagar = oInfoPagoNM.ListPago_Boleto_Servicios.Sum(x => x.totalBoleto); oInfoPagoNM.montoDescuento = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).montodescuento; oInfoPagoNM.textoDescuento = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).textodescuento; oInfoPagoNM.promoWebCode = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).promowebcode; oInfoPagoNM.totalFacturar = oInfoPagoNM.totalPagar - oInfoPagoNM.montoDescuento; oInfoPagoNM.feeAsumidoGeneralBoletos = informacionPagoNMs.Where(x => x.idOportunidad_SF == item.idOportunidad_SF).Sum(x => x.feeAsumidoGeneralBoletos); ////Aqui Lista ListPagosDesglose_Paquete if (!string.IsNullOrWhiteSpace(informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).PaqueteId)) { oInfoPagoNM.ListPagosDesglose_Paquete = new List <PagosDesglosePaquete>(); oInfoPagoNM.ListPagosDesglose_Paquete.Add(new PagosDesglosePaquete { precioTotalPorHabitacionPaq = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF && !string.IsNullOrWhiteSpace(x.PaqueteId)).precioTotalPorHabitacionPaq, ListPorHabitacionPaq = informacionPagoNMs.Where(y => y.idOportunidad_SF == item.idOportunidad_SF && !string.IsNullOrWhiteSpace(y.PaqueteId)) .Select(y => new PorHabitacion_Paq { numHabitacionPaquete = y.numHabitacionPaquete, tipoPasajeroPaq = y.tipoPasajeroPaq, cantidadPasajeroPaq = y.cantidadPasajeroPaq, monedaPaq = y.monedaPaq, precioUnitarioPaq = y.precioUnitarioPaq, totalUnitarioPaq = y.totalUnitarioPaq }).ToList() }); } oInfoPagoNM.precioTotalHabitacionesPaq = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).precioTotalHabitacionesPaq; oInfoPagoNM.gastosAdministrativosPaq = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).gastosAdministrativosPaq; oInfoPagoNM.tarjetaDeTurismo = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).tarjetaDeTurismo; oInfoPagoNM.tarjetaDeAsistencia = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).tarjetaDeAsistencia; ////Aqui Lista ListPagosServicio_Paquete =>GetListPagosServicio if (!string.IsNullOrWhiteSpace(informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).PaqueteId)) { int.TryParse(informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).PaqueteId, out PaqueteId); int.TryParse(informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).Id_Sucursal, out id_sucursal); int.TryParse(informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).Codigoweb, out codigoweb); string paq_reserva_tipo = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).paq_reserva_tipo; oInfoPagoNM.ListPagosServicio_Paquete = ((IEnumerable <PagosServicioPaquete>)(_informacionPagoNMRepository.GetListPagosServicio(codigoweb, PaqueteId, id_sucursal, paq_reserva_tipo))[OutParameter.CursorInformacionPagoNM]).ToList(); } if (oInfoPagoNM.ListPagosServicio_Paquete != null && oInfoPagoNM.ListPagosServicio_Paquete.Count > 0) { oInfoPagoNM.precioTotalActividadesPaq = oInfoPagoNM.ListPagosServicio_Paquete.Sum(x => x.precioServ); } oInfoPagoNM.precioTotalPagarPaq = oInfoPagoNM.precioTotalHabitacionesPaq + oInfoPagoNM.gastosAdministrativosPaq + oInfoPagoNM.precioTotalActividadesPaq; oInfoPagoNM.montoDescuentoPaq = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).montoDescuentoPaq; oInfoPagoNM.totalFacturarPaq = oInfoPagoNM.precioTotalPagarPaq + oInfoPagoNM.montoDescuentoPaq; oInfoPagoNM.textoDescuentoPaq = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).textoDescuentoPaq; oInfoPagoNM.cantDiasSeg = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).cantDiasSeg; oInfoPagoNM.precioUnitarioSeg = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).precioUnitarioSeg; oInfoPagoNM.MontoSeg = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).MontoSeg; oInfoPagoNM.DescuentoSeg = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).DescuentoSeg; oInfoPagoNM.MontoReservaSeg = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).MontoReservaSeg; oInfoPagoNM.accion_SF = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).accion_SF; lInfoPagoNM.Add(oInfoPagoNM); } } var informacionPagoNMSF = new List <object>(); foreach (var itemlInfoPagoNM in lInfoPagoNM) { informacionPagoNMSF.Add(itemlInfoPagoNM.ToSalesforceEntity()); } try { /// Envío de Informacion de Pago a Salesforce ClearQuickLog("body_request.json", "InformacionPagoNM"); /// ♫ Trace objEnvio = new { datos = informacionPagoNMSF }; QuickLog(objEnvio, "body_request.json", "InformacionPagoNM"); /// ♫ Trace var responseInformacionPagoNM = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.InformacionPagoNMMethod, Method.POST, objEnvio, true, token); if (responseInformacionPagoNM.StatusCode.Equals(HttpStatusCode.OK)) { jsonResponse = (new JavaScriptSerializer()).DeserializeObject(responseInformacionPagoNM.Content); QuickLog(jsonResponse, "body_response.json", "InformacionPagoNM"); /// ♫ Trace string[] codigoServicio = null; string oportunidad = string.Empty; ListRptaInformacionPagoSF = new List <RptaInformacionPagoSF>(); foreach (var jsResponse in jsonResponse["respuestas"]) { oportunidad = jsResponse[OutParameter.SF_IdOportunidad3]; codigoServicio = jsResponse[OutParameter.SF_IdentificadorNM].Split('-'); _rptaInformacionPagoSF = new RptaInformacionPagoSF(); _rptaInformacionPagoSF.CodigoError = jsResponse[OutParameter.SF_Codigo]; _rptaInformacionPagoSF.MensajeError = jsResponse[OutParameter.SF_Mensaje]; _rptaInformacionPagoSF.idOportunidad_SF = jsResponse[OutParameter.SF_IdOportunidad3]; _rptaInformacionPagoSF.IdInfoPago_SF = jsResponse[OutParameter.SF_IdInformacionPago2]; if (_rptaInformacionPagoSF.CodigoError != "ER" && codigoServicio.Count() > 0) { _rptaInformacionPagoSF.CodigoServicio_NM = codigoServicio[0].ToString(); _rptaInformacionPagoSF.Identificador_NM = codigoServicio[1].ToString(); } var updOperation = _informacionPagoNMRepository.Update(_rptaInformacionPagoSF); if (Convert.IsDBNull(updOperation[OutParameter.IdActualizados]) == true || updOperation[OutParameter.IdActualizados].ToString().ToLower().Contains("null") || Convert.ToInt32(updOperation[OutParameter.IdActualizados].ToString()) <= 0) { error = error + "Error en el Proceso de Actualizacion - No Actualizo Ningun Registro. Identificador NM : " + _rptaInformacionPagoSF.Identificador_NM.ToString() + "||||"; ListRptaInformacionPagoSF.Add(_rptaInformacionPagoSF); } } } else { jsonResponse = (new JavaScriptSerializer()).DeserializeObject(responseInformacionPagoNM.Content); QuickLog(jsonResponse, "body_response.json", "InformacionPagoNM"); /// ♫ Trace error = responseInformacionPagoNM.StatusCode.ToString(); } } catch (Exception ex) { error = error + "Error en el Proceso de Actualizacion - Response SalesForce : " + ex.Message + "||||"; ListRptaInformacionPagoSF.Add(_rptaInformacionPagoSF); } return(Ok(true)); } catch (Exception ex) { error = error + " / " + ex.Message; return(InternalServerError(ex)); } finally { if (objEnvio != null || jsonResponse != null || ListRptaInformacionPagoSF != null || string.IsNullOrEmpty(error) == false) { (new { Request = objEnvio, Response = jsonResponse, Rpta_NoUpdate_Fail = ListRptaInformacionPagoSF, Exception = error //LegacySystems = lInfoPagoNM }).TryWriteLogObject(_logFileManager, _clientFeatures); } } }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { IEnumerable <CuentaPta> cuentasPtas = null; string error = string.Empty; try { var _unidadNegocio = GetUnidadNegocio(unidadNegocio.Descripcion); RepositoryByBusiness(_unidadNegocio); _instants[InstantKey.Salesforce] = DateTime.Now; /// I. Consulta de Cuentas PTA cuentasPtas = (IEnumerable <CuentaPta>)(_cuentaPtaRepository.Read(_unidadNegocio))[OutParameter.CursorCuentaPta]; if (cuentasPtas == null || cuentasPtas.ToList().Count.Equals(0)) { return(Ok(cuentasPtas)); } /// Obtiene Token para envío a Salesforce var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); foreach (var cuentaPta in cuentasPtas) { try { /// Envío de CuentaPTA a Salesforce cuentaPta.UnidadNegocio = unidadNegocio.Descripcion; cuentaPta.CodigoError = cuentaPta.MensajeError = string.Empty; var cuentaSf = cuentaPta.ToSalesforceEntity(); QuickLog(cuentaSf, "body_request.json", "CuentaPta"); var responseCuentaPta = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.CuentaPtaMethod, Method.POST, cuentaSf, true, token); if (responseCuentaPta.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonReponse = (new JavaScriptSerializer()).DeserializeObject(responseCuentaPta.Content); cuentaPta.CodigoError = jsonReponse[OutParameter.SF_CodigoError]; cuentaPta.MensajeError = jsonReponse[OutParameter.SF_MensajeError]; cuentaPta.IdCuentaCrm = jsonReponse[OutParameter.SF_IdCuenta]; /// Actualización de estado de Cuenta PTA hacia PTA var updateResponse = _cuentaPtaRepository.Update(cuentaPta); cuentaPta.Actualizados = int.Parse(updateResponse[OutParameter.IdActualizados].ToString()); } else { cuentaPta.CodigoError = responseCuentaPta.StatusCode.ToString(); } } catch (Exception ex) { cuentaPta.CodigoError = ApiResponseCode.ErrorCode; cuentaPta.MensajeError = ex.Message; } } return(Ok(new { CuentasPta = cuentasPtas })); } catch (Exception ex) { //cuentasPtas = null; error = ex.Message; return(InternalServerError(ex)); } finally { (new { UnidadNegocio = unidadNegocio.Descripcion, Error = error, LegacySystems = cuentasPtas }).TryWriteLogObject(_logFileManager, _clientFeatures); } }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { string exceptionMsg = string.Empty; UnidadNegocioKeys?_unidadNegocioKey = null; object objEnvio = null; List <Respuesta> ListRpta = new List <Respuesta>(); Respuesta Rpta = new Respuesta(); try { _unidadNegocioKey = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocioByCountry()); var operation = _cotizacionRepository.Lista_CotizacionB2C(); Rpta.CodigoError = operation[OutParameter.CodigoError].ToString(); Rpta.MensajeError = operation[OutParameter.MensajeError].ToString(); var cotizacionJYUpdResponse = ((List <CotizacionJYUpdResponse>)operation[OutParameter.CursorCotizacionB2C]); if (cotizacionJYUpdResponse == null || cotizacionJYUpdResponse.ToList().Count.Equals(0)) { return(Ok(Rpta)); } /// Obtiene Token para envío a Salesforce var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); /// Envío de cotizacion a Salesforce var cotizacionSF = new List <object>(); foreach (var cotizacion in cotizacionJYUpdResponse) { cotizacionSF.Add(ToSalesforceEntity(cotizacion)); } try { ClearQuickLog("body_request.json", "CotizacionJY"); /// ♫ Trace objEnvio = new { cotizaciones = cotizacionSF }; QuickLog(objEnvio, "body_request.json", "CotizacionJY"); /// ♫ Trace var response = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.CotizacionJYUpdMethod, Method.POST, objEnvio, true, token); if (response.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(response.Content); foreach (var Cotizacion in cotizacionJYUpdResponse) { foreach (var jsResponse in jsonResponse["Cotizaciones"]) { if (Cotizacion.ID_OPORTUNIDAD_SF == jsResponse["ID_OPORTUNIDAD_SF"] && Cotizacion.ID_COTIZACION_SF == jsResponse["ID_COTIZACION_SF"]) { var cotizacionJYUpd = new CotizacionJYUpd() { Cotizacion = jsResponse[OutParameter.SF_Cotizacion], File = jsResponse[OutParameter.SF_File_SubFile], Es_Atencion = jsResponse[OutParameter.SF_CodigoRetorno], Descripcion = jsResponse[OutParameter.SF_MensajeRetorno] }; /// Actualización de estado de subcodigo a PTA Rpta = new Respuesta(); operation = _cotizacionRepository.Actualizar_EnvioCotizacionB2C(cotizacionJYUpd); Rpta.CodigoError = operation[OutParameter.CodigoError].ToString(); Rpta.MensajeError = operation[OutParameter.MensajeError].ToString(); Rpta.Numero_Afectados = operation[OutParameter.NumeroActualizados].ToString(); ListRpta.Add(Rpta); } } } } } catch (Exception ex) { Rpta.CodigoError = ApiResponseCode.ErrorCode; Rpta.MensajeError = ex.Message; exceptionMsg = ex.Message; } return(Ok(Rpta)); } catch (Exception ex) { return(InternalServerError(ex)); } finally { (new { UnidadNegocio = _unidadNegocioKey.ToString(), Body = objEnvio, Response = ListRpta, Exception = exceptionMsg }).TryWriteLogObject(_logFileManager, _clientFeatures); } }
public IHttpActionResult Send() { IEnumerable <FilesAsociadosSRV> ListFilesAsociadosSRV = null; List <FilesAsociadosSRVResponse> ListFileAsociadosSRVResponse = new List <FilesAsociadosSRVResponse>(); List <Respuesta> ListRpta = new List <Respuesta>(); string errorEnvio = string.Empty; try { RepositoryByBusiness(null); /*Consulta de files asociadiados a BD*/ ListFilesAsociadosSRV = (IEnumerable <FilesAsociadosSRV>)_fileSrvRetailRepository.GetFilesAsociadosSRV()[OutParameter.CursorFilesAsociadosSRV]; if (ListFilesAsociadosSRV == null || ListFilesAsociadosSRV.ToList().Count.Equals(0)) { return(Ok(false)); } /*Obtiene Token de envío a Salesforce*/ var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); ///*Por cada file...*/ //var FilesAsociadosSF = new List<object>(); //foreach (var fileAsociado in ListFilesAsociadosSRV) // FilesAsociadosSF.Add(fileAsociado.ToSalesforceEntity()); //try //{ // var objEnvio = new { info = FilesAsociadosSF }; // /*Envío de files asociados a Salesforce*/ // var responseFilesAsociados = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.PedidosProcesadosMethod, Method.POST, objEnvio, true, token); // if (responseFilesAsociados.StatusCode.Equals(HttpStatusCode.OK)) // { // dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responseFilesAsociados.Content); // foreach (var fileAsociado in ListFilesAsociadosSRV) // { // foreach (var jsResponse in jsonResponse["Solicitudes"]) // { // if (fileAsociado.file_id == jsResponse[OutParameter.SF_IdSolicitudPago]) // { // /*Validamos Y Actualizamos en BD*/ // } // } // } // } //} //catch (Exception ex) //{ // errorEnvio = errorEnvio + ApiResponseCode.ErrorCode + " - " + ex.Message + " ||."; //} foreach (var fileAsociado in ListFilesAsociadosSRV) { try { var responseFilesAsociados = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.OportunidadAsocMethod, Method.POST, fileAsociado.ToSalesforceEntity(), true, token); if (responseFilesAsociados.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responseFilesAsociados.Content); FilesAsociadosSRVResponse FileAsociadosSRVResponse = new FilesAsociadosSRVResponse(); FileAsociadosSRVResponse.id_oportunidad_sf = jsonResponse[OutParameter.SF_IdOportunidad]; FileAsociadosSRVResponse.codigo_error = jsonResponse[OutParameter.SF_CodigoError]; FileAsociadosSRVResponse.mensaje_error = jsonResponse[OutParameter.SF_MensajeError]; ListFileAsociadosSRVResponse.Add(FileAsociadosSRVResponse); /// Actualización de estado File Oportundad var operation = _fileSrvRetailRepository.Actualizar_EnvioCotRetail(FileAsociadosSRVResponse); Respuesta Rpta = new Respuesta(); Rpta.CodigoError = operation[OutParameter.CodigoError].ToString(); Rpta.MensajeError = operation[OutParameter.MensajeError].ToString(); Rpta.Numero_Afectados = operation[OutParameter.NumeroActualizados].ToString(); ListRpta.Add(Rpta); } } catch (Exception ex) { errorEnvio = ex.Message; } } return(Ok(ListFileAsociadosSRVResponse)); } catch (Exception ex) { errorEnvio = errorEnvio + " / " + ex.Message; return(InternalServerError(ex)); } finally { (new { Request = ListFilesAsociadosSRV, Response = ListFileAsociadosSRVResponse, Rpta = ListRpta, Exception = errorEnvio }).TryWriteLogObject(_logFileManager, _clientFeatures); } }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { IEnumerable <ContactoPta> contactoPtaList = null; string exceptionMsg = string.Empty; try { var _unidadNegocio = GetUnidadNegocio(unidadNegocio.Descripcion); RepositoryByBusiness(_unidadNegocio); /// I. Consulta de Contactos a BD contactoPtaList = (IEnumerable <ContactoPta>)_contactoPtaRepository.GetContactos()[OutParameter.CursorContactoPta]; if (contactoPtaList == null || contactoPtaList.ToList().Count.Equals(0)) { return(Ok(contactoPtaList)); } /// Obtiene Token de envío a Salesforce var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); /// Por cada Contacto... foreach (var contactoPta in contactoPtaList) { { try { /// Envío de Contacto a Salesforce contactoPta.UnidadNegocio = unidadNegocio.Descripcion; contactoPta.CodigoError = contactoPta.MensajeError = string.Empty; //var contactoPtaSf = ToSalesforceEntity(contactoPta); var responseContactoPta = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.ContactoPtaMethod, Method.POST, contactoPta.ToSalesforceEntity(), true, token); if (responseContactoPta.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responseContactoPta.Content); contactoPta.CodigoError = jsonResponse[OutParameter.SF_CodigoError]; contactoPta.MensajeError = jsonResponse[OutParameter.SF_MensajeError]; contactoPta.IdCuentaCrm = jsonResponse[OutParameter.SF_IdCuenta]; contactoPta.IdContactoCrm = jsonResponse[OutParameter.SF_IdContacto]; /// Actualización de resultado de Salesforce de Contacto en BD var updateResponse = _contactoPtaRepository.Update(contactoPta); contactoPta.Actualizados = int.Parse(updateResponse[OutParameter.IdActualizados].ToString()); } } catch (Exception ex) { contactoPta.CodigoError = ApiResponseCode.ErrorCode; contactoPta.MensajeError = ex.Message; } } } return(Ok(new { Contactos = contactoPtaList })); } catch (Exception ex) { exceptionMsg = ex.Message; return(InternalServerError(ex)); } finally { (new { UnidadNegocio = unidadNegocio.Descripcion, Exception = exceptionMsg, LegacySystems = contactoPtaList }).TryWriteLogObject(_logFileManager, _clientFeatures); } }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { IEnumerable <Cotizacion_DM> cotizaciones_DM = null; var exceptionMsg = string.Empty; try { ClearQuickLog("body_request.json", "Cotizacion"); var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio()); cotizaciones_DM = (IEnumerable <Cotizacion_DM>)_cotizacionRepository_DM.GetCotizaciones()[OutParameter.CursorCotizacionDM]; if (cotizaciones_DM == null || cotizaciones_DM.ToList().Count.Equals(0)) { return(Ok(cotizaciones_DM)); } var cotizaciones_SF = new List <object>(); foreach (var cotizacion in cotizaciones_DM) { cotizaciones_SF.Add(cotizacion.ToSalesforceEntity()); } /// Obtiene Token para envío a Salesforce var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); /// II. Enviar Oportunidad a Salesforce try { var objEnvio = new { datos = cotizaciones_SF }; QuickLog(objEnvio, "body_request.json", "Cotizacion"); /// ♫ Trace var responseOportunidad = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.CotizacionListMethod, Method.POST, objEnvio, true, token); if (responseOportunidad.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responseOportunidad.Content); try { var responseList = jsonResponse["Cotizaciones"]; // Obtiene todo el json QuickLog(responseList, "body_response.json", "Cotizacion"); /// ♫ Trace foreach (var item in responseList) { try { #region Deserialize var codigoRetorno = (item["CODIGO_RETORNO"] ?? string.Empty).ToString(); var mensajeRetorno = (item["MENSAJE_RETORNO"] ?? string.Empty).ToString(); var idCotizacionSf = (item["ID_COTIZACION_SF"] ?? string.Empty).ToString(); var idOportunidadSf = (item["ID_OPORTUNIDAD_SF"] ?? string.Empty).ToString(); var idCotizacion = (item["COTIZACION"] ?? string.Empty).ToString(); var cotizacion = cotizaciones_DM.FirstOrDefault(c => c.IdOportunidadSf.Equals(idOportunidadSf)); cotizacion.CodigoError = codigoRetorno; cotizacion.MensajeError = mensajeRetorno; cotizacion.IdCotizacionSf = idCotizacionSf; #region ReturnToDB _cotizacionRepository_DM.UpdateCotizacion(cotizacion); #endregion } catch (Exception) { throw; } #endregion } } catch { } } return(Ok(cotizaciones_DM)); } catch (Exception ex) { exceptionMsg = ex.Message; return(InternalServerError(ex)); } finally { (new { UnidadNegocio = unidadNegocio.Descripcion, Exception = exceptionMsg, LegacySystems = cotizaciones_DM }).TryWriteLogObject(_logFileManager, _clientFeatures); } } catch (Exception ex) { exceptionMsg = ex.Message; return(InternalServerError(ex)); } finally { (new { Body = cotizaciones_DM, Error = exceptionMsg }).TryWriteLogObject(_logFileManager, _clientFeatures); } }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { IEnumerable <PedidosProcesados> ListPedidosProcesados = null; string errorEnvio = string.Empty; object mResponse = null; object objEnvio = null; try { RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio()); /*Consulta de pedidos procesados a BD*/ ListPedidosProcesados = (IEnumerable <PedidosProcesados>)_pedidoRepository.GetPedidosProcesados()[OutParameter.CursorPedidosProcesados]; if (ListPedidosProcesados == null || ListPedidosProcesados.ToList().Count.Equals(0)) { return(Ok(false)); } /*Obtiene Token de envío a Salesforce*/ var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); /*Por cada Pedido...*/ var PedidosProcesadosSF = new List <object>(); foreach (var pedidosProcesados in ListPedidosProcesados) { PedidosProcesadosSF.Add(pedidosProcesados.ToSalesforceEntity()); } try { objEnvio = new { info = PedidosProcesadosSF }; /*Envío de pedidos procesados a Salesforce*/ var responsePedidosProcess = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.PedidosProcesadosMethod, Method.POST, objEnvio, true, token); if (responsePedidosProcess.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responsePedidosProcess.Content); mResponse = jsonResponse["Solicitudes"]; foreach (var pedidosProcesados in ListPedidosProcesados) { foreach (var jsResponse in jsonResponse["Solicitudes"]) { if (pedidosProcesados.idSolicitudPago_SF == jsResponse[OutParameter.SF_IdSolicitudPago]) { /*Validamos Y Actualizamos en BD*/ if (jsResponse[OutParameter.SF_Codigo] == "OK") { pedidosProcesados.estadoProcess = "1"; } else { pedidosProcesados.estadoProcess = (string.IsNullOrEmpty(pedidosProcesados.estadoProcess) == false && pedidosProcesados.estadoProcess == "0" ? "2" : "0"); } _pedidoRepository.Update_Pedido_Process(pedidosProcesados); } } } } } catch (Exception ex) { errorEnvio = errorEnvio + ApiResponseCode.ErrorCode + " - " + ex.Message + " ||."; } return(Ok(true)); } catch (Exception ex) { errorEnvio = errorEnvio + " / " + ex.Message; return(InternalServerError(ex)); } finally { (new { Request = ListPedidosProcesados, Response = mResponse, EnvioSF = objEnvio, Exception = errorEnvio }).TryWriteLogObject(_logFileManager, _clientFeatures); } }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { IEnumerable <DetalleItinerarioNM> detItinerarioList = null; List <RptaItinerarioSF> ListRptaItinerarioSF_Fail = new List <RptaItinerarioSF>(); RptaItinerarioSF _rptaItinerarioSF = null; object SFResponse = null; string error = string.Empty; object objEnvio = null; try { var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio()); /// I. Consulta de Detalle Itinerario NM detItinerarioList = (IEnumerable <DetalleItinerarioNM>)(_detalleItinerarioNMRepository.GetItinerarios())[OutParameter.CursorDetalleItinerarioNM]; if (detItinerarioList == null || detItinerarioList.ToList().Count.Equals(0)) { return(Ok(false)); } /// II. Obtiene Token y URL para envío a Salesforce var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); /// III. Construímos lista para enviar a SF var detItinerarioNM_SF = new List <object>(); foreach (var detItinerario in detItinerarioList) { detItinerarioNM_SF.Add(detItinerario.ToSalesforceEntity()); } try { /// Envío de CuentaNM a Salesforce objEnvio = new { listadatos = detItinerarioNM_SF }; QuickLog(objEnvio, "body_request.json", "DetalleItinerarioNM", previousClear: true); /// ♫ Trace var responseDetItinerarioNM = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.DetItinerarioNMMethod, Method.POST, objEnvio, true, token); if (responseDetItinerarioNM.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responseDetItinerarioNM.Content); QuickLog(jsonResponse, "body_response.json", "DetalleItinerarioNM", previousClear: true); /// ♫ Trace SFResponse = jsonResponse["respuestas"]; foreach (var item in jsonResponse["respuestas"]) { try { #region Deserialize _rptaItinerarioSF = new RptaItinerarioSF(); _rptaItinerarioSF.CodigoError = "OK"; _rptaItinerarioSF.MensajeError = "TST"; _rptaItinerarioSF.idOportunidad_SF = "006R000000WAUr4IAH"; _rptaItinerarioSF.idItinerario_SF = "006R000000WAUr4IAC"; _rptaItinerarioSF.Identificador_NM = "2"; _rptaItinerarioSF.CodigoError = item[OutParameter.SF_Codigo]; _rptaItinerarioSF.MensajeError = item[OutParameter.SF_Mensaje]; _rptaItinerarioSF.idOportunidad_SF = item[OutParameter.SF_IdOportunidad2]; _rptaItinerarioSF.idItinerario_SF = item[OutParameter.SF_IdItinerario]; _rptaItinerarioSF.Identificador_NM = item[OutParameter.SF_IdentificadorNM]; #endregion #region ReturnToDB var updOperation = _detalleItinerarioNMRepository.Update(_rptaItinerarioSF); if (Convert.IsDBNull(updOperation[OutParameter.IdActualizados]) == true || updOperation[OutParameter.IdActualizados].ToString().ToLower().Contains("null") || Convert.ToInt32(updOperation[OutParameter.IdActualizados].ToString()) <= 0) { error = error + "Error en el Proceso de Actualizacion - No Actualizo Ningun Registro. Identificador NM : " + _rptaItinerarioSF.Identificador_NM.ToString() + "||||"; ListRptaItinerarioSF_Fail.Add(_rptaItinerarioSF); /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/ } #endregion } catch (Exception ex) { error = error + "Error en el Proceso de Actualizacion - Response SalesForce : " + ex.Message + "||||"; ListRptaItinerarioSF_Fail.Add(_rptaItinerarioSF); /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/ } } } else { error = responseDetItinerarioNM.StatusCode.ToString(); if (responseDetItinerarioNM != null && responseDetItinerarioNM.Content != null) { QuickLog(responseDetItinerarioNM.Content, "body_response.json", "DetalleItinerarioNM", previousClear: true); /// ♫ Trace } } } catch (Exception ex) { error = ex.Message; } return(Ok(true)); } catch (Exception ex) { error = error + " / " + ex.Message; return(InternalServerError(ex)); } finally { if (objEnvio != null || SFResponse != null || ListRptaItinerarioSF_Fail != null || string.IsNullOrEmpty(error) == false) { (new { Request = objEnvio, Response = SFResponse, Rpta_NoUpdate_Fail = ListRptaItinerarioSF_Fail, Exception = error //LegacySystems = detItinerarioList }).TryWriteLogObject(_logFileManager, _clientFeatures); } } }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { IEnumerable <Oportunidad> oportunidades = null; string exceptionMsg = string.Empty; try { ClearQuickLog("body_request.json", "Oportunidad"); /// ♫ Trace ClearQuickLog("body_response.json", "Oportunidad"); /// ♫ Trace var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio()); /// I. Consulta de Oportunidades oportunidades = (IEnumerable <Oportunidad>)_oportunidadRepository.GetOportunidades()[OutParameter.CursorOportunidad]; if (oportunidades == null || oportunidades.ToList().Count.Equals(0)) { return(Ok(oportunidades)); } /// Obtiene Token para envío a Salesforce var authSf = RestBase.GetToken(); var token = authSf[OutParameter.SF_Token].ToString(); var crmServer = authSf[OutParameter.SF_UrlAuth].ToString(); foreach (var oportunidad in oportunidades) { /// II. Enviar Oportunidad a Salesforce try { oportunidad.CodigoError = oportunidad.MensajeError = string.Empty; var oportunidad_SF = oportunidad.ToSalesforceEntity(); QuickLog(oportunidad_SF, "body_request.json", "Oportunidad", true); /// ♫ Trace var responseOportunidad = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.OportunidadMethod, Method.POST, oportunidad_SF, true, token); if (responseOportunidad.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responseOportunidad.Content); QuickLog(jsonResponse, "body_response.json", "Oportunidad", true); /// ♫ Trace try { oportunidad.CodigoError = jsonResponse[OutParameter.SF_CodigoError]; oportunidad.MensajeError = jsonResponse[OutParameter.SF_MensajeError]; if (string.IsNullOrEmpty(oportunidad.IdOportunidad)) { oportunidad.IdOportunidad = jsonResponse[OutParameter.SF_IdOportunidad]; } } catch { } try { /// Actualización de estado de Oportunidad a PTA var updateResponse = _oportunidadRepository.Update(oportunidad); oportunidad.Actualizados = int.Parse(updateResponse[OutParameter.IdActualizados].ToString()); } catch { } } } catch (Exception ex) { exceptionMsg = ex.Message; oportunidad.CodigoError = ApiResponseCode.ErrorCode; oportunidad.MensajeError = ex.Message; } } return(Ok(oportunidades)); } catch (Exception ex) { oportunidades = null; return(InternalServerError(ex)); } finally { (new { UnidadNegocio = unidadNegocio.Descripcion, Exception = exceptionMsg, LegacySystems = oportunidades }).TryWriteLogObject(_logFileManager, _clientFeatures); } }