Пример #1
0
        public Consulta InserirConsulta(Consulta consulta)
        {
            var consultasMarcadas  = _consultaRepository.Listar(x => x.IdHorarioAtendimento == consulta.IdHorarioAtendimento && x.DataConsulta == consulta.DataConsulta);
            var horarioAtendimento = _horarioAtendimentoRepository.ObterComHorario(consulta.IdHorarioAtendimento);

            if (consultasMarcadas.Count > LIMITE_CONSULTAS_POR_HORARIO)
            {
                throw new Exception("LIMITE DE CONSULTAS EXCEDIDO");
            }

            if (horarioAtendimento == null || (int)consulta.DataConsulta.DayOfWeek != (int)horarioAtendimento.Horario.Dia - 1)
            {
                throw new Exception("Erro, horario de atendimento invalido");
            }

            consulta.GerarId();
            consulta.ConsultaAgendada();

            _consultaRepository.Inserir(consulta);
            _consultaRepository.Salvar();

            return(consulta);
        }