Exemple #1
0
        //Faz o Check-Out do cliente
        private void FazerCheckOut()
        {
            dynamic   ObjConf = PegaConfigHotel();
            dynamic   ObjDado = PegaClientesHotel();
            dynamic   NewObjDado;
            ArrayList ClientesHotel = new ArrayList();

            List <int> IdClientes = new List <int>();
            int        Contador   = 0;
            int        UsuarioSelecionado;
            bool       UsuarioValido;

            string         dataCheckIn;
            string         dataCheckOut;
            string         precoDiariaStr;
            string         nomeCliente;
            int            diasDecorridos;
            List <dynamic> servicosUt = new List <dynamic>();
            float          totalGasto = 0.0F;

            string AuxEnd;

            Stream       StrmDado;
            StreamWriter StrmWr;

            Stream StrmCheckOut;
            string caminhoCheckOutFile;

            string saidaCheckOut;

            Console.Clear();
            Console.WriteLine("###### FAZER CHECK-OUT ######\n");

            if (ObjDado.Clientes.Count > 0)
            {
                foreach (var cliente in ObjDado.Clientes)
                {
                    Contador++;
                    Console.WriteLine("-------------------------------------");
                    Console.WriteLine("ID: " + Contador);
                    Console.WriteLine("NOME: " + cliente.Nome);
                    Console.WriteLine("-------------------------------------");
                    ClientesHotel.Add(cliente);
                    IdClientes.Add(Contador);
                }

                Console.Write("Selecione um usuário (ID): ");
                do
                {
                    UsuarioSelecionado = int.Parse(Console.ReadLine());
                    UsuarioValido      = !Array.Exists(IdClientes.ToArray(), b => b == UsuarioSelecionado);
                    if (UsuarioValido)
                    {
                        Console.Write("\nUsuário inválido, selecione outro (ID): ");
                    }
                } while (UsuarioValido);

                dataCheckIn    = ObjDado.Clientes[UsuarioSelecionado - 1].CheckIn;
                precoDiariaStr = ObjDado.Clientes[UsuarioSelecionado - 1].Servicos[0].Preco;
                nomeCliente    = ObjDado.Clientes[UsuarioSelecionado - 1].Nome;

                Console.WriteLine("\nCliente Selecionado: {0}\n", nomeCliente);

                Console.Write("Data de CheckOut (DD/MM/AAAA): ");
                dataCheckOut = Console.ReadLine();

                diasDecorridos = CalculaData(dataCheckIn, dataCheckOut);

                foreach (var servico in ObjDado.Clientes[UsuarioSelecionado - 1].Servicos)
                {
                    servicosUt.Add(servico);
                }
                servicosUt.RemoveAt(0);

                Console.Clear();
                Console.WriteLine("###### FAZER CHECK-OUT ######\n");

                saidaCheckOut  = "---------------------- " + ObjConf.NomeHotel + " ----------------------\n";
                saidaCheckOut += "Cliente: " + nomeCliente + "\n";
                saidaCheckOut += "Data CheckIn: " + dataCheckIn + " | Data CheckOut: " + dataCheckOut + "\n";
                saidaCheckOut += "Dias no Hotel: " + diasDecorridos + "\n";
                saidaCheckOut += "serviços Utilizados: " + servicosUt.Count + "\n";
                saidaCheckOut += "----------------------------------------------------\n";
                saidaCheckOut += "Nome: Diária do Hotel\n";
                saidaCheckOut += "Perço: R$" + precoDiariaStr + "\n";
                if (servicosUt.Count > 0)
                {
                    saidaCheckOut += "----------------------------------------------------\n";
                    foreach (dynamic servico in servicosUt)
                    {
                        dynamic precoIn = servico.Preco;
                        saidaCheckOut += "Nome: " + servico.Nome + "\n";
                        saidaCheckOut += "Preço: R$" + precoIn + "\n";
                        totalGasto    += float.Parse(precoIn.ToString());
                        saidaCheckOut += "----------------------------------------------------\n";
                    }
                }
                else
                {
                    saidaCheckOut += "----------------------------------------------------\n";
                }
                totalGasto += diasDecorridos * float.Parse(precoDiariaStr);

                saidaCheckOut += "Total: R$" + totalGasto + " ---------------------------------\n\n";


                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine(saidaCheckOut);
                Console.ForegroundColor = ConsoleColor.Green;

                Console.Write("Deseja Concluir o Check-Out de {0} (S/N): ", nomeCliente);
                AuxEnd = Console.ReadLine();

                if (AuxEnd == "S" || AuxEnd == "s")
                {
                    ClientesHotel.RemoveAt(UsuarioSelecionado - 1);

                    NewObjDado = new { Clientes = ClientesHotel };

                    StrmDado = File.Create(caminhoArqDado);
                    StrmWr   = new StreamWriter(StrmDado);

                    StrmWr.Write(JsonConvert.SerializeObject(NewObjDado));

                    StrmWr.Close();
                    StrmDado.Close();

                    caminhoCheckOutFile = Path.GetFullPath(nomeCliente + "-checkout.txt");

                    StrmCheckOut = File.Open(caminhoCheckOutFile, FileMode.CreateNew);
                    StrmWr       = new StreamWriter(StrmCheckOut);
                    StrmWr.WriteAsync(saidaCheckOut);

                    StrmWr.Close();
                    StrmCheckOut.Close();

                    Console.WriteLine("Check-Out Concluido!");
                    Console.WriteLine("Arquivo de Nota: {0}", caminhoCheckOutFile);
                    Thread.Sleep(timeSleep);
                    Menu();
                }
                else
                {
                    Menu();
                }
            }
            else
            {
                Console.WriteLine("Não há clientes para fazer Check-Out!");
                Thread.Sleep(timeSleep);
                Menu();
            }
        }
