/// <summary> /// Faz o login com email e senha /// </summary> public bool FazerLogin(RequisicaoFazerLoginDto requisicaoDto, ref RetornoFazerLoginDto retornoDto) { LogVo logVo = new LogVo() { Id = Guid.NewGuid(), IdEntidade = Guid.Empty, IdUsuario = Guid.Empty, Recurso = LogRecursos.FazerLogin }; //Validar email e senha if (string.IsNullOrWhiteSpace(requisicaoDto.Email)) { retornoDto.Retorno = false; retornoDto.Mensagem = "O email é obrigatório para fazer o login"; logVo.Mensagem = retornoDto.Mensagem; logBll.RegistrarLogVo(logVo); return(false); } if (string.IsNullOrWhiteSpace(requisicaoDto.Senha)) { retornoDto.Retorno = false; retornoDto.Mensagem = "A senha é obrigatória para fazer o login"; logVo.Mensagem = retornoDto.Mensagem; logBll.RegistrarLogVo(logVo); return(false); } string nomeUsuario = "Suporte"; Guid idUsuario = UtilitarioBll.RetornarIdUsuarioSuporte(); bool usuarioAdm = false; //Se for o usuário suporte if (requisicaoDto.Email.Trim().ToUpper() == "SUPORTE") { string senhaCriptografada = ""; UtilitarioBll.CriptografarSenha(DateTime.Now.AddDays(-2).Date.ToString("dd/MM/yyyy").Replace("/", ""), ref senhaCriptografada); if (requisicaoDto.Senha.Trim() != senhaCriptografada) { retornoDto.Retorno = false; retornoDto.Mensagem = "Senha de suporte incorreta."; logVo.Mensagem = retornoDto.Mensagem; logBll.RegistrarLogVo(logVo); return(false); } usuarioAdm = true; } else { string mensagemErro = ""; IQueryable <UsuarioVo> query; if (!ObterQueryBd(out query, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = $"Falha ao listar os usuários: {mensagemErro}"; logVo.Mensagem = retornoDto.Mensagem; logBll.RegistrarLogVo(logVo); return(false); } UsuarioVo usuarioVo; //Procurar o email com o flag ativo query = query.Where(u => u.Email.Trim() == requisicaoDto.Email.Trim() && u.Inativo == false); try { usuarioVo = query.FirstOrDefault(); } catch (Exception ex) { retornoDto.Retorno = false; retornoDto.Mensagem = $"Falha ao obter o usuário do banco de dados: {ex.Message}"; logVo.Mensagem = retornoDto.Mensagem; logBll.RegistrarLogVo(logVo); return(false); } if (usuarioVo == null) { retornoDto.Retorno = false; retornoDto.Mensagem = $"Email ou senha inválidos. "; logVo.Mensagem = retornoDto.Mensagem; logBll.RegistrarLogVo(logVo); return(false); } if (!requisicaoDto.Senha.Equals(usuarioVo.Senha)) { retornoDto.Retorno = false; retornoDto.Mensagem = $"Email ou senha inválidos "; logVo.Mensagem = retornoDto.Mensagem; logBll.RegistrarLogVo(logVo); return(false); } usuarioAdm = usuarioVo.Administrador; nomeUsuario = usuarioVo.Nome; idUsuario = usuarioVo.Id; } string identificacao = DateTime.Now.ToString("dd/MM/yyyy hh:mm") + UtilitarioBll.RetornaGuidValidação() + idUsuario.ToString() + $"Adm={(usuarioAdm ? "1" : "0")}"; string identificacaoCriptografada = ""; if (!UtilitarioBll.CriptografarString(identificacao, ref identificacaoCriptografada)) { retornoDto.Mensagem = "Falha ao fazer o login: Não foi possível obter a identificação."; retornoDto.Retorno = false; logVo.Mensagem = retornoDto.Mensagem; logBll.RegistrarLogVo(logVo); return(false); } retornoDto.IdUsuario = idUsuario; retornoDto.NomeUsuario = nomeUsuario; retornoDto.Identificacao = identificacaoCriptografada; retornoDto.UsuarioAdministrador = usuarioAdm; retornoDto.Retorno = true; return(true); }