internal XmlaException(XmlaResultCollection results) { if (results == null) { throw new ArgumentNullException("results"); } this.m_results = results; }
internal static Exception ExceptionOnError(XmlaResultCollection col) { XmlaException ex = new XmlaException(col); if (col.ContainsInvalidSessionError) { return(new XmlaStreamException(ex)); } return(ex); }
public static object ReadRowsetProperty(XmlReader reader, string elementName, string elementNamespace, Type type, bool throwOnInlineError, bool isArray, bool convertToLocalTime) { object result = null; if (isArray) { ArrayList arrayList = new ArrayList(); Type elementType = type.GetElementType(); while (reader.IsStartElement(elementName, elementNamespace)) { object obj = FormattersHelpers.ReadRowsetProperty(reader, elementName, elementNamespace, elementType, throwOnInlineError, false, convertToLocalTime); if (obj is XmlaError) { if (throwOnInlineError) { throw XmlaResultCollection.ExceptionOnError(new XmlaResult { Messages = { (XmlaError)obj } }); } while (reader.IsStartElement(elementName, elementNamespace)) { reader.Skip(); } result = obj; break; } else { arrayList.Add(obj); } } Array array = Array.CreateInstance(elementType, arrayList.Count); arrayList.CopyTo(array); result = array; } else { if (!reader.IsEmptyElement) { using (FormattersHelpers.GetWhitespaceHandlingRestorer(reader, WhitespaceHandling.All)) { reader.ReadStartElement(elementName, elementNamespace); if (reader.NodeType == XmlNodeType.Text) { result = FormattersHelpers.ConvertFromXml(reader.ReadString(), type, convertToLocalTime); } else { string text = FormattersHelpers.ReadWhiteSpace(reader); if (reader.NodeType == XmlNodeType.EndElement) { result = text; } else { bool flag = false; bool skipElements = false; if (type == typeof(object) || type == typeof(string)) { flag = true; skipElements = ((XmlaReader)reader).SkipElements; ((XmlaReader)reader).SkipElements = false; } try { if ((result = XmlaClient.CheckAndGetRowsetError(reader, throwOnInlineError)) == null) { FormattersHelpers.CheckException(reader); if (flag) { result = FormattersHelpers.ReadPropertyXml(reader); } } } finally { if (flag) { ((XmlaReader)reader).SkipElements = skipElements; } } } } reader.ReadEndElement(); return(result); } } reader.Skip(); result = FormattersHelpers.ConvertFromXml(string.Empty, type, convertToLocalTime); } return(result); }
internal XmlaException(XmlaResult result) { this.m_results = new XmlaResultCollection(); this.m_results.Add(result); }