You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.1 KiB
43 lines
1.1 KiB
using backend.Models; |
|
using Microsoft.Extensions.Options; |
|
using MongoDB.Driver; |
|
|
|
namespace backend.Services; |
|
|
|
public class UserService |
|
{ |
|
private readonly IMongoCollection<User> _users; |
|
|
|
public UserService(IOptions<BlogDatabaseSettings> settings) |
|
{ |
|
var client = new MongoClient(settings.Value.ConnectionString); |
|
var database = client.GetDatabase(settings.Value.DatabaseName); |
|
_users = database.GetCollection<User>(settings.Value.UsersCollectionName); |
|
} |
|
|
|
public async Task<List<User>> Get() |
|
{ |
|
return await _users.Find(user => true).ToListAsync(); |
|
} |
|
|
|
public async Task<User?> GetAsync(string id) |
|
{ |
|
var user = await _users.Find(user => user.Id == id).FirstOrDefaultAsync(); |
|
return user; |
|
} |
|
|
|
public async Task CreateAsync(User user) |
|
{ |
|
await _users.InsertOneAsync(user); |
|
} |
|
|
|
public async Task RemoveAsync(string id) |
|
{ |
|
await _users.DeleteOneAsync(user => user.Id == id); |
|
} |
|
|
|
public async Task UpdateAsync(string id, User userIn) |
|
{ |
|
await _users.ReplaceOneAsync(user => user.Id == id, userIn); |
|
} |
|
} |