Jump to content
rtavix

[Resolvido] Consultar Login

Recommended Posts

Estou com problemas ao realizar a consulta por login da minha aplicação, o mesmo me retorna o seguinte erro:

 

Referência de objeto não definida para uma instância de um objeto.

 

StrackTrace:

   em SDPJDominio.DataAccess.UsuarioDAO.ConsultarPorLogin(String login) na D:\Repositório SVN\SDP\SDPJ\branches\SDPJ-V3.1.0\SDPJ-102\SDPJDominio\DataAccess\UsuarioDAO.cs:linha 91
   em SDPJDominio.APL.AplUsuario.buscaPorLogin(String login) na D:\Repositório SVN\SDP\SDPJ\branches\SDPJ-V3.1.0\SDPJ-102\SDPJDominio\APL\AplUsuario.cs:linha 37
   em SDPJView.ImportacaoProcessoView.ImportacaoProcesso.importar_Click(Object sender, EventArgs e) na D:\Repositório SVN\SDP\SDPJ\branches\SDPJ-V3.1.0\SDPJ-102\SDPJView\ImportacaoProcessoView\ImportacaoProcesso.aspx.cs:linha 148
   em System.Web.UI.WebControls.Button.OnClick(EventArgs e)
   em System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
   em System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
   em System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   em System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   em System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

 

Alguém poderia me dizer que erro é esse? nunca vi isso :/

 

