示例#1
0
        private void ValidarAgendamentoAdicinar(Agendamento agendamento)
        {
            var agendamentoBanco = ObterPor(new FiltrosAgendamentos
            {
                DataAgendamentoAte  = agendamento.DataConsulta,
                DataAgendamentoDe   = agendamento.DataConsulta,
                CpfPaciente         = agendamento.CpfPaciente,
                ClinicaId           = agendamento.ClinicaId,
                StatusAgendamentoId = (int)StatusAgendamentoEnum.Aguardando,
            });

            if (agendamentoBanco.Any())
            {
                throw new Exception($"O paciente {agendamento.NomePaciente} CPF {agendamento.CpfPaciente} já está agendado para a clínica {agendamento.ClinicaNome}, com data {agendamento.DataConsulta.ToString("dd/MM/yyyy")}");
            }

            if (agendamento.TotalVagas <= decimal.Zero)
            {
                throw new Exception($"Não há vagas disponível para data {agendamento.DataConsulta.ToString("dd/MM/yyyy")}");
            }

            if (string.IsNullOrWhiteSpace(agendamento.ClinicaNome))
            {
                throw new Exception("Clínica não informada");
            }
        }
示例#2
0
 public void Salvar(Agendamento agendamento)
 {
     agendamento.StatusDescricao = ObterStatusDescricao(agendamento);
     agendamento.ClinicaNome     = ObterClinicaNome(agendamento);
     if (agendamento.Id == decimal.Zero)
     {
         AdiconarAgendamento(agendamento);
     }
     else
     {
         AtualizarAgendamento(agendamento);
     }
 }
示例#3
0
        private void AdiconarAgendamento(Agendamento agendamento)
        {
            ValidarAgendamentoAdicinar(agendamento);

            _todosOsAgendamentos.Adicionar(agendamento);
        }
示例#4
0
 private void AtualizarAgendamento(Agendamento agendamento)
 {
     _todosOsAgendamentos.Atualizar(agendamento);
 }
示例#5
0
 private string ObterStatusDescricao(Agendamento agendamento)
 {
     return(ObterTodosOsStatusAgendamento().FirstOrDefault(c => Convert.ToInt32(c.ID) == agendamento.StatusId).Description);
 }
示例#6
0
 private string ObterClinicaNome(Agendamento agendamento)
 {
     return(agendamento.ClinicaId == decimal.Zero
         ? string.Empty
         :_todosAsClinicas.ObterPor(agendamento.ClinicaId).Nome);
 }