// Services/PlayerService.cs using System.Collections.Generic; using System.Threading.Tasks; using GameAuthApi.Models; using Microsoft.Extensions.Configuration; using MongoDB.Driver; namespace GameAuthApi.Services; public class PlayerService { private readonly IMongoCollection _players; public PlayerService(IConfiguration config) { var client = new MongoClient(config["MongoDB:ConnectionString"]); var db = client.GetDatabase(config["MongoDB:DatabaseName"]); _players = db.GetCollection("Players"); } public virtual async Task GetByUserIdAsync(string userId) => await _players.Find(p => p.UserId == userId).FirstOrDefaultAsync(); public virtual async Task> GetByLocationIdAsync(string locationId) { return await _players.Find(p => p.LocationId == locationId).ToListAsync(); } public virtual async Task GetByIdAsync(string id) => await _players.Find(p => p.Id == id).FirstOrDefaultAsync(); public virtual async Task> GetAllAsync() { return await _players.Find(_ => true).ToListAsync(); } public virtual async Task CreateAsync(Player player) => await _players.InsertOneAsync(player); public virtual async Task UpdateAsync(Player player) { await _players.ReplaceOneAsync(p => p.Id == player.Id, player); } public virtual async Task DeleteAsync(string id) { await _players.DeleteOneAsync(p => p.Id == id); } }