27 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
|