예제 #1
0
        public static void ConsumirServico(Hotel hotel)
        {
            Console.WriteLine("\nConsumir Serviço");
            int op = 1;

            do
            {
                try
                {
                    Console.WriteLine("\nSelecione o Hospede\n");
                    for (int i = 0; i < hotel.locacoes.Count; i++)
                    {
                        Console.WriteLine(i + " - " + hotel.locacoes[i].hospede.Nome);
                    }
                    Console.Write("\nEscolha um hospede: ");
                    int indice = int.Parse(Console.ReadLine());

                    Locacao locacoes = hotel.locacoes[indice];

                    int locacao = -1;

                    for (int i = 0; i < hotel.locacoes.Count; i++)
                    {
                        if (hotel.locacoes[i].hospede.Nome == locacoes.hospede.Nome)
                        {
                            locacao = i;
                            break;
                        }
                    }

                    if (locacao == -1)
                    {
                        Console.WriteLine("Cliente não possui quarto, favor locar um antes de consumir serviços\n");
                        return;
                    }

                    Console.WriteLine("Selecione os Servicos\n");
                    int sair;

                    do
                    {
                        for (int i = 0; i < hotel.servicos.Count; i++)
                        {
                            Console.WriteLine(i + " - "
                                              + hotel.servicos[i].Nome
                                              + " - $" + hotel.servicos[i].Preco);
                        }
                        Console.Write("\nEscolha o Serviço: ");
                        int     indiceServico = int.Parse(Console.ReadLine());
                        Servico servico       = hotel.servicos[indiceServico];
                        servico.Vezes = servico.Vezes + 1;
                        hotel.locacoes[locacao].servicosConsumidos.Add(servico);
                        Console.Write("\nDeseja adicionar mais um servico");
                        Console.Write("\n0 - Não, 1 - Sim\n");
                        Console.Write("Digite: ");
                        sair = int.Parse(Console.ReadLine());
                    } while (sair != 0);

                    Console.WriteLine("\nHospede: " + hotel.locacoes[locacao].hospede.Nome);
                    foreach (var item in hotel.locacoes[locacao].servicosConsumidos)
                    {
                        Console.WriteLine("Servico: " + item.Nome + " - $" + item.Preco);
                    }

                    op = 0;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            } while (op != 0);
        }
예제 #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);
        }
예제 #3
0
        static void Main(string[] args)
        {
            Hotel hotelviaflow = new Hotel();

            hotelviaflow.start();
        }