示例#1
0
        public PutDataModule(PutDataHandler handler)
        {
            this.handler = handler;

            Put["/servers/{endpoint:url}/info", true] = async(x, _) =>
            {
                var gameServer = this.Bind <ServerInfo>();
                var server     = new GameServer
                {
                    endpoint = x.endpoint,
                    info     = gameServer
                };
                var validationResult = this.Validate(server);
                if (!validationResult.IsValid)
                {
                    logger.Error($"Cannot bind to GameServerInfo");
                    return(HttpStatusCode.BadRequest);
                }

                return(await AddServerAsync(server));
            };

            Put["/servers/{endpoint:url}/matches/{timestamp:utc_timestamp}", true] = async(x, _) =>
            {
                var matchResult = this.Bind <MatchResult>();
                var matchInfo   = new MatchInfo
                {
                    endpoint  = x.endpoint,
                    timestamp = x.timestamp,
                    result    = matchResult
                };
                var validationResult = this.Validate(matchInfo);
                if (!validationResult.IsValid)
                {
                    return(HttpStatusCode.BadRequest);
                }

                return(await AddMatchInfoAsync(matchInfo));
            };
        }
 public void SetUp()
 {
     file    = new TempFile();
     db      = new LiteDbAdapter(file.Filename);
     handler = new PutDataHandler(db);
 }