public ActiveFormAnswer CallActiveFormsMethod(string methodName, List<Tuple<String, String>> parameters) { ActiveFormAnswer answer = new ActiveFormAnswer(); var url = PrepareNonStandardUrl(methodName, parameters); GetResponseForUrl(url, answer); return answer; }
//private String GetResponse(String method) //{ // ActiveFormAnswer answer = new ActiveFormAnswer(); // String url = PrepareStandardUrl(method); // return GetResponseForUrl(url,answer); //} private void GetResponseForUrl(String url, ActiveFormAnswer answer) { String result = String.Empty; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; HttpWebResponse response = null; answer.AnswerCode = AnswerCodes.OK; try { response = (HttpWebResponse)request.GetResponse(); } catch(WebException ex) { String responseString = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd(); answer.ResponseXml = XElement.Parse(responseString); try { String errorCode = answer.ResponseXml.Attributes("code").First().Value;//Descendants(NameSpace + "error") if(Enum.GetNames(typeof(AnswerCodes)).Contains(errorCode)) { answer.AnswerCode = (AnswerCodes)Enum.Parse(typeof(AnswerCodes),errorCode); } else { answer.AnswerCode = AnswerCodes.OTHER_ERROR; } } catch(Exception) { answer.AnswerCode = AnswerCodes.OTHER_ERROR; } } if (answer.AnswerCode == AnswerCodes.OK) { Stream resStream = response.GetResponseStream(); using (TextReader tr = new StreamReader(resStream)) { String responseString = tr.ReadToEnd(); answer.ResponseXml = XElement.Parse(responseString); } } //return result; }
//public XElement GetEntryListXml(String formCode) //{ // ActiveFormAnswer answer = new ActiveFormAnswer(); // String url = PrepareStandardUrl("entry/list"); // url += "&apiFormCode=" + formCode; // XElement responseXml = XElement.Parse(GetResponseForUrl(url,answer)); // return responseXml; //} //public List<String> GetEntryCodes(String formCode) //{ // XElement entryList = GetEntryListXml(formCode); // List<String> result = (from node in entryList.Descendants() // select node.Attribute("code").Value).ToList(); // return result; //} //public XElement GetEntryDataXml(String formCode) //{ // ActiveFormAnswer answer = new ActiveFormAnswer(); // List<String> codes = GetEntryCodes(formCode); // String url = PrepareStandardUrl("entry/download"); // StringBuilder urlBuilder = new StringBuilder(url); // foreach (String code in codes) // { // urlBuilder.Append("&apiEntryCode=" + code); // } // XElement responseXml = XElement.Parse(GetResponseForUrl(urlBuilder.ToString(), answer)); // //List<XElement> result = (from node in responseXml.Descendants() // // select node).ToList(); // return responseXml; //} public ActiveFormAnswer CallActiveFormsMethod(string methodName) { ActiveFormAnswer answer = new ActiveFormAnswer(); var url = PrepareNonStandardUrl(methodName,null); GetResponseForUrl(url, answer); return answer; }