コード例 #1
0
ファイル: Hotel.cs プロジェクト: Moonzoni/Hotel-Via-Flow
        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);
        }
コード例 #2
0
        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);
        }