コード例 #1
0
        /// <summary>
        /// Notificar cambios de estados según url, a api super o simple
        /// </summary>
        /// <param name="uri">url del servicio a notificar, super o simple</param>
        /// <param name="authorizationHeader">Cabecera autorización api</param>
        /// <param name="notify">Objeto Notificación Estado</param>
        /// <param name="notityType">Identifica el tipo de notificación</param>
        private static void notificar(string uri, string authorizationHeader, NotificacionEstadoExpedienteRequest notify, NotityType notityType)
        {
            System.Threading.Tasks.Task.Run(() =>
            {
                var json          = JsonConvert.SerializeObject(notify);
                var result        = RestClient.Execute <WebApiResponseBase>(uri, RestSharp.Method.POST, json, authorizationHeader);
                var response      = new WebApiResponseBase();
                var estadoProceso = 0;

                if (result != null && !string.IsNullOrEmpty(result.Content))
                {
                    response = JsonConvert.DeserializeObject <RegistroExpedienteResponse>(result.Content);
                }

                if ((result.StatusCode == HttpStatusCode.OK || result.StatusCode == HttpStatusCode.Created) && response.Status == "OK")
                {
                    estadoProceso = 1;
                }
                else
                {
                    logger.Error("'{0}' | '{1}' | \n Data: '{2}'", uri, result.Content, json);
                    estadoProceso = 2;
                }

                //NotificacionRepository.Update(notify, estadoProceso, notityType);
            });
        }
コード例 #2
0
        public IHttpActionResult getEmpresaFromRut(string rut)
        {
            WSAtlas.AtlasClient ws = new WSAtlas.AtlasClient();
            WSAtlas.empresa     EmpresaEncontrada = ws.getEmpresaFromRut(rut.Replace(".", "").ToUpper());
            WebApiResponseBase  response          = new WebApiResponseBase();

            EmpresaEncontrada = EmpresaEncontrada ?? new WSAtlas.empresa();

            return(Ok(JObject.Parse(JsonConvert.SerializeObject(EmpresaEncontrada))));
        }
コード例 #3
0
        public override void OnException(HttpActionExecutedContext actionExecutedContext)
        {
            string exceptionMessage = string.Empty;

            if (actionExecutedContext.Exception.InnerException == null)
            {
                exceptionMessage = actionExecutedContext.Exception.Message;
            }
            else
            {
                exceptionMessage = actionExecutedContext.Exception.InnerException.Message;
            }

            exceptionMessage = (string.IsNullOrEmpty(exceptionMessage) ? "Internal Server Error." : exceptionMessage);

            //Genera código identificador de error para seguimiento
            string IDTiempo = DateTime.Now.ToString("yyyyMMddHHmmss") + DateTime.Now.Millisecond;
            var    strCode  = Guid.NewGuid().ToString("n").Substring(0, 8) + IDTiempo;
            var    xHash    = new xHash(ConfigurationManager.AppSettings["xHash.semilla"]);
            var    codigo   = xHash.EncryptData(strCode);

            codigo = codigo.Substring(0, 20);

            //Crea objeto de respuesta.
            var webApiResponse = new WebApiResponseBase()
            {
                Status  = "ERROR",
                Message = string.Format("Código Error: {0}", codigo)
            };

            logger.Fatal(actionExecutedContext.Exception, "ERROR INTERNO|CODIGO| {0} | MENSAJE::{1}", codigo, exceptionMessage);

            //return objeto formato json
            actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(
                HttpStatusCode.InternalServerError,
                JObject.Parse(JsonConvert.SerializeObject(webApiResponse)),
                JsonMediaTypeFormatter.DefaultMediaType
                );
        }