//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()); } }
//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); }
//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); }
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); }
//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); }
public void SetMedicalSpecialty(MedicalSpecialty value) { _medicalSpecialty = value; }
public Doctor(Crm crm, string name, MedicalSpecialty medicalSpecialty) : base(crm, name) { MedicalSpecialty = medicalSpecialty; }