public async Task Adicionar(Funcionario funcionario) { if (!ExecutarValidacao(new FuncionarioValidation(), funcionario) || !ExecutarValidacao(new EnderecoValidation(), funcionario.Endereco)) { return; } if (_funcionarioRepository.Buscar(f => f.CPF == funcionario.CPF).Result.Any()) { Notificar("Já existe um funcionrio com este documento infomado."); return; } await _funcionarioRepository.Adicionar(funcionario); }
private bool ValidacaoRepositorio(Funcionario entidade) { var cpf = entidade.Documentos.FirstOrDefault(d => d.Tipo == TipoDocumento.CPF); if (cpf != null && _repository.Buscar(f => f.Id != entidade.Id && f.Documentos.Any(d => d.Tipo == TipoDocumento.CPF && d.Numero.Equals(cpf.Numero))).Result.Any()) { Notificar("Já existe um funcionário cadastrado com o CPF informado!"); return(false); } return(true); }
public IEnumerable <Funcionario> ObterTodosPorEstabelecimentoEhStatus(Guid idEstabelecimento, bool ativo) { var lista = _funcionarioRepository.Buscar(m => m.EstaAtivo == ativo && m.EstabelecimentoId == idEstabelecimento).ToList(); foreach (var item in lista) { item.Estabelecimento.AnularListaDeFuncionario(); item.AdicionarEndereco(_enderecoRepository.ObterPorPessoaId(item.IdPessoa)); item.DefinirUsuario(_usuarioRepository.ObterPorPessoaId(item.IdPessoa)); } return(lista); }
public void Handle(RegistrarFuncionarioCommand message) { var funcionario = new Funcionario(message.Id, message.Nome, message.Email); if (!funcionario.EhValido()) { NotificarValidacoesErro(funcionario.ValidationResult); return; } var funcionarioExistente = _funcionarioRepository.Buscar(f => f.Email == funcionario.Email); if (funcionarioExistente.Any()) { _bus.RaiseEvent(new DomainNotification(message.MessageType, "Já existe um Documento Configuração criado com este nome")); } _funcionarioRepository.Adicionar(funcionario); if (Commit()) { _bus.RaiseEvent(new FuncionarioRegistradoEvent(funcionario.Id, funcionario.Nome, funcionario.Email)); } }
public List <Funcionario> ObterTodosAtivos() { var result = _funcionarioRepository.Buscar(x => x.Delete.HasValue && !x.Delete.Value && x.Demitido == 0).OrderBy(x => x.Nome); return(result.ToList()); }