public async Task <IActionResult> EntryBattleServer([FromBody] EntryBattleServer.Request req) { var requester = new evomatching.ProtocolModels.Matching.EntryBattleServer(); requester.request.sessionId = SelfHost.sessionId; requester.request.ipAddr = req.ipAddr; requester.request.port = req.port.Value; requester.request.rule = req.rule; requester.request.mapId = req.mapId; requester.request.autoMatchmakeTarget = req.autoMatchmakeTarget.Value; requester.request.label = req.label; requester.request.description = req.description; requester.request.serverName = req.serverName; requester.request.region = req.region; requester.request.owner = req.owner; var response = await requester.PostAsyncXXX(MatchingServerInfo.AreaUri(SelfHost.matchingArea)); if (response.StatusCode == System.Net.HttpStatusCode.OK) { var session = new Session(SelfHost.sessionId); session.Model.matchId = response.Payload.matchId; await session.SaveAsync(); } return(Ok(new EntryBattleServer.Response { })); }
public async Task <IActionResult> EntryBattleServer( [FromBody] EntryBattleServer.Request req, [FromServices] GeneralManager gm) { var res = new EntryBattleServer.Response(); await gm.EnqueueJob(() => { res.matchId = gm.MatchManager.Entry( req.sessionId, req.ipAddr, req.port, req.rule, req.mapId, req.serverName, req.region, req.owner, req.label, req.description, req.autoMatchmakeTarget ); gm.WatchDogSession.TemporaryAdd(req.sessionId); }); return(Ok(res)); }