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"); } }
public void Salvar(Agendamento agendamento) { agendamento.StatusDescricao = ObterStatusDescricao(agendamento); agendamento.ClinicaNome = ObterClinicaNome(agendamento); if (agendamento.Id == decimal.Zero) { AdiconarAgendamento(agendamento); } else { AtualizarAgendamento(agendamento); } }
private void AdiconarAgendamento(Agendamento agendamento) { ValidarAgendamentoAdicinar(agendamento); _todosOsAgendamentos.Adicionar(agendamento); }
private void AtualizarAgendamento(Agendamento agendamento) { _todosOsAgendamentos.Atualizar(agendamento); }
private string ObterStatusDescricao(Agendamento agendamento) { return(ObterTodosOsStatusAgendamento().FirstOrDefault(c => Convert.ToInt32(c.ID) == agendamento.StatusId).Description); }
private string ObterClinicaNome(Agendamento agendamento) { return(agendamento.ClinicaId == decimal.Zero ? string.Empty :_todosAsClinicas.ObterPor(agendamento.ClinicaId).Nome); }