public void start() { initialize(); MenuOperacoes op = MenuOperacoes.None; Funcoes.Menu(); do { try { Console.Write("Escolha uma das opções: "); int input = int.Parse(Console.ReadLine()); op = (MenuOperacoes)input; switch (op) { case MenuOperacoes.CadastrarHospede: hospedes.Add(MenuPrincipal.CadastrarHospede()); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.MostrarHospedes: hospedes.ForEach(x => Console.WriteLine("\nNome: " + x.Nome + " - Idade: " + x.Idade + " - Tel.: " + x.Telefone + " - E-mail: " + x.Email + " - Pagamento: " + x.metodoPagamento)); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.CadastrarQuarto: quartos.Add(MenuPrincipal.CadastrarQuarto()); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.MostarQuartos: quartos.ForEach(x => Console.WriteLine("\n" + x.Numero + " - $" + x.tipoQuarto + " - " + x.Preco)); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.CadastrarServico: servicos.Add(MenuPrincipal.CadastrarServico()); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.MostarServicos: Console.WriteLine("\nServiços disponiveis no hotel:"); servicos.ForEach(x => Console.WriteLine("\n" + x.Nome + " - $" + x.Preco)); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.LocarQuarto: locacoes.Add(MenuPrincipal.LocarQuarto(this)); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.MostrarLocacoes: if (locacoes.Count != 0) { locacoes.ForEach(locacao => { Console.WriteLine("\nQuarto: " + locacao.quarto.Numero + " - " + locacao.hospede.Nome); }); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); } else { Console.WriteLine("\nNENHUM QUARTO LOCADO NO HOTEL"); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); } break; case MenuOperacoes.ConsumirServico: MenuPrincipal.ConsumirServico(this); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.MostrarServicosConsumidos: Funcoes.SelecH(this); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.FecharComanda: Funcoes.FechaC(this); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.Sair: Console.WriteLine("Até Logo"); break; case MenuOperacoes.MostrarQuartoDisp: Funcoes.QuartosDisp(this); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.QuartosCount: Console.WriteLine("Relatório de utilização dos quartos:\n "); IEnumerable <Quarto> listaQ = quartos.OrderByDescending(x => x.Vezes); foreach (Quarto x in listaQ) { Console.WriteLine("{0} - {1}", x.Numero, x.Vezes); } Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; case MenuOperacoes.ServicosCount: Console.WriteLine("Relatório de utilização dos serviços do hotel: \n"); IEnumerable <Servico> listaS = servicos.OrderByDescending(x => x.Vezes); foreach (Servico x in listaS) { Console.WriteLine("{0} - {1}", x.Nome, x.Vezes); } Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; default: Console.WriteLine("Opção inválida"); Funcoes.retorna(); Funcoes.Menu(); Funcoes.Clear(); break; } } catch (Exception e) { Console.WriteLine("Opção inválida"); } } while (op != MenuOperacoes.Sair); }
public static Locacao LocarQuarto(Hotel hotel) { Locacao locacao = new Locacao(); Console.WriteLine("\nLocar Quarto"); MenuOperacoes op = MenuOperacoes.None; do { try { Console.WriteLine("\nSelecione o Hospede através do ID"); for (int i = 0; i < hotel.hospedes.Count; i++) { Console.WriteLine(i + " - " + hotel.hospedes[i].Nome); } Console.Write("\nHospede numero: "); int indice = int.Parse(Console.ReadLine()); locacao.hospede = hotel.hospedes[indice]; Console.WriteLine("\nSelecione o Quarto através do ID\n"); List <Quarto> quartosDisponiveis = hotel.quartosDisponiveis(); for (int i = 0; i < quartosDisponiveis.Count; i++) { Console.WriteLine(i + " - " + quartosDisponiveis[i].Numero + " - " + quartosDisponiveis[i].tipoQuarto + " - $" + quartosDisponiveis[i].Preco); } if (quartosDisponiveis.Count == 0) { Console.WriteLine("NENHUMA QUARTO DISPONIVEL"); } else { Console.Write("\nQuarto numero: "); indice = int.Parse(Console.ReadLine()); locacao.quarto = quartosDisponiveis[indice]; Console.WriteLine("\nAVISO - Quarto {0} locado em nome de {1}", locacao.quarto.Numero, locacao.hospede.Nome); locacao.quarto.Vezes = locacao.quarto.Vezes + 1; op = MenuOperacoes.Sair; try { MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); mail.From = new MailAddress("*****@*****.**"); mail.To.Add(locacao.hospede.Email); mail.Subject = "Abertura de conta do Hotel ViaFlow"; mail.Body = "\nObrigado " + locacao.hospede.Nome + " por utilizar os serviços do nosso Hotel.\nSeu quarto numero " + locacao.quarto.Numero + " já está disponivel para uso." + "\nEsperamos que aproveite a estadia conosco\n\nAtt," + "\nGerencia do Hotel ViaFlow"; SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential("*****@*****.**", "viaflow2019"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); } catch (Exception ex) { Console.WriteLine("Quarto locado com sucesso porém o email de confirmação falhou. Envie manualmente para o cliente " + locacao.hospede.Nome + "."); } } } catch (Exception e) { Console.WriteLine("Opção inválida"); } } while (op != MenuOperacoes.Sair); return(locacao); }