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