public async Task <ActionResult <DateTime> > GetInfo([FromBody] DsUploadInfo info) { if (info.Name.Length != 64) { return(BadRequest()); } if (r.IsMatch(info.Name)) { return(BadRequest()); } var player = await PlayerService.GetPlayerName(context, info); return(player.LatestReplay); }
public static async Task <DsPlayerName> GetPlayerName(sc2dsstatsContext context, DsUploadInfo request) { var playerName = await context.DsPlayerNames.FirstOrDefaultAsync(f => f.Hash == request.Name); if (playerName == null) { var restPlayer = await context.DSRestPlayers.FirstOrDefaultAsync(f => f.Name == request.Name); playerName = new DsPlayerName() { AppId = new Guid(), DbId = Guid.NewGuid(), Hash = request.Name, Name = String.Empty, AppVersion = request.Version, LatestReplay = restPlayer == null ? new DateTime(2018, 1, 1) : restPlayer.LastRep }; context.DsPlayerNames.Add(playerName); await context.SaveChangesAsync(); } return(playerName); }