/// <summary> /// Returns <see cref="ApiResponse"/> with string representation of <see cref="ServerInfoJson"/> in body. /// </summary> /// <param name="endpoint"></param> /// <returns></returns> public ApiResponse GetInfo(string endpoint) { using (var context = new GameStatsDbDataContext()) { var server = context.Servers.FirstOrDefault(s => s.endpoint == endpoint); if (server == null) { return(new ApiResponse(System.Net.HttpStatusCode.NotFound)); } int serverId = server.id; var gameModes = (from gmOnServer in context.GameModesOnServers where gmOnServer.server_id == serverId join gameMode in context.GameModes on gmOnServer.gm_id equals gameMode.id select gameMode.name).ToList(); ServerInfoJson serverInfo = new ServerInfoJson { Name = server.name, GameModes = gameModes.ToList() }; return(new ApiResponse( body: JsonConvert.SerializeObject(serverInfo, Formatting.Indented))); } }
/// <summary> /// Returns <see cref="ApiResponse"/> with string representation of List<<see cref="ServersInfoRecordJson"/>> in body. /// </summary> /// <returns></returns> public ApiResponse GetInfo() { using (var context = new GameStatsDbDataContext()) { var servers = context.Servers; List <ServersInfoRecordJson> results = new List <ServersInfoRecordJson>(); foreach (var server in servers) { int serverId = server.id; var gameModes = (from gmOnServer in context.GameModesOnServers where gmOnServer.server_id == serverId join gameMode in context.GameModes on gmOnServer.gm_id equals gameMode.id select gameMode.name).ToList(); ServerInfoJson serverInfo = new ServerInfoJson { Name = server.name, GameModes = gameModes }; results.Add(new ServersInfoRecordJson { Endpoint = server.endpoint, Info = serverInfo }); } return(new ApiResponse( body: JsonConvert.SerializeObject(results))); } }
public override bool Equals(object obj) { if (obj == null) { return(false); } ServerInfoJson objAsServerInfoJson = obj as ServerInfoJson; if (objAsServerInfoJson == null) { return(false); } return(this.Name == objAsServerInfoJson.Name && this.GameModes.Count == objAsServerInfoJson.GameModes.Count && this.GameModes.OrderBy(s => s) .SequenceEqual (objAsServerInfoJson .GameModes.OrderBy(s => s))); }
public ApiResponse PutInfo(string endpoint, ServerInfoJson serverInfoJson) { return(PutInfo(endpoint, serverInfoJson.Name, serverInfoJson.GameModes)); }