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 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() }); }