KerelOlivier
2 years ago
4 changed files with 52 additions and 0 deletions
@ -0,0 +1,9 @@ |
|||||||
|
namespace backend.Models; |
||||||
|
|
||||||
|
public class BlogDatabaseSettings |
||||||
|
{ |
||||||
|
public string ConnectionString { get; set; } = null; |
||||||
|
public string DatabaseName { get; set; } = null; |
||||||
|
public string UsersCollectionName{ get; set; } = null; |
||||||
|
public string PostsCollectionName { get; set; } = null; |
||||||
|
} |
@ -1,6 +1,38 @@ |
|||||||
|
using backend.Models; |
||||||
|
using Microsoft.Extensions.Options; |
||||||
|
using MongoDB.Driver; |
||||||
|
|
||||||
namespace backend.Services; |
namespace backend.Services; |
||||||
|
|
||||||
public class UserService |
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<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); |
||||||
|
} |
||||||
} |
} |
Loading…
Reference in new issue