Ejemplo n.º 1
0
        /// <summary>
        /// Método para salvar a sessão
        /// </summary>
        /// <param name="Sessao">Objeto com os dados da sessão</param>
        /// <returns>Contrato.RetornoSessao</returns>
        internal static Contrato.RetornoSessao SalvarSessao(Contrato.Sessao Sessao)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoSessao retSessao = new Contrato.RetornoSessao();

            // Verifica se as informações do usuário foram informadas
            string strValidacao = ValidarSessaoPreenchido(Sessao);

            // Se existe algum erro
            if (strValidacao.Length > 0)
            {
                retSessao.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO;
                retSessao.Mensagem = strValidacao;
            }
            else
            {
                // Loga no banco de dados
                Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();

                // Busca o usuário no banco
                List<Dados.SESSAO> lstSessoes = (from s in context.T_SESSAO
                                                          where s.LOGIN_USUARIO == Sessao.Login
                                                          select s).ToList();

                // Verifica se foi encontrado algum registro
                if (lstSessoes.Count > 0 )
                {
                    if (lstSessoes.First().DES_CHAVE != Sessao.Chave)
                    {
                        // Preenche o objeto de retorno
                        retSessao.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO;
                        retSessao.Mensagem = string.Format("O usuário de Login '{0}' já está logado!", Sessao.Login);
                    }
                }
                else
                {
                    // Cria o usuário
                    Dados.SESSAO tSessao = new Dados.SESSAO();
                    tSessao.ID_SESSAO = Guid.NewGuid();
                    tSessao.LOGIN_USUARIO = Sessao.Login;
                    tSessao.DATA_LOGIN = DateTime.Now;
                    tSessao.DES_CHAVE = Sessao.Chave;
                    context.AddToT_SESSAO(tSessao);

                    // Salva as alterações
                    context.SaveChanges();

                    // Preenche o objeto de retorno
                    retSessao.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO;
                }
            }

            // retorna dos dados
            return retSessao;
        }