/// <summary> /// Manejar excepcion /// </summary> /// <param name="exception"></param> /// <returns></returns> public HandleExceptionResult HandleException(Exception exception) { try { var result = new HandleExceptionResult(); result.TypeResult = TypeResult.Error; result.Message = Mensajes.ErrorGenerico; //Aplicar tuberia de filtros para el tratamiento de errores, basado en la configuraciones foreach (var filter in _filterHanderException) { result = filter.HandleException(exception, result); } _mensaje = result.Message; _typeResultado = result.TypeResult; //Registrar la excepcion en log log.Error("Excepcion:", exception); return(result); } catch (Exception ex) { if (log != null) { log.Error("Excepcion en ManejadorExcepciones - Exception Original :", exception); //Registrar la excepcion en NLog log.Error("Excepcion en ManejadorExcepciones :", ex); } } return(null); }
public HandleExceptionResult HandleException(Exception originalException, HandleExceptionResult result) { //wrapper Elmah ElmahExtension.LogToElmah(originalException); return(result); }
public HandleExceptionResult HandleException(Exception originalException, HandleExceptionResult result) { //TODO: JSA, APLICAR CADENA DE RESPONSABILIDAD Exception _innerException = originalException; if (_innerException.GetType() == typeof(GenericException)) { var genericException = _innerException as GenericException; result.TypeResult = TypeResult.Information; result.Message = genericException.FriendlyMessage; return(result); } if (_innerException.GetType() == typeof(AbpValidationException)) { var genericException = _innerException as AbpValidationException; result.TypeResult = TypeResult.Information; var msg = string.Join("; ", genericException.ValidationErrors .Select(x => x.ErrorMessage)); result.Message = msg; return(result); } if (_innerException.GetType() == typeof(ConcurrenciaExcepcion)) { result.TypeResult = TypeResult.Error; result.Message = Mensajes.ErrorConcurrencia; return(result); } //TODO: Colocar DbEntityValidationException, crea dependencia de EntityFramework if (_innerException.GetType() == typeof(DbEntityValidationException)) { var dbEntityValidationException = _innerException as DbEntityValidationException; var fullErrorMessage = dbEntityValidationException.DbEntityValidationExceptionToString(); result.TypeResult = TypeResult.Error; result.Message = fullErrorMessage; return(result); } //TODO: Mensajes de recursos en el framework //Default result.TypeResult = TypeResult.Error; result.Message = Mensajes.ErrorGenerico; return(result); }