예제 #1
0
        public IActionResult CriarConta([FromBody] TrabalhadorViewDTO model)
        {
            _logger.LogDebug("A executar api/administrador/criar -> Post");
            if (model is null)
            {
                _logger.LogWarning("O objeto AdministradorViewDTO é null!");
                return(BadRequest(nameof(model)));
            }

            try
            {
                ServiceResult resultado = _administradorBusiness.CriarConta(model);
                if (resultado.Sucesso)
                {
                    _logger.LogInformation($"O {model.Nome}, o Número de Funcionário {model.NumFuncionario} registou-se com sucesso.");
                    return(Ok());
                }
                else
                {
                    _logger.LogInformation("Ocorreu um erro ao criar conta.");
                    return(BadRequest(resultado.Erros));
                }
            }
            catch (ArgumentNullException e)
            {
                _logger.LogError(e, e.Message);
                return(BadRequest(e.Message));
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(StatusCode(500));
            }
        }
        public ServiceResult CriarConta(TrabalhadorViewDTO model)
        {
            _logger.LogDebug("A executar [FuncionarioBusiness -> CriarConta]");
            if (string.IsNullOrWhiteSpace(model.Nome))
            {
                throw new ArgumentNullException("Nome", "Campo não poder ser nulo!");
            }
            if (string.IsNullOrWhiteSpace(model.Password))
            {
                throw new ArgumentNullException("Password", "Campo não poder ser nulo.");
            }

            IList <int> erros = new List <int>();

            if (!ValidaNome(model.Nome))
            {
                _logger.LogDebug($"O Nome {model.Nome} é inválido.");
                erros.Add((int)ErrosEnumeration.NomeInvalido);
            }
            if (_funcionarioDAO.ExisteNumFuncionario(model.NumFuncionario))
            {
                _logger.LogDebug($"O Número de Funcionário {model.NumFuncionario} já existe.");
                erros.Add((int)ErrosEnumeration.NumFuncionarioJaExiste);
            }
            if (!ValidaPassword(model.Password))
            {
                _logger.LogDebug($"A Password {model.Password} é inválida.");
                erros.Add((int)ErrosEnumeration.PasswordInvalida);
            }
            if (!ValidaNumFuncionario(model.NumFuncionario))
            {
                _logger.LogDebug($"O Número de Funcionário {model.NumFuncionario} é inválido.");
                erros.Add((int)ErrosEnumeration.NumFuncionarioInvalido);
            }

            if (!erros.Any())
            {
                Funcionario funcionario = _mapper.Map <Funcionario>(model);
                funcionario.Password = _hashPasswordService.HashPassword(model.Password);
                _funcionarioDAO.InserirConta(funcionario);
            }

            return(new ServiceResult {
                Erros = new ErrosDTO {
                    Erros = erros
                }, Sucesso = !erros.Any()
            });
        }
        public ServiceResult <TrabalhadorViewDTO> GetFuncionario(int numFuncionario)
        {
            _logger.LogDebug("A executar [FuncionarioBusiness -> GetFuncionario]");
            IList <int>        erros          = new List <int>();
            TrabalhadorViewDTO funcionarioDTO = null;

            Funcionario funcionario = _funcionarioDAO.GetContaNumFuncionario(numFuncionario);

            if (funcionario == null)
            {
                _logger.LogWarning($"Não existe nenhum Funcionário com Número de Funcionário {numFuncionario}!");
                erros.Add((int)ErrosEnumeration.ContaNaoExiste);
            }
            else
            {
                funcionarioDTO = _mapper.Map <TrabalhadorViewDTO>(funcionario);
            }

            return(new ServiceResult <TrabalhadorViewDTO> {
                Erros = new ErrosDTO {
                    Erros = erros
                }, Sucesso = !erros.Any(), Resultado = funcionarioDTO
            });
        }
        public ServiceResult <TrabalhadorViewDTO> GetAdministrador(int idFuncionario)
        {
            _logger.LogDebug("A executar [AdministradorBusiness -> GetAdministrador]");
            IList <int>        erros            = new List <int>();
            TrabalhadorViewDTO administradorDTO = null;

            Administrador administrador = _administradorDAO.GetContaIdFuncionario(idFuncionario);

            if (administrador == null)
            {
                _logger.LogWarning($"Não existe nenhum Funcionário com Número de Funcionário {idFuncionario}!");
                erros.Add((int)ErrosEnumeration.ContaNaoExiste);
            }
            else
            {
                administradorDTO = _mapper.Map <TrabalhadorViewDTO>(administrador);
            }

            return(new ServiceResult <TrabalhadorViewDTO> {
                Erros = new ErrosDTO {
                    Erros = erros
                }, Sucesso = !erros.Any(), Resultado = administradorDTO
            });
        }