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()
            });
        }
示例#2
0
        public ServiceResult CriarConta(ClienteViewDTO model)
        {
            _logger.LogDebug("A executar [ClienteBusiness -> CriarConta]");
            if (string.IsNullOrWhiteSpace(model.Nome))
            {
                throw new ArgumentNullException("Nome", "Campo não poder ser nulo!");
            }
            if (string.IsNullOrWhiteSpace(model.Email))
            {
                throw new ArgumentNullException("Email", "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 (_clienteDAO.ExisteEmail(model.Email))
            {
                _logger.LogDebug($"O Email {model.Email} já existe.");
                erros.Add((int)ErrosEnumeration.EmailJaExiste);
            }
            if (_clienteDAO.ExisteNumTelemovel(model.NumTelemovel))
            {
                _logger.LogDebug($"O Número de Telemóvel {model.NumTelemovel} já existe.");
                erros.Add((int)ErrosEnumeration.NumTelemovelJaExiste);
            }
            if (!ValidaNome(model.Nome))
            {
                _logger.LogDebug($"O Nome {model.Nome} é inválido.");
                erros.Add((int)ErrosEnumeration.NomeInvalido);
            }
            if (!ValidaEmail(model.Email))
            {
                _logger.LogDebug($"O Email {model.Email} é inválido.");
                erros.Add((int)ErrosEnumeration.EmailInvalido);
            }
            if (!ValidaPassword(model.Password))
            {
                _logger.LogDebug("A Password introduzida é inválida.");
                erros.Add((int)ErrosEnumeration.PasswordInvalida);
            }
            if (!ValidaNumTelemovel(model.NumTelemovel))
            {
                _logger.LogDebug($"O Número de Telemóvel {model.NumTelemovel} é inválida.");
                erros.Add((int)ErrosEnumeration.NumTelemovelInvalido);
            }

            if (!erros.Any())
            {
                string  codigoValidacao     = GerarCodigo();
                int     numMaximoTentativas = _appSettings.NumTentativasCodigoValidacao;
                Cliente cliente             = _mapper.Map <Cliente>(model);
                cliente.Password = _hashPasswordService.HashPassword(model.Password);
                _clienteDAO.InserirConta(cliente, codigoValidacao, numMaximoTentativas);
            }
            return(new ServiceResult {
                Erros = new ErrosDTO {
                    Erros = erros
                }, Sucesso = !erros.Any()
            });
        }