示例#1
0
        public Cliente Recuperar(Cliente cliente)
        {
            try
            {
                var resp = new Cliente();
                _connection.Conexao.Open();
                var sql     = Resource.Cliente.RecuperarLista;
                var command = new SqlCommand(sql, _connection.Conexao);

                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        resp = new ClienteCreator(reader, "", null).Create();
                    }
                }

                return(resp);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocorreu um erro ao recuperar o cliente", ex);
            }
            finally
            {
                _connection.Conexao.Close();
            }
        }
示例#2
0
        static void Main()
        {
            Albergo albergo = new Albergo(10, 5, 3);
            Gestore gestore = new Gestore();

            ClienteCreator cliCreator = new ClienteCreator();
            List <Cliente> clienti    = new List <Cliente>();

            int count = 0;

            string       nome;
            FileInfo     file = new FileInfo("../../../nomi.txt");
            StreamReader sr   = new StreamReader(file.FullName);

            //Creo la lista di clienti tramite il creatore e i nomi presi dal file di testo
            while ((nome = sr.ReadLine()) != null)
            {
                clienti.Add(cliCreator.FactoryMethod(count, nome));
                count++;
            }

            //fino a quando l'albergo è aperto i clienti provano il check-in o si rilassano
            //ed eventualmente effettuano il check-out
            while (albergo.IsAperto())
            {
                foreach (Cliente c in clienti)
                {
                    if (c.GetCamera() == null)
                    {
                        gestore.CheckIn(c, albergo);
                    }
                }
                for (int i = 0; i < clienti.Count; i++)
                {
                    if (clienti[i].GetCamera() != null)
                    {
                        clienti[i].Relax();
                    }

                    if (clienti[i].GetGiorni() == 0)
                    {
                        gestore.CheckOut(clienti[i]);
                        clienti.Remove(clienti[i]);
                    }
                }
                if (clienti.Count == 0)
                {
                    albergo.ChiudiAlbergo();
                }
            }
        }