public async Task <int> GameStart(GameStateChange gsc)
        {
            SSQCGameInfo gi = new SSQCGameInfo
            {
                ServerName = gsc.ServerName
                , Map      = gsc.Map
            };

            // insert entry, return gameid
            SSQCGameState gs = new SSQCGameState
            {
                GameTime  = gsc.GameTime,
                EventType = gsc.EventType,
                Initiator = gsc.Initiator
            };

            foreach (GamePlayer gp in gsc.Players)
            {
                gi.Players.Add(new SSQCGamePlayer
                {
                    Name   = gp.Name,
                    Team   = gp.Team,
                    Class  = gp.Class,
                    TF_ID  = gp.TF_ID,
                    Player = true
                });
            }

            foreach (GamePlayer gp in gsc.Spectators)
            {
                gi.Players.Add(new SSQCGamePlayer
                {
                    Name   = gp.Name,
                    Team   = gp.Team,
                    Class  = gp.Class,
                    TF_ID  = gp.TF_ID,
                    Player = false
                });
            }

            gi.GameStates.Add(gs);

            await _context.AddAsync(gi);

            _context.SaveChanges();

            return(gi.GameID);
        }
        public async Task <int> GameStateChange(int gameid, float gametime, string eventtype, string initiator)
        {
            // insert entry, return data

            SSQCGameState gs = new SSQCGameState
            {
                GameTime  = gametime,
                EventType = eventtype,
                Initiator = initiator,
                GameID    = gameid
            };

            await _context.AddAsync(gs);

            return(await _context.SaveChangesAsync());
        }