Files
DotNetAPITutorial/APITest2/Services/BooksService.cs
2022-08-04 19:21:55 -05:00

27 lines
1.2 KiB
C#

using System;
using APITest2.Models;
using Microsoft.Extensions.Options;
using MongoDB.Driver;
namespace APITest2.Services
{
public class BooksService
{
private readonly IMongoCollection<Book> _booksCollection;
public BooksService(IOptions<BookStoreDatabaseSettings> bookStoreDatabaseSettings)
{
var mongoClient = new MongoClient(bookStoreDatabaseSettings.Value.ConnectionString);
var mongoDatabase = mongoClient.GetDatabase(bookStoreDatabaseSettings.Value.DatabaseName);
_booksCollection = mongoDatabase.GetCollection<Book>(bookStoreDatabaseSettings.Value.BooksCollectionName);
}
public async Task<List<Book>> GetAsync() => await _booksCollection.Find(_ => true).ToListAsync();
public async Task<Book?> 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);
}
}