Пример #1
0
        public void Book(IBook rent)
        {
            // nosso amigo, o banco falso
            FakeDB       faker = new FakeDB();
            List <IBook> booksToSave;

            // adicionando a nova reserva. Se for a primeira cria do zero.
            IBook[] books = GetReservations();
            if (books == null)
            {
                booksToSave = new List <IBook>();
            }
            else
            {
                booksToSave = books.ToList();
            }

            // impedindo duplicidade e escrevendo em disco
            if (!booksToSave.Any(x => x.BookReference == rent.BookReference))
            {
                booksToSave.Add(rent);

                faker.Save(booksToSave);
            }
        }
Пример #2
0
        // dados persistentes, salvos em disco atraves das interações anteriores do usuário com o sistema
        public IBook[] GetReservations()
        {
            FakeDB faker = new FakeDB();

            IBook[] books = faker.Load <Book[]>();

            return(books);
        }
Пример #3
0
        public void CancelReservation(string bookReferenceNumber)
        {
            // removi as verificações de nulos, pois já são feitos em outra função;
            // idealmente não se deve fazer isso, mas para esse teste acredito que não será um problema

            FakeDB faker = new FakeDB();
            // ajustado após a solução abaixo não funcionar
            List <IBook> booksToSave = GetReservations().Where(x => x.BookReference != bookReferenceNumber).ToList();

            // estranhamente não funciona. deixei aqui a título de curiosidade
            //IBook book = FindReservation(bookReferenceNumber);
            //booksToSave.Remove(book);

            faker.Save(booksToSave);
        }