public async Task <bool> Handle(AgendarConsultaCommand request, CancellationToken cancellationToken) { if (!ValidarComando(request)) { return(false); } var agendaMedica = await _agendaMedicaRepository.ObterAgendaMedica(request.MedicoId); var agendamentoPaciente = new AgendamentoPaciente(request.PacienteId, request.DataInicioConsulta); if (agendaMedica == null) { agendaMedica = new AgendaMedica(request.MedicoId); agendaMedica.AdicionarAgendamentoPaciente(agendamentoPaciente); _agendaMedicaRepository.Adicionar(agendaMedica); } else if (HorarioAgendamentoNaoDisponivel(request, agendaMedica)) { await _mediatorHandler.PublicarNotificacao(new DomainNotification("Agendamento consulta", "Data não está disponível!")); return(false); } else { agendaMedica.AdicionarAgendamentoPaciente(agendamentoPaciente); _agendaMedicaRepository.AdicionarAgendamentoPaciente(agendamentoPaciente); } return(await _agendaMedicaRepository.UnitOfWork.Commit()); }
public async Task AgendarConsulta_NovaConsulta_ComSucesso() { //Arrange var agendaConsultaCommand = new AgendarConsultaCommand(_medicoId, Guid.NewGuid(), DateTime.Now.AddDays(1)); var agendaMedica = new AgendaMedica(_medicoId); var agendaMedicaExistente = new AgendamentoPaciente(_pacienteId, DateTime.Now.AddDays(1)); agendaMedica.AdicionarAgendamentoPaciente(agendaMedicaExistente); _mocker.GetMock <IAgendaMedicaRepository>().Setup(r => r.UnitOfWork.Commit()).Returns(Task.FromResult(true)); //Act var result = await _agendaMedicaHandler.Handle(agendaConsultaCommand, CancellationToken.None); //Assert Assert.True(result); _mocker.GetMock <IAgendaMedicaRepository>().Verify(r => r.Adicionar(It.IsAny <AgendaMedica>()), Times.Once); _mocker.GetMock <IAgendaMedicaRepository>().Verify(r => r.UnitOfWork.Commit(), Times.Once); }
public VisualizarAgendamento(int id) { InitializeComponent(); ID = id; WindowsSO.ToCenterOfScreen(this); var agendamento = Agendamentos.Select(id); if (agendamento != null) { Data = agendamento._Data; var i = agendamento.Inicio; var f = agendamento.Fim; HorarioTBL.Text = $"{i.Hours:00}:{i.Minutes:00}-{f.Hours:00}:{f.Minutes:00}"; var am = AgendamentoFuncionario.Select(id); if (am != null) { var pessoa = Pessoas.Select(am.Funcionario); MedicoCPFTBL.Text = pessoa.CPF; MedicoNomeTBL.Text = pessoa.Nome; } var atp = AgendamentoTempPaciente.Select(id); if (atp != null) { var contato = TempPacientes.Select(atp.TempPaciente); PacienteNomeTBL.Text = atp.TempPaciente; PacienteContatoTBL.Text = contato; } else { var ap = AgendamentoPaciente.Select(id); PacienteCPFTBL.Text = ap.Paciente; var pessoa = Pessoas.Select(ap.Paciente); PacienteNomeTBL.Text = pessoa.Nome; PacienteContatoTBL.Text = pessoa.Contato1; } } }
public void AdicionarAgendamentoPaciente(AgendamentoPaciente agendamentoPaciente) { _context.AgendamentoPacientes.Add(agendamentoPaciente); }