public Operation Actualizar_EnvioCotizacionB2C(CotizacionJYUpd Cotizacion) { var operation = new Operation(); #region Parameter /// (01) P_CODIGO_ERROR AddParameter(OutParameter.CodigoError, OracleDbType.Varchar2, DBNull.Value, ParameterDirection.Output, OutParameter.DefaultSize); /// (02) P_MENSAJE_ERROR AddParameter(OutParameter.MensajeError, OracleDbType.Varchar2, DBNull.Value, ParameterDirection.Output, OutParameter.DefaultSize); /// (03) P_COTIZACION AddParameter("P_COTIZACION", OracleDbType.Varchar2, Cotizacion.Cotizacion); /// (04) P_FILE AddParameter("P_FILE", OracleDbType.Varchar2, Cotizacion.File); /// (05) P_ES_ATENCION AddParameter("P_ES_ATENCION", OracleDbType.Varchar2, Cotizacion.Es_Atencion); /// (06) P_DESCRIPCION AddParameter("P_DESCRIPCION", OracleDbType.Varchar2, Cotizacion.Descripcion); /// (07) P_ACTUALIZADOS AddParameter(OutParameter.NumeroActualizados, OracleDbType.Varchar2, DBNull.Value, ParameterDirection.Output, OutParameter.DefaultSize); #endregion #region Invoke ExecuteStoredProcedure(StoredProcedureName.CT_Actualziar_EnvioCotizacionB2C); operation[OutParameter.CodigoError] = GetOutParameter(OutParameter.CodigoError); operation[OutParameter.MensajeError] = GetOutParameter(OutParameter.MensajeError); operation[OutParameter.NumeroActualizados] = GetOutParameter(OutParameter.NumeroActualizados); #endregion return(operation); }
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); } }