/// <summary> /// Manejar excepcion /// </summary> /// <param name="exception"></param> /// <returns></returns> public HandleExceptionResult HandleException(System.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 NLog log.Error("Excepcion:", exception); return(result); } catch (System.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(System.Exception originalException, HandleExceptionResult result) { //TODO: JSA, APLICAR CADENA DE RESPONSABILIDAD System.Exception _innerException = originalException; if (_innerException.GetType() == typeof(GenericException)) { var genericException = _innerException as GenericException; result.TypeResult = TypeResult.Information; result.Message = genericException.FriendlyMessage; } else { if (_innerException.GetType() == typeof(ConcurrenciaExcepcion)) { result.TypeResult = TypeResult.Error; result.Message = Mensajes.ErrorConcurrencia; } else { if (_innerException.GetType() == typeof(NegocioExcepcion)) { var negocioException = _innerException as NegocioExcepcion; result.TypeResult = TypeResult.Error; result.Message = negocioException.FriendlyMessage; } else { if (_innerException.GetType() == typeof(DbEntityValidationException)) { var dbEntityValidationException = _innerException as DbEntityValidationException; result.TypeResult = TypeResult.Error; var errorMessages = dbEntityValidationException.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); var fullErrorMessage = string.Join("; ", errorMessages); result.Message = fullErrorMessage; } else { //Default result.TypeResult = TypeResult.Error; result.Message = Mensajes.ErrorGenerico; } } } } return(result); }
public HandleExceptionResult HandleException(System.Exception originalException, HandleExceptionResult result) { //JOR: No registro excepciones de negocio. if (originalException.GetType() == typeof(NegocioExcepcion)) { return(result); } var elmahExtension = ServiceLocator.Current.GetInstance <IElmahExtension>(); //wrapper Elmah elmahExtension.LogToElmah(originalException); return(result); }