/// <summary> /// Método auxiliar de criação das salas. /// </summary> /// <returns><c>true</c>, salas criadas, <c>false</c> se não.</returns> static bool CriarSalas() { try { return(GestorSalas.InserirSala(EnumSalas.Sala1) && GestorSalas.InserirSala(EnumSalas.Sala2)); } catch (Exception) { throw new Exception(); } }
/// <summary> /// Método de cancelamento de reservas. Retorna TRUE caso o cancelamento tenha sido bem sucedido. /// FALSE caso não o seja, e atira uma excpção. /// </summary> /// <returns><c>true</c> se reserva cancelada, <c>false</c>se não.</returns> private static bool CancelarReserva(int numeroCC, DateTime dia, EnumSalas nSala) { bool aux; try { aux = GestorSalas.CancelarReserva(numeroCC, dia, nSala); } catch (Exception ex) { throw new Exception(ex.Message); } return(aux); }
/// <summary> /// Método auxiliar de registo de uma reserva. /// </summary> /// <returns><c>true</c>, reserva registada, <c>false</c> se não.</returns> /// <param name="reserva">Reserva.</param> /// <param name="nSalas">N sala.</param> private static bool RegistarReserva(Reserva reserva, EnumSalas nSalas) { bool aux = false; try { aux = GestorSalas.ReservarCama(reserva, nSalas); } catch (Exception ex) { Console.WriteLine(ex.Message); } return(aux); }
/// <summary> /// Método auxiliar para associar as pessoas ás camas. /// </summary> /// <returns><c>true</c>, Pessoa colocada, <c>false</c> se não.</returns> /// <param name="pessoa">Pessoa.</param> /// <param name="nSalas">N sala.</param> private static bool AssociarPessoa(Pessoa pessoa, EnumSalas nSalas) { bool aux; try { aux = GestorSalas.TentaAssociarPessoa(pessoa, nSalas); } catch (Exception ex) { aux = false; Console.WriteLine(ex.Message); } return(aux); }
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(); }