Files
spacerace/Server/Controllers/LapController.cs
T
2023-08-29 13:52:19 +10:00

48 lines
1.2 KiB
C#

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System.Data.SqlClient;
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,
});
}
[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;
}
}