/// <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); }); }
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)))); }
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 ); }