using Microsoft.AspNetCore.Mvc; using Server.Models; namespace Server.Controllers; [ApiController] [Route("[controller]")] public class LapController : ControllerBase { private readonly ILogger _logger; private SpaceRaceDbContext _db; public LapController(ILogger logger, SpaceRaceDbContext db) { _logger = logger; _db = db; } [HttpGet()] public IEnumerable Get() { return _db.Laps.Select(c => new LapDTO { Id = c.Id, UserId = c.UserId, Map = c.Map, Time = c.Time, Created = c.Created, }); } // [HttpGet()] // public LapStorageDTO UserLaps(Guid userId, string mapName) { // List laps = _db.Laps // .Where(l => l.Id == userId) // .Where(l => l.Map == mapName); // int completions = _db.Laps // .Where(l => l.Map == mapName) // .Count(); // int position = _db.Database.sql(""" // SELECT // """); // return new LapStorageDTO { // Map = mapName, // Laps = laps, // public int Completions { get; set; } // public int Position { get; set; } // } // } [HttpPost()] public async Task Post(LapDTO dto) { Lap existing = _db.Laps .SingleOrDefault(l => l.UserId == dto.UserId && l.Map == dto.Map); Lap v = new Lap { Id = Guid.NewGuid(), UserId = dto.UserId, Map = dto.Map, Time = dto.Time, Created = DateTimeOffset.UtcNow, }; _db.Laps.Add(v); await _db.SaveChangesAsync(); return v; } }