protected override void Executar(Command command) { Assegure.Que(command.IdAtendimento > 0, "Informe o IdAtendimento"); var atendimento = atendimentoRepo.ById(command.IdAtendimento); atendimento.Cancelar(timeProvider); }
protected override void Executar(Command command) { Assegure.Que(command.IdAtendimento > 0, "Informe o IdAtendimento"); var atendimento = atendimentoRepo.ById(command.IdAtendimento); atendimento.Compareceu(); }
public virtual void Cancelar(ITimeProvider timeProvider) { Assegure.Que(Status == TipoStatus.MARC, $"Não é possível Cancelar no Status {Status}"); Status = TipoStatus.CANC; DataCancelamento = timeProvider.Now; }
protected override void Executar(Command command) { Assegure.Que(command.IdAtendimento > 0, "Informe o IdAtendimento"); command.Horario.Validar(); var atendimento = atendimentoRepo.ById(command.IdAtendimento); atendimento.Alterar(atendimentoRepo, timeProvider, command.Horario.ToPeriodoFechado(), new Paciente(command.PacienteNome, command.PacienteDataNascimento.ToDateTimeOrNull()), command.Observacao ); }
public Paciente(string nome, DateTime?dataNascimento) { nome = nome?.Trim(); Assegure.Que(nome.PossuiValor(), () => $"Informe o Nome"); Assegure.Que(nome.Length <= 100, () => "Nome deve ter até 100 caracteres"); Assegure.Que(dataNascimento != null, "Informe uma Data de Nascimento válida"); Assegure.Que(dataNascimento >= DateTimeExtension.MenorDataPossivel, $"Informe uma data maior ou igual a {dataNascimento.ToDateBr()}"); Nome = nome; DataNascimento = dataNascimento.Value; }
public virtual void ComputarResultado(DateTime dataComputou, IResultado resultado, IJogo jogo) { Assegure.Que(this.IdJogo == jogo.IdJogo, "Jogo inválido"); Assegure.NaoNulo(resultado, "Informe o resultado"); Assegure.NaoNulo(jogo, "Informe o jogo"); this.Acerto = jogo.ComputarAposta(resultado, Volante); this.AcertoStatus = this.Acerto == null ? StatusAcerto.ERR : StatusAcerto.VENC; this.StatusProcessamento = StatusProcessamentoAposta.COMP; this.DataComputou = dataComputou; }
protected override Acerto ApostaVencedoraTemplate(Resultado resultado, Volante volante) { Assegure.NaoNulo(resultado, "Informe o resultado"); Assegure.NaoNulo(volante, "Informe o volante"); var intersect = volante.NumerosSelecionados.Intersect(resultado.NumerosSorteados).ToList(); if (intersect.Count() == 6 || intersect.Count() == 5 || intersect.Count() == 4) { return(new Acerto(intersect)); } return(null); }
public Atendimento( IAtendimentoRepo atendimentoRepo, ITimeProvider timeProvider, PeriodoFechado horario, Paciente paciente, string observacao ) { observacao = observacao?.Trim(); Assegure.Que(atendimentoRepo != null, () => $"{nameof(atendimentoRepo)} é null"); Assegure.Que(timeProvider != null, () => $"{nameof(timeProvider)} é null"); Assegure.Que(horario != null, () => $"{nameof(horario)} é null"); Assegure.Que(paciente != null, "Informe o Paciente"); Assegure.Que((observacao?.Length ?? 0) <= 500, () => "Observação deve ter no máximo 500 caracteres"); Assegure.Que(horario.DataInicial >= timeProvider.Now, () => "Informe um Horário com data maior ou igual a de agora"); var atendimentos = atendimentoRepo.ExisteColisaoComOHorario(horario); Assegure.Que(atendimentos.Count == 0, () => $"Já existe Atendimento marcado para o Horário informado"); Horario = horario; Paciente = paciente; Observacao = observacao; Status = TipoStatus.MARC; DataCadastro = timeProvider.Now; }
public virtual void Finalizar(FinalizarCommand command) { Assegure.Que(this.IdJogo == command.Jogo.IdJogo, "Jogo inválido"); Assegure.NaoNulo(command.Resultado, "Informe o Resultado"); Assegure.NaoNulo(command.Apostas, "Apostas é null"); Assegure.Que(command.Apostas.Count > 0, "Nenhuma aposta informada"); command.Apostas.ForEach(aposta => aposta.ComputarResultado(command.DataConclusao, command.Resultado, command.Jogo)); this.Status = EnumStatusConcurso.CONC; this.DataConclusao = command.DataConclusao; this.Resultado = command.Resultado; }
public Aposta( int idAposta, Concurso concurso, IJogo jogo, DateTime dataOcorrencia, string jogador, IVolante volante ) { Assegure.Que(idAposta > 0, "idAposta inválida"); Assegure.NaoNulo(concurso, "Informe o Concurso"); Assegure.NaoNulo(jogo, "Informe o Jogo"); Assegure.EhDataValida(dataOcorrencia, () => "Data da Ocorrência inválida"); Assegure.NaoNulo(volante, "Informe o volante"); jogo.ValidarVolante(volante); this.IdAposta = idAposta; this.IdConcurso = concurso.IdConcurso; this.IdJogo = jogo.IdJogo; this.DataOcorrencia = dataOcorrencia; this.Jogador = jogador; this.Volante = volante; this.StatusProcessamento = StatusProcessamentoAposta.FEITA; this.AcertoStatus = StatusAcerto.INIC; }
public void Executar(Command command) { Assegure.Que(command.IdConcurso > 0, "Informe o Concurso"); Assegure.NaoNulo(command.Apostas, "Nenhuma Aposta"); Assegure.Que(command.Apostas.Count > 0, "Informe pelo menos uma aposta"); var concurso = concursoRepo.AtivoByIdConcurso(command.IdConcurso); Assegure.NaoNulo(concurso, "Concurso não encontrado"); var jogo = jogoRepo.GetByIdJogo(concurso.IdJogo); var dataOcorrencia = DateTime.Now; var type = typeof(Aposta); foreach (var apostaDto in command.Apostas) { var idAposta = sequenceGenerator.NextIdFor(type); var newAposta = new Aposta( idAposta, concurso, jogo, dataOcorrencia, apostaDto.Jogador, apostaDto.Volante ); apostaRepo.Insert(newAposta); } }
public virtual void Compareceu() { Assegure.Que(Status == TipoStatus.MARC, $"Não é possível estar como Compareceu no Status {Status}"); Status = TipoStatus.COMP; }
public override void Query(Command command) { Assegure.Que(command.IdPaciente > 0, "Informe o IdPaciente"); command.PacienteResult = pacienteRepo.ById(command.IdPaciente); }
protected override void ValidarVolanteTemplate(Volante volante) { Assegure.Que(volante.NumerosSelecionados.Count == Regras.QuantidadeDeNumerosDoVolante, () => $"Volante inválido. Deve ter {Regras.QuantidadeDeNumerosDoVolante} números"); }