public AcaoEfetuada Salvar(Usuario obj, List <PerfilUsuario> perfis, int recursoId = 1, short actionId = 1) { try { var usuarios = Buscar(new Usuario { CPF = obj.CPF }).ToList(); var logins = Buscar(new Usuario { ChaveDeAcesso = obj.ChaveDeAcesso }).ToList(); if (obj.Codigo == 0) { if (usuarios.Count(u => u.CPF == obj.CPF) > 0) { throw new SidsException("CPF já cadastrado"); } if (logins.Count(u => u.ChaveDeAcesso == obj.ChaveDeAcesso) > 0) { throw new SidsException("Login já cadastrado"); } PreInsertModel(obj); obj.SenhaExpirada = true; obj.AlterarSenha = true; obj.DataExpiracaoSenha = DateTime.Today.AddDays(int.Parse("0" + AppConfig.DiasExpiracaoSenha)); obj.Codigo = _usuario.Add(obj); } else { if (usuarios.Count(u => u.CPF == obj.CPF && u.Codigo != obj.Codigo) > 0) { throw new SidsException("CPF já cadastrado"); } if (logins.Count(u => u.ChaveDeAcesso == obj.ChaveDeAcesso && u.Codigo != obj.Codigo) > 0) { throw new SidsException("Login já cadastrado"); } var senha = _usuario.Fetch(new Usuario { Codigo = obj.Codigo }).FirstOrDefault().Senha; if (GetUserIdLogado() == obj.Codigo && obj.Status == false) { throw new SidsException("O usuário logado não pode ser desativado."); } var idLogado = GetUserIdLogado(); if (senha != obj.Senha && idLogado != obj.Codigo) { obj.SenhaExpirada = true; obj.AlterarSenha = true; } if (obj.DataExpiracaoSenha == new DateTime()) { var user = _usuario.Fetch(new Usuario { Codigo = obj.Codigo }).FirstOrDefault(); obj.DataExpiracaoSenha = user.DataExpiracaoSenha; obj.DataUltimoAcesso = user.DataUltimoAcesso; obj.DataCriacao = user.DataCriacao; } _usuario.Edit(obj); } if (perfis != null) { SalvarPerfilUsuario(obj, perfis); } var arg = string.Format("Login {0}, CPF {1}", obj.ChaveDeAcesso, obj.CPF); if (recursoId > 0) { return(LogSucesso(actionId, recursoId, arg)); } return(AcaoEfetuada.Sucesso); } catch (Exception ex) { throw SaveLog(ex, actionId, recursoId); } }
public bool Authenticate(Usuario entity) { return(usuario.Fetch(new Usuario { ChaveDeAcesso = entity.ChaveDeAcesso }).FirstOrDefault() != null); }