using System.Collections.Generic; using System.Threading.Tasks; using GameAuthApi.Models; using Microsoft.Extensions.Configuration; using MongoDB.Driver; namespace GameAuthApi.Services; public class UserService { private readonly IMongoCollection _users; public UserService(IConfiguration config) { var client = new MongoClient(config["MongoDB:ConnectionString"]); var database = client.GetDatabase(config["MongoDB:DatabaseName"]); _users = database.GetCollection("Users"); } public async Task GetByUsernameAsync(string username) => await _users.Find(u => u.Username == username).FirstOrDefaultAsync(); public async Task> GetAllAsync() => await _users.Find(_ => true).ToListAsync(); public async Task DeleteAsync(string username) { var result = await _users.DeleteOneAsync(u => u.Username == username); return result.DeletedCount > 0; } public async Task CreateAsync(User user) => await _users.InsertOneAsync(user); public async Task UpdateAsync(User user) => await _users.ReplaceOneAsync(u => u.Id == user.Id, user); }