/// <summary> /// Método auxiliar de criação de uma pessoa. /// </summary> /// <returns><c>true</c>, Pessoa criada, <c>false</c> se não.</returns> /// <param name="pessoa">Pessoa.</param> static bool CriarPessoa(out Pessoa pessoa) { try { pessoa = new Pessoa(); int idade; int numeroCC; bool evalNumeroCC, aux; Console.Write("Insira o nome da pessoa\n\t>>> "); pessoa.Nome = Console.ReadLine().ToUpper(); do { Console.Write("Insira a idade da Pessoa\n(Ex: 57)\t>>> "); aux = int.TryParse(Console.ReadLine(), out idade); if (!aux || idade < 0) { Console.WriteLine("Insira uma idade valida (Ex: 57)"); aux = false; } } while (!aux); pessoa.Idade = idade; do { Console.Write("Insira o número de CC da Pessoa\n\tFormato: 12345678\n\t>>>"); evalNumeroCC = int.TryParse(Console.ReadLine(), out numeroCC); try { evalNumeroCC = Valida.NumeroCC(numeroCC); pessoa.NumeroCC = numeroCC; } catch (Exception ex) { Console.WriteLine(ex.Message, "Número de CC colocado incorretamente, insira novamente"); evalNumeroCC = false; } } while (!evalNumeroCC); return(true); } catch (Exception) { throw; } }
static void Main(string[] args) { #region MENU if (!CriarSalas() && GestorSalas.NumeroDeSalas() != 2) { Console.WriteLine("Ocorreu um erro ao criar as Salas"); System.Environment.Exit(1); } int numeroCC; bool menu = false, colocar, valida = false; int opcao; Pessoa pessoa; Reserva reserva; do { Console.ForegroundColor = ConsoleColor.White; Console.Write("------------------------------------------------------------------------------------------------------------------\n\n"); Console.ForegroundColor = ConsoleColor.Green; Console.Write("[+] "); Console.ResetColor(); Console.Write("Camas Disponiveis \\ Total de Camas"); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\t\t[+] "); Console.ResetColor(); Console.WriteLine("Numero de Reservas \\ Total de Camas Prioritarias"); Console.ForegroundColor = ConsoleColor.Green; Console.Write("[1] "); Console.ResetColor(); Console.Write("{0} - {1}\\{2}", EnumSalas.Sala1.ToString(), GestorSalas.CamasDisponiveis(EnumSalas.Sala1), GestorSalas.TotalCamas(EnumSalas.Sala1)); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\t\t\t\t[1] "); Console.ResetColor(); Console.Write("{0} - {1}\\{2}\n", EnumSalas.Sala1.ToString(), GestorSalas.NumeroReservas(EnumSalas.Sala1), GestorSalas.MaxReservas(EnumSalas.Sala1)); Console.ForegroundColor = ConsoleColor.Green; Console.Write("[2] "); Console.ResetColor(); Console.Write("{0} - {1}\\{2}", EnumSalas.Sala2.ToString(), GestorSalas.CamasDisponiveis(EnumSalas.Sala2), GestorSalas.TotalCamas(EnumSalas.Sala2)); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\t\t\t\t[2] "); Console.ResetColor(); Console.Write("{0} - {1}\\{2}\n", EnumSalas.Sala2.ToString(), GestorSalas.NumeroReservas(EnumSalas.Sala2), GestorSalas.MaxReservas(EnumSalas.Sala2)); Console.ForegroundColor = ConsoleColor.Green; Console.ResetColor(); Console.Write("\n[0] Sair da Aplicação\n"); Console.Write("[1] Nova pessoa\n"); Console.Write("[2] Reservar Cama Prioritaria\n"); Console.Write("[3] Cancelar Reserva Prioritaria\n"); Console.Write("[4] Retirar pessoa\n"); Console.Write("[5] Consultar Reservas para Determinada Data\n"); Console.Write("[6] Consultar Reservas para Determinada NumeroCC\n"); Console.Write("[7] Consultar pessoas colocadas\n"); Console.Write(">>> "); menu = int.TryParse(Console.ReadLine(), out opcao); switch (opcao) { case 1: CriarPessoa(out pessoa); Console.WriteLine("\nOs dados inseridos são os seguintes:\n"); MostrarPessoa(pessoa); try { colocar = AssociarPessoa(pessoa, GetSala()); } catch (Exception ex) { Console.WriteLine(ex.Message); colocar = false; } if (colocar) { Console.WriteLine("\nA pessoa foi colocada com sucesso"); } BL.PessoasBL.SavePessoa(pessoa); Console.WriteLine("Prima qualquer tecla para voltar ao menu."); Console.ReadKey(); Console.Clear(); break; case 2: bool aux; CriarPessoa(out pessoa); reserva = CriarReserva(pessoa); do { try { aux = RegistarReserva(reserva, GetSala()); } catch (Exception ex) { Console.WriteLine(ex.Message); aux = false; } if (aux) { Console.WriteLine("Cama reservada com sucesso\nPrima Qualquer Tecla para Voltar ao Menu >>> "); Console.ReadKey(); Console.Clear(); } if (!aux) { Console.Write("Não foi possivel reservar a cama\nPrima Qualquer Tecla para Voltar ao Menu >>> "); Console.ReadKey(); Console.Clear(); aux = true; } } while (!aux); BL.ReservasBL.SaveReserva(reserva); break; case 3: DateTime data; do { Console.Write("Insira o número de CC da Reserva\n>>> "); aux = int.TryParse(Console.ReadLine(), out numeroCC); try { valida = Valida.NumeroCC(numeroCC); } catch (Exception ex) { Console.WriteLine(ex.Message); } } while (!valida); if (valida) { bool cancela = false; data = DatasReserva(true); try { cancela = CancelarReserva(numeroCC, data, GetSala()); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.Write("\nPrima Qualquer Tecla para Voltar ao Menu >>> "); Console.ReadKey(); } if (cancela) { Console.WriteLine("Reserva cancelada com sucesso"); Console.Write("\nPrima Qualquer Tecla para Voltar ao Menu >>> "); Console.ReadKey(); } } break; case 4: do { Console.Write("Insira o número de CC da Pessoa\n>>> "); aux = int.TryParse(Console.ReadLine(), out numeroCC); try { valida = Valida.NumeroCC(numeroCC); } catch (Exception ex) { Console.WriteLine(ex.Message); } } while (!valida); if (valida) { bool saiu = false; try { saiu = GestorSalas.RemoverPessoa(numeroCC, GetSala()); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.Write("\nPrima Qualquer Tecla para Voltar ao Menu >>> "); Console.ReadKey(); } if (saiu) { Console.WriteLine("Pessoa retirada com sucesso\n"); Console.Write("\nPrima Qualquer Tecla para Voltar ao Menu >>> "); Console.ReadKey(); } } break; case 5: MostrarReservas(GestorSalas.CamasOcupadasNaData(DatasReserva(false), GetSala())); MostrarReservas(BL.ReservasBL.GetReservas()); break; case 6: do { Console.Write("Insira o número do CC da pessoa\n>>> "); aux = int.TryParse(Console.ReadLine(), out numeroCC); try { valida = Valida.NumeroCC(numeroCC); } catch (Exception ex) { Console.WriteLine(ex.Message); } } while (!valida); MostrarReservas(GestorSalas.NumerosDeCCReservas(numeroCC, GetSala())); MostrarReservas(BL.ReservasBL.GetReservas()); break; case 7: Console.Write("\n"); MostrarColocadas(GestorSalas.PessoasColocadas(GetSala())); MostrarColocadas(BL.PessoasBL.GetPessoas()); Console.Write("\nPrima Qualquer Tecla para Voltar ao Menu >>> "); Console.ReadKey(); Console.Clear(); break; default: Console.Clear(); break; } } while (!menu || opcao != 0); Console.WriteLine("End of Demo\n Prima QlQr Tecla para sair"); Console.ReadKey(); }