예제 #1
0
        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);
        }
예제 #2
0
        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);
            }
        }