示例#1
0
        public int ReservarQuarto(ClienteInfo cliente, Data diaEntrada, Data diaSaida, QuartoTipo tipo)
        {
            foreach (var q in _quartos)
            {
                if ((q.Tipo() == tipo) && (q.Disponibilidade == QuartoDisponibilidade.Disponivel))
                {
                    q.Disponibilidade = QuartoDisponibilidade.Reservado;
                    q.Hospede         = cliente;
                    q.Entrada         = diaEntrada;
                    q.Saida           = diaSaida;

                    q.ConsumirGasto(QuartoGasto.Diaria);
                    return(q.Identificacao);
                }
            }

            return(-1);
        }
示例#2
0
        static void ReservarQuarto()
        {
            Console.Write("Nome do cliente: ");
            string nomeCliente = Console.ReadLine();

            Console.Write("Data de nascimento (dd mm aa): ");
            var dataNascimentoStr = Console.ReadLine().Split(' ');
            var dataNascimento    = new Data()
            {
                Dia = int.Parse(dataNascimentoStr[0]),
                Mes = int.Parse(dataNascimentoStr[1]),
                Ano = int.Parse(dataNascimentoStr[2])
            };

            Console.Write("Data de entrada (dd mm aa): ");
            var dataEntradaStr = Console.ReadLine().Split(' ');
            var dataEntrada    = new Data()
            {
                Dia = int.Parse(dataEntradaStr[0]),
                Mes = int.Parse(dataEntradaStr[1]),
                Ano = int.Parse(dataEntradaStr[2])
            };

            Console.Write("Data de saída (dd mm aa): ");
            var dataSaidaStr = Console.ReadLine().Split(' ');
            var dataSaida    = new Data()
            {
                Dia = int.Parse(dataSaidaStr[0]),
                Mes = int.Parse(dataSaidaStr[1]),
                Ano = int.Parse(dataSaidaStr[2])
            };

            Console.Write("Tipo do quarto (Simples, Dupla, Tripla): ");
            var tipoQuarto = Enum.Parse <QuartoTipo>(Console.ReadLine());

            if (!HotelSistema.Instance().PossuiQuartoDisponivel(tipoQuarto))
            {
                Console.WriteLine("Não há quartos desse tipo disponível.");
                return;
            }

            var custoTotal = HotelSistema.Instance().EstimarValor(tipoQuarto, dataEntrada, dataSaida);

            Console.WriteLine("O valor estimado para sua estadia total é de: R$ {0}", custoTotal);
            Console.Write("Confirmar? (sim/nao): ");
            var pagarAgora = Console.ReadLine();

            if (char.ToLower(pagarAgora[0]) == 'n')
            {
                Console.WriteLine("Reserva cancelada.");
                return;
            }
            else
            {
                Console.WriteLine("OK!");
            }

            if (-1 == HotelSistema.Instance().ReservarQuarto(nomeCliente, dataNascimento, dataEntrada, dataSaida, tipoQuarto))
            {
                Console.WriteLine("O cliente não está cadastrado. Precisamos de mais algumas informações");

                Console.Write("Endereço: ");
                string endereco = Console.ReadLine();

                Console.Write("Telefone: ");
                string telefone = Console.ReadLine();

                Console.Write("Bairro: ");
                string bairro = Console.ReadLine();

                Console.Write("Cidade: ");
                string cidade = Console.ReadLine();

                Console.Write("Estado: ");
                string estado = Console.ReadLine();

                Console.Write("RG: ");
                string rg = Console.ReadLine();

                var cliente = new ClienteInfo()
                {
                    Nome           = nomeCliente,
                    DataNascimento = dataNascimento,
                    Endereco       = endereco,
                    Telefone       = telefone,
                    Bairro         = bairro,
                    Cidade         = cidade,
                    Estado         = estado,
                    Identidade     = rg
                };
                HotelSistema.Instance().RegistrarCliente(cliente);
            }

            int quartoId = HotelSistema.Instance().ReservarQuarto(nomeCliente, dataNascimento, dataEntrada, dataSaida, tipoQuarto);

            Console.WriteLine("Quarto {0} reservado com sucesso!", quartoId);
        }
示例#3
0
 public void RegistrarCliente(ClienteInfo cliente)
 {
     _clientes.Add(cliente);
 }