Пример #1
0
        public Operation Actualizar_EnvioCotRetail(FilesAsociadosSRVResponse FileAsociadosSRVResponse)
        {
            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_OPORTUNIDAD_CRM
            AddParameter("P_OPORTUNIDAD_CRM", OracleDbType.Varchar2, FileAsociadosSRVResponse.id_oportunidad_sf);
            /// (04) P_ES_ATENCION
            AddParameter("P_ES_ATENCION", OracleDbType.Varchar2, FileAsociadosSRVResponse.codigo_error);
            /// (05) P_DESCRIPCION
            AddParameter("P_DESCRIPCION", OracleDbType.Varchar2, FileAsociadosSRVResponse.mensaje_error);
            /// (06) P_ACTUALIZADOS
            AddParameter(OutParameter.NumeroActualizados, OracleDbType.Varchar2, DBNull.Value, ParameterDirection.Output, OutParameter.DefaultSize);
            #endregion

            #region Invoke
            ExecuteStoredProcedure(StoredProcedureName.AW_Upd_EnvioCotRetail);
            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()
        {
            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);
            }
        }