Ejemplo n.º 1
0
        //Solicita valores de data e especialidade do médico ao usuário, chama método de buscar consultas na clínica, itera sobre os resultados e imprime
        private static void GetMedicalAppointments()
        {
            Console.WriteLine();

            var day = ConsoleExtensions.ReadLine <int>("Digite o dia da data que deseja pesquisar:", d =>
            {
                if (d < 0 || d > 31)
                {
                    throw new InvalidOperationException();
                }
            });

            var month = ConsoleExtensions.ReadLine <int>("Digite o mês da data que deseja pesquisar:", d =>
            {
                if (d < 0 || d > 12)
                {
                    throw new InvalidOperationException();
                }
            });

            var year = ConsoleExtensions.ReadLine <int>("Digite o ano da data que deseja pesquisar:", d =>
            {
                if (d < 0 || d > 2300)
                {
                    throw new InvalidOperationException();
                }
            });

            var date = new DateTime(year, month, day);

            Console.WriteLine("Especialidades médicas:");
            Console.WriteLine($"0 - {MedicalSpecialty.Urologist.GetDescription()}");
            Console.WriteLine($"1 - {MedicalSpecialty.GeneralClinic.GetDescription()}");
            Console.WriteLine($"2 - {MedicalSpecialty.Otorhinolaryngology.GetDescription()}");
            Console.WriteLine($"3 - {MedicalSpecialty.Orthopedy.GetDescription()}");
            Console.WriteLine($"4 - {MedicalSpecialty.Anesthesiologist.GetDescription()}");
            Console.WriteLine($"5 - {MedicalSpecialty.Dermatologist.GetDescription()}");
            Console.WriteLine($"6 - {MedicalSpecialty.Gynecologist.GetDescription()}");
            Console.WriteLine($"7 - {MedicalSpecialty.Neurologist.GetDescription()}");
            Console.WriteLine($"8 - {MedicalSpecialty.Pedriatrician.GetDescription()}");
            Console.WriteLine($"9 - {MedicalSpecialty.Surgeon.GetDescription()}");
            var code = ConsoleExtensions.ReadLine <int>("Digite o código da especialidade médica: ", (c) =>
            {
                if (c < 0 || c > 9)
                {
                    throw new InvalidOperationException();
                }
            });

            MedicalSpecialty medicalSpecialty = (MedicalSpecialty)code;

            var medicalAppointments = _medicalClinic.GetMedicalAppointments(date, medicalSpecialty);

            foreach (var ma in medicalAppointments)
            {
                Console.WriteLine(ma.ToString());
            }
        }
Ejemplo n.º 2
0
        //Cria nova entidade médico e adiciona pelo metodo Add da tabela hash
        //Insere médico na fila de sua especialidade para que receba uma consulta
        public void AddDoctor(Crm crm, string name, MedicalSpecialty medicalSpecialty)
        {
            if (_doctors.Exist(crm))
            {
                throw new InvalidOperationException("Médico já existe.");
            }

            var doctor = new Doctor(crm, name, medicalSpecialty);


            _lastDoctorAppointments[(int)medicalSpecialty].Enqueue(crm);
            _doctors.Add(crm, doctor);
        }
Ejemplo n.º 3
0
        //Busca consulta na tabela hash com base na data e na especialidade da consulta
        public MedicalAppointment[] GetMedicalAppointments(DateTime date, MedicalSpecialty type)
        {
            if (!_medicalAppointmentHashs.Exist(date))
            {
                return(new List <MedicalAppointment>().ToArray());
            }

            var medicalAppointments = _medicalAppointmentHashs.Find(date);

            return(medicalAppointments
                   .ToArray()
                   .Where(x => x.Date == date && x.Doctor.MedicalSpecialty == type)
                   .ToArray()
                   );
        }
            public async Task <int> Handle(CreateMedicalSpecialtyCommand request, CancellationToken cancellationToken)
            {
                var model = request.Model;
                var item  = await Context.MedicalSpecialties
                            .Where(p => p.MedicalSpecialtyId == model.MedicalSpecialtyId)
                            .FirstOrDefaultAsync(cancellationToken);

                if (item != null)
                {
                    throw new AlreadyExistsException(nameof(MedicalSpecialty), nameof(model.MedicalSpecialtyId), model.MedicalSpecialtyId);
                }

                var newRecord = new MedicalSpecialty
                {
                    Description = model.Description
                };

                Context.MedicalSpecialties.Add(newRecord);
                await Context.SaveChangesAsync(cancellationToken);

                return(newRecord.MedicalSpecialtyId);
            }
Ejemplo n.º 5
0
        public static void Should_return_true_when_compare_two_different_doctors(string code, string name, MedicalSpecialty medicalSpecialty)
        {
            // arrange
            var doctor1 = new Doctor((Crm)"12345", "name", MedicalSpecialty.GeneralClinic);
            var doctor2 = new Doctor((Crm)code, name, medicalSpecialty);

            // act
            var result = doctor1.Equals(doctor2);

            // assert
            Assert.False(result);
        }
Ejemplo n.º 6
0
        //Cria nova entidade consulta e adiciona pelo metodo Add da tabela hash
        //Busca cliente com base no cpf
        //Remove médico da fila de agregamento de consultas e o coloca na última posição
        //Verifica a existência da consulta
        //Adiciona consulta a lista de consultas do médico e do cliente
        //Adiciona consulta à tabela hash
        public void AddMedicalAppointment(Cpf cpf, MedicalAppointmentType medicalAppointmentType, MedicalSpecialty medicalSpecialty, DateTime date)
        {
            var customer = GetCustomer(cpf);
            Crm crm      = _lastDoctorAppointments[(int)medicalSpecialty].Dequeue();

            _lastDoctorAppointments[(int)medicalSpecialty].Enqueue(crm);
            var doctor = GetDoctor(crm);

            var medicalAppointment = new MedicalAppointment(date, medicalAppointmentType, customer, doctor);

            if (!_medicalAppointmentHashs.Exist(date))
            {
                _medicalAppointmentHashs.Add(date, new Hashtable <MedicalAppointment, MedicalAppointment>());
            }

            var medicalAppointments = _medicalAppointmentHashs.Find(date);

            if (medicalAppointments.Exist(medicalAppointment))
            {
                throw new InvalidOperationException("Consulta médica já existe.");
            }

            customer.AddMedicalAppointment(medicalAppointment);
            doctor.AddMedicalAppointment(medicalAppointment);

            medicalAppointments.Add(medicalAppointment, medicalAppointment);
        }
Ejemplo n.º 7
0
 public void SetMedicalSpecialty(MedicalSpecialty value)
 {
     _medicalSpecialty = value;
 }
Ejemplo n.º 8
0
 public Doctor(Crm crm, string name, MedicalSpecialty medicalSpecialty) : base(crm, name)
 {
     MedicalSpecialty = medicalSpecialty;
 }