o erro cai nessa linha ao compilar:

 public static Usuario ConsultarPorLogin(string login)
        {
            ISession sessao = NhibernateHelper.SessaoCorrente;
            Usuario usuario = null;
            try
            {
                usuario = new Usuario();
                ICriteria criterios = sessao.CreateCriteria(usuario.GetType());
                criterios.Add(NHibernate.Criterion.Expression.Eq("Login", login));
                usuario = criterios.UniqueResult() as Usuario;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return usuario;
        }

 

Share this post


Link to post
Share on other sites

Qual é a linha 91 de UsuarioDAO.cs?

Share this post


Link to post
Share on other sites
34 minutos atrás, Gabriel Heming disse:

Qual é a linha 91 de UsuarioDAO.cs?

 

Usuario.Dao eu faço a consulta:

public static Usuario ConsultarPorLogin(string login)
        {
            ISession sessao = NhibernateHelper.SessaoCorrente;
            Usuario usuario = null;
            try
            {
                usuario = new Usuario();
                
                ICriteria criterios = sessao.CreateCriteria(usuario.GetType());
                criterios.Add(NHibernate.Criterion.Expression.Eq("Login", login));
                usuario = criterios.UniqueResult() as Usuario;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return usuario;
        }

 

 

 

 

Share this post


Link to post
Share on other sites
37 minutos atrás, Gabriel Heming disse:

Qual é a linha 91 de UsuarioDAO.cs?

Já no aplUsuário, utilizo para gravar:

 

namespace SDPJDominio.APL
{
    public class AplUsuario
    {
        public void gravar(Usuario usuario)
        {
            UsuarioDAO.InserirOuAtualizar(usuario);
        }

        public List<Usuario> listaTodos()
        {
            return UsuarioDAO.ListarTodos();
        }

        public void deletar(Usuario usuario)
        {
            UsuarioDAO.Deletar(usuario);
        }

        public Usuario buscaItem(int idUsuario)
        {
            return UsuarioDAO.ConsultaPorId(idUsuario);
        }

        public Usuario buscaPorLogin(string login)
        {
            Usuario usuario = null;
            if (!String.IsNullOrEmpty(login))
            {
                usuario = UsuarioDAO.ConsultarPorLogin(login);
            }
            return usuario;
        }
    }
}

porém no banco ao verificar na tabela log de atividade, não está salvando o log de atividade do usuário. 

 

Esse é meu código de atividade:

 

namespace SDPJDominio.APL
{
    public class AplLogAtividade
    {
        public void gravar(LogAtividade logAtividade)
        {
            LogAtividadeDAO.InserirOuAtualizar(logAtividade);
        }

        public List<LogAtividade> listaTodos()
        {
            return LogAtividadeDAO.ListarTodos();
        }

        public void deletar(LogAtividade logAtividade)
        {
            LogAtividadeDAO.Deletar(logAtividade);
        }

        public List<LogAtividade> buscarItem(DateTime dataInicio, DateTime dataFim, String login, string termo)
        {
            return LogAtividadeDAO.ListarTodos(dataInicio, dataFim, login, termo);
        }

        public void LogarAtividade(Usuario usuario, string descricao, DateTime dataAcao)
        {
            LogAtividade logAtividade = new LogAtividade();
            logAtividade.Usuario = usuario;
            logAtividade.Descricao = descricao;
            logAtividade.DataAcao = dataAcao;

            gravar(logAtividade);
        }

        public void LogarAtividade_(Usuario usuario, string descricao)
        {
            LogAtividade logAtividade = new LogAtividade();
            logAtividade.Usuario = usuario;
            logAtividade.Descricao = descricao;
            logAtividade.DataAcao = DateTime.Now;

            gravar(logAtividade);
        }
    }
}

Aqui é aonde eu chamado meu log:

 

if (listaLogsAuditoria.Count != 0)
                                {
                                    foreach (var item in listaLogsAuditoria)
                                    {
                                        aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item, DateTime.Now);
                                        
                                    }
                                }

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By fernandoxwiggy
      Bom dia,
      Alguém já teve que desenvolver o CIOT da empresa E-frete em C#?
       
      Estou buscando exemplos de como fazer usando o web service deles (http://dev.efrete.com.br/Services/LogonService.asmx).
      Eu acredito que preciso chamar o "login" (depois o logout) dentro desse web service, mas ele é uma interface e não estou achando um exemplo de chamar um procedimento em um web service que seja um interface.
       
      Agradeço desde já se alguém puder ajudar.
    • By User386_Denilson
      e aí pessoal, blz?
       
      Vou colocar aqui minha duvida...
      Tenho um projeto em net Core 2.2, usadon mongodb. Tenho uma collection antiga (Pessoas) que o pessoal foi alimentado com muita coisa, e agora estou organizando em pessoa fisica e pessoa juridica.
      Eu faço a busca usando o filtro por id:
      public async Task<PessoaDadosCad> GetPessoaFisica(string id) { var pessoa = await passaiMongoCollection.FindAsync(pessoa => pessoa.Id == id); var data = JsonConvert.SerializeObject(await pessoa.FirstOrDefaultAsync()); PessoaDadosCad simplifiedPerson = JsonConvert.DeserializeObject<PessoaDadosCad>(data.ToString()); return simplifiedPerson; }  
      (pessoa => pessoa.Id == id) ao executar esse comando de busca, a classe vinculada é Pessoa.
      Eu queria ver com vcs se tem como não vincular uma classe no momento da busca??
      Obrigado
    • By rdavisp
      Senhores, boa tarde.

      Pesquisei muito antes de abrir esse post, inclusive aqui, neste fórum. Encontrei dúvidas parecidas as quais tentei adaptar ao meu caso porem sem sucesso.

      A questão é a seguinte:

      Foi desenvolvida uma API em ASP.NET Core 2.0, mas por algumas solicitações do cliente, necessitei migrar para a versão 3.1. Existe uma SPA em Angular 7 que faz a requisição à API através de um método POST passando os parâmetros para a API que retornava um conjunto de dados para aplicação montar a tela. Após a atualização parou de funcionar! Por isso, gostaria de pedir a ajuda de vocês, por que, eu já esgotei as minhas tentativas.

      **No Controller da API está da seguinte maneira:**
       
      1 2 3 4 5 6 7 8 [HttpPost] [Route("api/[controller]")] public IGResult Post(Filtro filtro) {     Console.WriteLine("filtro: " + filtro);     var app = new IgApplication();     return app.getInstrucoes(filtro); }
      **E no angular se encontra dessa forma:**
       
      1 return this._http.post<IgResult>(environment.url + 'api/IG',  this.Filtro, options)

      Ao debugar a API, percebo que os dados do parâmetro **body** chegam nulos. Já tentei das seguintes maneiras abaixo, mudar a implementação do POST na API porém sem sucesso:
       
      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 > //public async Task<IActionResult> Post([FromBody] Filtro pessoa) >         //public HttpResponseMessage Post(Filtro pessoa) >         //public async Task<ActionResult<IList<Todo>>> Create([FromBody]TodoCreateViewModel model) >         //public Task<IActionResult> Post([FromBody] Filtro filtro) >         //public ActionResult<Filtro> Post([FromBody] Filtro filtro) >         //public HttpResponseMessage Post(Filtro filtro) >         //public string Post([FromBody] Filtro filtro) >         //public IActionResult Post([FromBody] Filtro filtro) >         //{ >         //var app = new IgApplication(); >         //return app.getInstrucoes(filtro); >         //return null;// Json(filtro); >         //} >         //public async System.Threading.Tasks.Task<string> Post(HttpRequestMessage request) >         //{ >         //    string body = await request.Content.ReadAsStringAsync(); >         //    return body; >         //}

      Por isso se possível, gostaria muito de contar com a colaboração de vocês.

      Desde já muito obrigado!
    • By rdavisp
      Senhores, bom dia.
      Mais uma vez recorro a ajuda de vocês para algo que não domino ainda. Vamos lá!
      Tenho uma API que quando startada, ela sobe no seguinte endereço: http://localhost:49013/api/values. Percebi que isto é parametrizado no arquivo launchSettings.json, que está assim:
       
      {   "iisSettings": {     "windowsAuthentication": false,     "anonymousAuthentication": true,     "iisExpress": {       "applicationUrl": "http://localhost:49013/",       "sslPort": 0     }   },   "profiles":    {     "IIS Express": {       "commandName": "IISExpress",       "launchBrowser": true,       "launchUrl": "api/values",       "environmentVariables": {         "ASPNETCORE_ENVIRONMENT": "Development"       }     },     "Cliente.IG.WebAPI": {       "commandName": "Project",       "launchBrowser": true,       "launchUrl": "api/values",       "environmentVariables": {         "ASPNETCORE_ENVIRONMENT": "Development"       },       "applicationUrl": "http://localhost:49012/"     }   } }  
      No meu controller da API, tenho seguinte método dentro do namespace:
       
          [Produces("application/json")]     [Route("api/IG")]     [ApiController]     public class IGController : Controller     {         [HttpPost]         public IGResult Post([FromBody] Filtro filtro)         {             var app = new IgApplication();             return app.getInstrucoes(filtro);         }     }  
      O "IgApplication" cria uma instância da classe onde é gerado uma lista que é populada com os valores atribuídos do DAO.
       
      Quando inicializo a aplicação "A" em angular através do localhost (http://localhost:4200/). Dentro do meu arquivo environment.prod.ts tenho a chamada:
       
      export const environment = {   production: true,   url: 'http://localhost:49013/' };  
      Ela passa por esse controller e segue o fluxo e faz o que tem que ser feito. 
      Porém, eis a questão! Eu possuo a aplicação "B", que acessa a mesma API porém possui funcionalidades diferente, por isso, dentro do mesmo controller eu criei uma nova classe e um método:
       
          [Produces("application/json")]     [Route("api/Item")]     public class APIIgItemController : Controller     {         [HttpGet]         public ItensResult Post([FromBody] Itens ValorItem)         {             var app = new CRUDApplication();             return app.GetItens();         }     }  
      Como faço para quando for startar a aplicação "B", ele passe por esse método "ItensResult" ao invés "IGResult", sendo que ambas são executadas pelo localhost:4200? Ou isso eu defino na aplicação angular? Vi que é possível configurar mais de uma "applicationUrl" dentro do json. Devo considerar essa configuração?
       
      Grato a quem puder ajudar!
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.