using Auth.Models; using MongoDB.Driver; namespace Auth.Services; public class UserService { private readonly IMongoCollection _col; public UserService(IConfiguration cfg) { var cs = cfg["MongoDB:ConnectionString"] ?? "mongodb://127.0.0.1:27017"; var dbName = cfg["MongoDB:DatabaseName"] ?? "GameDb"; var client = new MongoClient(cs); var db = client.GetDatabase(dbName); _col = db.GetCollection("Users"); var keys = Builders.IndexKeys.Ascending(u => u.Username); _col.Indexes.CreateOne(new CreateIndexModel(keys, new CreateIndexOptions { Unique = true })); } public Task GetByUsernameAsync(string username) => _col.Find(u => u.Username == username).FirstOrDefaultAsync(); public Task CreateAsync(User user) => _col.InsertOneAsync(user); public Task UpdateAsync(User user) => _col.ReplaceOneAsync(u => u.Id == user.Id, user); public Task> GetAllAsync() => _col.Find(FilterDefinition.Empty).ToListAsync(); }