private static void Main(string[] args) { Console.WriteLine("CLINÍCA MÉDICA"); _medicalClinic = new MedicalClinic(); _menuItems = GetMenuItems(); while (true) { ImprimirMenuItems(_menuItems); var option = ConsoleExtensions.ReadLine <int>("", (i) => { if (i < 0 || i > _menuItems.Count()) { throw new InvalidOperationException(); } }); if (option == 0) { break; } Executar(option); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); } }
//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()); } }
//Carrega arquivo dado um path, lê todas as linhas do arquivo e retorna as mesmas para serem tratadas em seus respectivos métodos private static IEnumerable <string> LoadFromFile() { Console.WriteLine(); Console.WriteLine(); var path = ConsoleExtensions.ReadLine <string>("Digite o caminho do arquivo:", p => { if (!File.Exists(p)) { Console.WriteLine("Arquivo não existe"); throw new InvalidOperationException(); } }); try { return(File.ReadAllLines(path, Encoding.UTF8)); } catch (UnauthorizedAccessException) { throw new UnauthorizedAccessException("Você não tem permissão de acesso a esse arquivo."); } }