public Operation Update(RptaHotelSF RptaHotelNM) { var operation = new Operation(); #region Parameters AddParameter(OutParameter.CodigoError, OracleDbType.Varchar2, RptaHotelNM.CodigoError, ParameterDirection.Input, 2); AddParameter(OutParameter.MensajeError, OracleDbType.Varchar2, RptaHotelNM.MensajeError, ParameterDirection.Input, 1000); AddParameter(OutParameter.SF_IDOPORTUNIDAD_NM, OracleDbType.Varchar2, RptaHotelNM.idOportunidad_SF); AddParameter(OutParameter.SF_IDHOTEL_NM, OracleDbType.Varchar2, RptaHotelNM.idDetalleHotel_SF); AddParameter(OutParameter.IdIdentificadorNM, OracleDbType.Int64, Convert.ToInt64(RptaHotelNM.Identificador_NM)); AddParameter(OutParameter.IdActualizados, OracleDbType.Int32, DBNull.Value, ParameterDirection.Output); #endregion #region Invoke ExecuteStoredProcedure(StoredProcedureName.AW_Upd_DetalleHotelNM); operation[OutParameter.IdActualizados] = GetOutParameter(OutParameter.IdActualizados); #endregion return(operation); }
public IHttpActionResult Send(UnidadNegocio unidadNegocio) { IEnumerable <DetalleHotelNM> detalleHotelNMs = null; List <RptaHotelSF> ListRptaHotelSF_Fail = null; RptaHotelSF _rptaHotelSF = null; object SFResponse = null; string error = string.Empty; object objEnvio = null; try { var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio()); /// I. Consulta de Detalle Itinerario NM detalleHotelNMs = (IEnumerable <DetalleHotelNM>)(_detalleHotelNMRepository.GetDetalleHoteles())[OutParameter.CursorDetalleHotelNM]; if (detalleHotelNMs == null || detalleHotelNMs.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 detalleHotelNMSF = new List <object>(); foreach (var detalleHotel in detalleHotelNMs) { detalleHotelNMSF.Add(detalleHotel.ToSalesforceEntity()); } try { /// Envío de CuentaNM a Salesforce objEnvio = new { listadatos = detalleHotelNMSF }; QuickLog(objEnvio, "body_request.json", "DetalleHotelNM", previousClear: true); /// ♫ Trace var responseDetalleHotelNM = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.DetalleHotelNMMethod, Method.POST, objEnvio, true, token); if (responseDetalleHotelNM.StatusCode.Equals(HttpStatusCode.OK)) { dynamic jsonResponse = (new JavaScriptSerializer()).DeserializeObject(responseDetalleHotelNM.Content); QuickLog(jsonResponse, "body_response.json", "DetalleHotelNM", previousClear: true); /// ♫ Trace SFResponse = jsonResponse["respuestas"]; ListRptaHotelSF_Fail = new List <RptaHotelSF>(); foreach (var detalleHotelNM in jsonResponse["respuestas"]) { try { #region Deserialize _rptaHotelSF = new RptaHotelSF(); _rptaHotelSF.CodigoError = "OK"; _rptaHotelSF.MensajeError = "TST"; _rptaHotelSF.idOportunidad_SF = "006R000000WAUr4IAH"; _rptaHotelSF.idDetalleHotel_SF = "006R000000WAUr4IAC"; _rptaHotelSF.Identificador_NM = "1"; _rptaHotelSF.CodigoError = detalleHotelNM[OutParameter.SF_Codigo]; _rptaHotelSF.MensajeError = detalleHotelNM[OutParameter.SF_Mensaje]; _rptaHotelSF.idOportunidad_SF = detalleHotelNM[OutParameter.SF_IdOportunidad2]; _rptaHotelSF.idDetalleHotel_SF = detalleHotelNM[OutParameter.SF_IdDetalleHotel]; _rptaHotelSF.Identificador_NM = detalleHotelNM[OutParameter.SF_IdentificadorNM]; #endregion #region ReturnToDB var updOperation = _detalleHotelNMRepository.Update(_rptaHotelSF); 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 : " + _rptaHotelSF.Identificador_NM.ToString() + "||||"; ListRptaHotelSF_Fail.Add(_rptaHotelSF); /*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 + "||||"; ListRptaHotelSF_Fail.Add(_rptaHotelSF); /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/ } } } else { error = responseDetalleHotelNM.StatusCode.ToString(); if (responseDetalleHotelNM != null && responseDetalleHotelNM.Content != null) { QuickLog(responseDetalleHotelNM.Content, "body_response.json", "DetalleHotelNM", 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 || ListRptaHotelSF_Fail != null || string.IsNullOrEmpty(error) == false) { (new { Request = objEnvio, Response = SFResponse, Rpta_NoUpdate_Fail = ListRptaHotelSF_Fail, Exception = error //LegacySystems = detalleHotelNMs }).TryWriteLogObject(_logFileManager, _clientFeatures); } } }