public static bool TryParse(string response, out GetModVersionResponse getModVersion) { try { XDocument xdoc = XDocument.Parse(response); XElement root = xdoc.Element("NinjaApi2Controller.ModVersion"); // Payload portion will be ignored as it's not used /*XElement parent = root.Element("Payload"); * XElement v = parent.Element("ModId"); * string id = v.Value; * v = parent.Element("Version"); * string version = v.Value;*/ XElement parent = root.Element("Status"); XElement v = parent.Element("Error"); int error; int.TryParse(v.Value, out error); v = parent.Element("Success"); bool success; bool.TryParse(v.Value, out success); getModVersion = new GetModVersionResponse(); getModVersion.Status.Error = error; getModVersion.Status.Success = success; return(true); } catch { getModVersion = null; return(false); } }
/// <summary> /// Gets the mod version by mod id. /// Synchronous call! /// </summary> /// <param name="modId">Mod ID</param> /// <returns>GetModVersionResponse object</returns> public GetModVersionResponse GetModVersion(string modId) { try { WebRequest request = WebRequest.Create(URL + "GetModVersion?modId=" + modId); request.Method = "GET"; request.Timeout = 20000; var response = request.GetResponse() as HttpWebResponse; using (Stream stream = response.GetResponseStream()) { var reader = new StreamReader(stream, Encoding.UTF8); var responseString = reader.ReadToEnd(); GetModVersionResponse result; GetModVersionResponse.TryParse(responseString, out result); return(result); } } catch (Exception e) { return(new GetModVersionResponse() { Payload = new ModVersionPayload(), Status = new ResponseStatus() { Error = (int)ModVersionApiErrors.UnknownError, Success = false } }); } }