Exemple #2
0
        // Faz a configuração inicial do programa ou reseta
        private void ConfiguraPrograma(bool clear = false)
        {
            Stream StrmConf;
            Stream StrmDado;

            StreamReader Leitor;
            StreamWriter Escritor;

            dynamic ConfStruct;
            dynamic DadoStruct;

            string NomeHotel;
            int    QuantidadeQuartos;
            float  PrecoDiaria;

            // Verifica se o diretório existe, se não cria um
            if (!Directory.Exists(caminhoDir))
            {
                Directory.CreateDirectory(caminhoDir);
            }

            // Verifica se os arquivos de dados e configurações existem
            if (!File.Exists(caminhoArqConf))
            {
                StrmConf = File.Open(caminhoArqConf, FileMode.Create);
                StrmConf.Close();
            }

            if (!File.Exists(caminhoArqDado))
            {
                StrmDado = File.Open(caminhoArqDado, FileMode.Create);
                StrmDado.Close();
            }

            // Abre os dois arquivos
            StrmConf = File.Open(caminhoArqConf, FileMode.Open);
            StrmDado = File.Open(caminhoArqDado, FileMode.Open);

            if (clear)
            {
                StrmConf.Close();
                StrmDado.Close();
                StrmConf = File.Open(caminhoArqConf, FileMode.Create);
                StrmDado = File.Open(caminhoArqDado, FileMode.Create);
            }

            Leitor = new StreamReader(StrmConf);

            // Verifica se o Arquivo está vazio
            if (Leitor.ReadToEnd() == "" || clear)
            {
                Console.Clear();
                Console.WriteLine("###### CONFIGURAÇÃO INICIAL ######\n");

                Console.Write("Nome do Hotel: ");
                NomeHotel = Console.ReadLine();

                Console.Write("Quantidade de Quartos do Hotel: ");
                QuantidadeQuartos = int.Parse(Console.ReadLine());

                Console.Write("Preço da Diária: R$");
                PrecoDiaria = float.Parse(Console.ReadLine());

                // Corpo do arquivo de Configurações
                ConfStruct = new
                {
                    NomeHotel,
                    QuantidadeQuartos,
                    PrecoDiaria,
                    Servico = new ArrayList()
                };

                // Corpo do arquivo de dados
                DadoStruct = new
                {
                    Clientes = new ArrayList()
                };

                // Gerando arquivos padrões
                Escritor = new StreamWriter(StrmConf);
                Escritor.Write(JsonConvert.SerializeObject(ConfStruct));
                Escritor.Close();

                Escritor = new StreamWriter(StrmDado);
                Escritor.Write(JsonConvert.SerializeObject(DadoStruct));
                Escritor.Close();

                Console.WriteLine("Arquivo Criados com Sucesso!");
                Console.WriteLine(caminhoDir);
                Console.WriteLine(caminhoArqConf);
                Console.WriteLine(caminhoArqDado);

                Thread.Sleep(timeSleep);
                Console.Clear();
            }

            Leitor.Close();

            StrmConf.Close();
            StrmDado.Close();
        }