public void incluirAgendamento(Agendamento agendamento)
        {
            if (agendamento == null) throw new ArgumentNullException("Agendamento");

            _ctx.Agendamentos.Add(agendamento);
            _ctx.SaveChanges();
        }
        public bool setStatus(Agendamento agendamento)
        {
            if (agendamento == null)
            {
                throw new ArgumentNullException("agendamento");
            }

            repAgendamento.incluirStatus(agendamento);
            return true;
        }
 public void AdicionarAgendamento(Agendamento agendamento)
 {
     if (agendamento == null)
     {
         throw new ArgumentNullException("agendamento");
     }
     else
     {
         if (agendamento.DiaDoAgendamento.Date.CompareTo(DateTime.Now.Date) >= 0)
         {
             servicoAgendamento.registrarAgendamento(agendamento);
         }
     }
 }
 public Agendamento getAgendamento(Agendamento agendamento)
 {
     if(agendamento.Paciente != null )
     {
         if(agendamento.DiaDoAgendamento != null)
         {
             return repAgendamento.obterAgendamentosPorProtocolo(agendamento.Paciente.Protocolo, agendamento.DiaDoAgendamento).FirstOrDefault();
         }
         else
         {
             throw new ArgumentNullException("agendamento.diaDoAgendamento == null");
         }
     }
     else
     {
         throw new ArgumentNullException("agendamento.paciente == null");
     }
 }
        public List<Agendamento> GetAgendamentos(Agendamento searchEntity)
        {
            if (searchEntity == null) throw new ArgumentNullException("searchEntity");
            List<Agendamento> listaAgendamento = new List<Agendamento>();
            if (searchEntity.DiaDoAgendamento != null && searchEntity.DiaDoAgendamento.Year != 1)
            {
                if (!String.IsNullOrEmpty(searchEntity.Paciente.Protocolo))
                {
                    listaAgendamento = repAgendamento.obterAgendamentosPorProtocolo(
                        searchEntity.Paciente.Protocolo, searchEntity.DiaDoAgendamento);
                }
                else
                {
                    listaAgendamento = repAgendamento.obterAgendamentos(searchEntity.DiaDoAgendamento);
                    if (!String.IsNullOrEmpty(searchEntity.Paciente.Nome))
                    {
                        listaAgendamento = listaAgendamento.FindAll(
                            a => a.Paciente.Nome.Contains(searchEntity.Paciente.Nome));
                    }

                }
            }
            else
            {
                if (!string.IsNullOrEmpty(searchEntity.Paciente.Nome))
                {
                    listaAgendamento = repAgendamento.obterAgendamentos(searchEntity.Paciente.Nome);
                }
                else if (!string.IsNullOrEmpty(searchEntity.Paciente.Protocolo))
                {
                    listaAgendamento = repAgendamento.obterAgendamentosPorProtocolo(searchEntity.Paciente.Protocolo);
                }
                else
                {
                    listaAgendamento = repAgendamento.obterAgendamentos();
                }
            }

            listaAgendamento.OrderByDescending(a => a.DiaDoAgendamento);

            return listaAgendamento;
        }
        public AgendamentoViewModel()
        {
            ListaDeAgendamento = new List<Agendamento>();
            ListaDePacientes = new List<Paciente>();

            SearchEntity = new Agendamento();
            //SearchEntity.DiaDoAgendamento = DateTime.Now;

            NovoAgendamento = new Agendamento();
            NovoAgendamento.DiaDoAgendamento = new DateTime();
            NovoAgendamento.Paciente = new Paciente();

            AtualizarAgendamento = new Agendamento();
            AtualizarAgendamento.DiaDoAgendamento = new DateTime();
            AtualizarAgendamento.Paciente = new Paciente();

            SearchEntity.Paciente = new Paciente();

            Start();
        }
        public bool registrarAgendamento(Agendamento agendamento)
        {
            if (agendamento == null) throw new ArgumentNullException("agendamento");

            var pacientes = agendamento.Paciente;
            if(pacientes == null)
            {
                throw new ArgumentNullException("agendamento.Paciente");
            }

            if (agendamento.DiaDoAgendamento.Date.CompareTo(DateTime.Now.Date) < 0)
            {
                return false;
            }

            agendamento.Paciente = repPaciente.obterPaciente(agendamento.Paciente.Protocolo);
            agendamento.PacienteId = agendamento.Paciente.Id;

            repAgendamento.incluirAgendamento(agendamento);

            return true;
        }
        public void BD_como_atendente_devo_registrar_um_agendamento_e_obter_o_mesmo_agendamento()
        {
            //arrenge
            IRepositorioAgendamento repAgendamento;
            IRepositorioPaciente repPaciente;
            Contexto ctx;
            ServicoAgendamento servicoAgendamento;

            //act
            ctx = new Contexto();
            repPaciente = new RepositorioPaciente(ctx);
            repAgendamento = new RepositorioAgendamento(ctx);
            servicoAgendamento = new ServicoAgendamento(repAgendamento, repPaciente);

            var paciente = repPaciente.obterPaciente("1");
            var data = DateTime.Now;
            data = data.AddDays(5);
            var agendamento = new Agendamento(paciente, data, ETipoDeTratamento.Quimioterapia_Dia);
            var funfou = servicoAgendamento.registrarAgendamento(agendamento);

            //assert
            Assert.IsTrue(funfou);
            Assert.IsTrue(repAgendamento.obterAgendamentos().Contains(agendamento));
        }
        public void Mock_como_atendente_devo_registrar_um_agendamento()
        {
            //arrenge
            IRepositorioAgendamento repAgendamento;
            IRepositorioPaciente repPaciente;
            ServicoAgendamento servicoAgendamento;
            //act
            repPaciente = new RepositorioPacienteMock();
            repAgendamento = new RepositorioAgendamentoMock(repPaciente);
            servicoAgendamento = new ServicoAgendamento(repAgendamento, repPaciente);

            var paciente = repPaciente.obterPaciente("1");
            var data = DateTime.Now.AddDays(5);
            var agendamento = new Agendamento(paciente,data, ETipoDeTratamento.Quimioterapia_Dia);
            var funfou = servicoAgendamento.registrarAgendamento(agendamento);

            //assert
            Assert.IsTrue(funfou);
        }
 public void setStatus(Agendamento agendamento)
 {
     servicoAgendamento.setStatus(agendamento);
 }
 public void incluirStatus(Agendamento agendamento)
 {
     throw new NotImplementedException();
 }
        public void incluirAgendamento(Agendamento agendamento)
        {
            if (agendamento == null) throw new ArgumentNullException("Agendamento");

            lista.Add(agendamento);
        }