public virtual void Entrada(Veiculo veiculo) { if (veiculo == null) { QuebraDeEspeficacao.Adicionar(new RegraDeNegocio("Veículo não foi informado.")); } else { if (veiculo.Valido()) { QuebraDeEspeficacao.Adicionar(veiculo.QuebraDeEspeficacao.RegraDeNegocio); } } if (_provedorDoTempo != null) { if (_provedorDoTempo.DataHora == DateTime.MinValue) { QuebraDeEspeficacao.Adicionar(new RegraDeNegocio("Data de entrada não foi informada.")); } } if (!QuebraDeEspeficacao.HouveViolacao()) { Veiculo = veiculo; DataHoraDeEntrada = _provedorDoTempo.DataHora; } }
public Ticket(IProvedorDoTempo provedorDeDataHora) { if (provedorDeDataHora == null) { QuebraDeEspeficacao.Adicionar(new RegraDeNegocio("O provedor de data e hora não foi informado.")); } _provedorDoTempo = provedorDeDataHora; }
public Veiculo(Placa placa) { if (placa == null) { QuebraDeEspeficacao.Adicionar(new RegraDeNegocio("A placa do veículo não foi informada.")); } else { if (placa.Valido()) { QuebraDeEspeficacao.Adicionar(placa.QuebraDeEspeficacao.RegraDeNegocio); } } Placa = placa; }
public Placa(string valor) { if (string.IsNullOrWhiteSpace(valor)) { QuebraDeEspeficacao.Adicionar(new RegraDeNegocio("A identificação da placa não foi informada.")); } else { var regraValidaDoConteudo = new Regex("[a-zA-Z]{3}[0-9]{4}"); if (regraValidaDoConteudo.IsMatch(valor)) { QuebraDeEspeficacao.Adicionar(new RegraDeNegocio("A placa deve conter letras e números")); } } Valor = valor; }
public string Iniciar(string mensagem) { if (string.IsNullOrWhiteSpace(mensagem)) { violacaoDeRegra = new RegraDeNegocio("Mensagem inválida."); RegrasNegocio.Adicionar(violacaoDeRegra); } string[] separadores = new string[] { "\n" }; string[] linhas = mensagem.Split(separadores, StringSplitOptions.None); if (linhas.Length < numeroDeLinhasNaMensagemEnviadaParaControlarAsSondas) { violacaoDeRegra = new RegraDeNegocio($"Mensagem inválida, só contém {linhas.Length} linha(s)."); RegrasNegocio.Adicionar(violacaoDeRegra); } if (!RegrasNegocio.HouveViolacao()) { TratarLinhas(linhas); } return(resultado); }