/// <summary> /// <c>GetAnswers</c> overlays any answer collections passed into it, into a single XML answer collection. /// It has two primary uses: it can be used to combine multiple answer collections into a single /// answer collection; and/or it can be used to "resolve" or standardize an answer collection /// submitted from a browser interview (which may be specially encoded) into standard XML answers. /// </summary> /// <param name="answers">A sequence of answer collections. Each member of this sequence /// must be either an (encoded) interview answer collection or a regular XML answer collection. /// Each member will be successively overlaid (overlapped) on top of the prior members to /// form one consolidated answer collection.</param> /// <param name="logRef">A string to display in logs related to this request.</param> /// <returns></returns> public string GetAnswers(IEnumerable<TextReader> answers, string logRef) { string logStr = logRef == null ? string.Empty : logRef; if (answers == null) throw new ArgumentNullException("answers", string.Format(@"WebService.Services.GetAnswers: the ""answers"" parameter passed in was null, logRef: {0}", logStr)); BinaryObject combinedAnswers; using (Proxy client = new Proxy(_endPointName)) { var answerObjects = (from answer in answers select Util.GetBinaryObjectFromTextReader(answer)).ToArray(); combinedAnswers = client.GetAnswers(answerObjects); SafeCloseClient(client, logRef); } return Util.ExtractString(combinedAnswers); }