using System; using APITest2.Models; using Microsoft.Extensions.Options; using MongoDB.Driver; namespace APITest2.Services { public class BooksService { private readonly IMongoCollection _booksCollection; public BooksService(IOptions bookStoreDatabaseSettings) { var mongoClient = new MongoClient(bookStoreDatabaseSettings.Value.ConnectionString); var mongoDatabase = mongoClient.GetDatabase(bookStoreDatabaseSettings.Value.DatabaseName); _booksCollection = mongoDatabase.GetCollection(bookStoreDatabaseSettings.Value.BooksCollectionName); } public async Task> GetAsync() => await _booksCollection.Find(_ => true).ToListAsync(); public async Task GetAsync(string id) => await _booksCollection.Find(x => x.Id == id).FirstOrDefaultAsync(); public async Task CreateAsync(Book newBook) => await _booksCollection.InsertOneAsync(newBook); public async Task UpdateAsync(string id, Book updatedBook) => await _booksCollection.ReplaceOneAsync(x => x.Id == id, updatedBook); public async Task DeleteAsync(string id) => await _booksCollection.DeleteOneAsync(x => x.Id == id); } }