using System.Collections.Generic; using System.Threading.Tasks; using GameAuthApi.Models; using Microsoft.Extensions.Configuration; using MongoDB.Driver; using MongoDB.Bson; namespace GameAuthApi.Services; public class SpawnableService { private readonly IMongoCollection _spawnables; public SpawnableService(IConfiguration config) { var client = new MongoClient(config["MongoDB:ConnectionString"]); var db = client.GetDatabase(config["MongoDB:DatabaseName"]); _spawnables = db.GetCollection("Spawnables"); } public virtual async Task CreateAsync(Spawnable spawnable) { await _spawnables.InsertOneAsync(spawnable); } public virtual async Task> GetAllAsync() { return await _spawnables.Find(_ => true).ToListAsync(); } public virtual async Task GetByIdAsync(string id) { if (!ObjectId.TryParse(id, out _)) return null; return await _spawnables.Find(s => s.Id == id).FirstOrDefaultAsync(); } public virtual async Task DeleteAsync(string id) { await _spawnables.DeleteOneAsync(s => s.Id == id); } }