protected async Task <ActionResult> Result(Func <Task <BaseRequestResulData <TViewModel> > > invoker, object body = null) { try { if (invoker != null) { var ret = await invoker.Invoke(); if (ret.Sucesso) { if (ret.Data == null) { return(NoContent()); } return(Ok(ret)); } else if (ret.Erro.Exception == null) { return((ActionResult)BadRequest(ret)); } else { _loggerService.GerarLogException(ret.Erro.Exception, "", request: Request, body: body); return(StatusCode(StatusCodes.Status500InternalServerError, new BaseRequestResultList <TViewModel> ($@"Houve um erro desconhecido.", $@"Aconteceu um erro desconhecido em nosso sistema. Foi criado um relatório para que os nossos desenvolvedores solucionem esse problema ;). Erro: {ret.Erro.Exception.Message}"))); } } return(NotFound()); } catch (Exception ex) { _loggerService.GerarLogException(ex, "", request: Request, body: body); return(StatusCode(StatusCodes.Status500InternalServerError, new BaseRequestResulData <TViewModel>( $@"Houve um erro desconhecido.", $@"Aconteceu um erro desconhecido em nosso sistema. Foi criado um relatório para que os nossos desenvolvedores solucionem esse problema ;). Erro: {ex.Message}"))); } }