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); } }
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); }