This commit is contained in:
ntr committed 2023-08-29 11:45:08 +10:00
1 parent b2bfb72863
commit 9f857aeeda
5 files changed
+104 -10

No files matched your search

+68
View File
@@ -0,0 +1,68 @@
using Microsoft.AspNetCore.Mvc;
using Server.Models;
namespace Server.Controllers;
[ApiController]
[Route("[controller]")]
public class LapController : ControllerBase {
private readonly ILogger<LapController> _logger;
private SpaceRaceDbContext _db;
public LapController(ILogger<LapController> logger, SpaceRaceDbContext db) {
_logger = logger;
_db = db;
}
[HttpGet()]
public IEnumerable<LapDTO> 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<Lap> 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<Laps>.sql("""
// SELECT
// """);
// return new LapStorageDTO {
// Map = mapName,
// Laps = laps,
// public int Completions { get; set; }
// public int Position { get; set; }
// }
// }
[HttpPost()]
public async Task<Lap> 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;
}
}