/// <summary>
 /// Parses an InSites success HTTP response, and finds the ID of a newly created equipment resource. The response format must be XML.
 /// </summary>
 /// <param name="success">An <c>ApiResponse</c> representing an InSites XML response. The type of response required is one generated by the API call: POST /api/2.0/rest/equipment.xml.</param>
 /// <returns>The ID of the created equipment.</returns>
 public static string ParseEquipmentIdFromXMLResponse(APIResponse response)
 {
     byte[] bytes = Encoding.ASCII.GetBytes(response.ResponseData);
     XmlTextReader reader = new XmlTextReader(new MemoryStream(bytes));
     try {
         while (reader.Read()) {
             if (reader.NodeType == XmlNodeType.Element) {
                 if (reader.Name == "value") {
                     return reader.GetAttribute("id");
                 }
             }
         }
     }
     catch (Exception e) {
         throw new Exception("Equipment ID not found", e);
     }
     finally {
         reader.Close();
     }
     throw new Exception("Equipment ID not found");
 }
        private APIResponse GetResponse(HttpWebResponse webResponse)
        {
            APIResponse response = new APIResponse();

            try
            {
                if (webResponse.GetResponseHeader("Set-Cookie").Length > 0)
                {
                    this.sessionCookie = webResponse.GetResponseHeader("Set-Cookie");
                }
                response.Code = webResponse.StatusCode;
                Stream responseStream = webResponse.GetResponseStream();
                StreamReader streamReader = new StreamReader(responseStream);
                response.ResponseData = streamReader.ReadToEnd();
                streamReader.Close();
                webResponse.Close();
            }
            catch (WebException exception)
            {
                response.Code = HttpStatusCode.BadRequest;
                response.ResponseData = exception.Message;
            }
            catch (Exception exception)
            {
                response.Code = HttpStatusCode.InternalServerError;
                response.ResponseData = exception.Message;
            }
            return response;
        }
 private APIResponse Execute(HttpWebRequest webRequest)
 {
     APIResponse response = new APIResponse();
     try
     {
         HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
         response = GetResponse(webResponse);
     }
     catch (WebException webException)
     {
         response = GetResponse((HttpWebResponse)webException.Response);
     }
     return response;
 }