Example #1
0
        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);
        }
Example #2
0
        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);
        }