document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-227246\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"cm\">/***************************<\/span><\/div><div class=\"line\" id=\"LC2\"><span class=\"cm\"> * Author : Phani Raj<\/span><\/div><div class=\"line\" id=\"LC3\"><span class=\"cm\"> * Blog : http://blogs.msdn.com/PhaniRaj<\/span><\/div><div class=\"line\" id=\"LC4\"><span class=\"cm\"> * * ************************/<\/span><\/div><div class=\"line\" id=\"LC5\"><span class=\"k\">using<\/span> <span class=\"nn\">System<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC6\"><span class=\"k\">using<\/span> <span class=\"nn\">System.Net<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC7\"><span class=\"k\">using<\/span> <span class=\"nn\">System.Windows<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC8\"><span class=\"k\">using<\/span> <span class=\"nn\">System.Windows.Controls<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC9\"><span class=\"k\">using<\/span> <span class=\"nn\">System.Windows.Documents<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC10\"><span class=\"k\">using<\/span> <span class=\"nn\">System.Windows.Ink<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC11\"><span class=\"k\">using<\/span> <span class=\"nn\">System.Windows.Input<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC12\"><span class=\"k\">using<\/span> <span class=\"nn\">System.Windows.Media<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC13\"><span class=\"k\">using<\/span> <span class=\"nn\">System.Windows.Media.Animation<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC14\"><span class=\"k\">using<\/span> <span class=\"nn\">System.Windows.Shapes<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC15\"><span class=\"k\">using<\/span> <span class=\"nn\">System.Xml.Linq<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC16\"><span class=\"k\">namespace<\/span> <span class=\"nn\">System.Data.Services.Exceptions<\/span><\/div><div class=\"line\" id=\"LC17\"><span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;summary&gt;<\/span><\/div><div class=\"line\" id=\"LC19\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// Exception type which represents the DataServiceException thrown by the ADO.NET Data Service<\/span><\/div><div class=\"line\" id=\"LC20\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;/summary&gt;<\/span><\/div><div class=\"line\" id=\"LC21\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">public<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">DataServiceException<\/span> <span class=\"p\">:<\/span> <span class=\"n\">Exception<\/span><\/div><div class=\"line\" id=\"LC22\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC23\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">public<\/span> <span class=\"nf\">DataServiceException<\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span> <span class=\"n\">Message<\/span><span class=\"p\">,<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">StackTrace<\/span><span class=\"p\">,<\/span> <span class=\"n\">Exception<\/span> <span class=\"n\">InternalException<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC24\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">:<\/span> <span class=\"k\">base<\/span><span class=\"p\">(<\/span><span class=\"n\">Message<\/span><span class=\"p\">,<\/span> <span class=\"n\">InternalException<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC25\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC26\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">_stackTrace<\/span> <span class=\"p\">=<\/span> <span class=\"n\">StackTrace<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC27\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC28\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">private<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">_stackTrace<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC29\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">public<\/span> <span class=\"k\">override<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">StackTrace<\/span><\/div><div class=\"line\" id=\"LC30\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC31\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">get<\/span><\/div><div class=\"line\" id=\"LC32\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC33\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"n\">_stackTrace<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC34\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC35\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC36\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC37\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;summary&gt;<\/span><\/div><div class=\"line\" id=\"LC38\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// Helper class to de-serialize DataServiceExceptions thrown by an ADO.NET Data Service<\/span><\/div><div class=\"line\" id=\"LC39\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;/summary&gt;<\/span><\/div><div class=\"line\" id=\"LC40\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">class<\/span> <span class=\"nc\">DataServiceExceptionUtil<\/span><\/div><div class=\"line\" id=\"LC41\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC42\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;summary&gt;<\/span><\/div><div class=\"line\" id=\"LC43\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// Pass in the Exception recieved from an Execute / SaveChanges call <\/span><\/div><div class=\"line\" id=\"LC44\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// to rethrow the actual DataServiceException thrown by the ADO.NET Data Service<\/span><\/div><div class=\"line\" id=\"LC45\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;/summary&gt;<\/span><\/div><div class=\"line\" id=\"LC46\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;param name=&quot;dsRexception&quot;&gt;The Exception thrown by the client library <\/span><\/div><div class=\"line\" id=\"LC47\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// in response to an Execute/SaveChanges call&lt;/param&gt;<\/span><\/div><div class=\"line\" id=\"LC48\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Throw<\/span><span class=\"p\">(<\/span><span class=\"n\">Exception<\/span> <span class=\"n\">dsRexception<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC49\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC50\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">Exception<\/span> <span class=\"n\">baseException<\/span> <span class=\"p\">=<\/span> <span class=\"n\">dsRexception<\/span><span class=\"p\">.<\/span><span class=\"n\">GetBaseException<\/span><span class=\"p\">();<\/span><\/div><div class=\"line\" id=\"LC51\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">XDocument<\/span> <span class=\"n\">xDoc<\/span> <span class=\"p\">=<\/span> <span class=\"n\">XDocument<\/span><span class=\"p\">.<\/span><span class=\"n\">Parse<\/span><span class=\"p\">(<\/span><span class=\"n\">baseException<\/span><span class=\"p\">.<\/span><span class=\"n\">Message<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC52\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">xDoc<\/span> <span class=\"p\">!=<\/span> <span class=\"k\">null<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC53\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC54\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">throw<\/span> <span class=\"nf\">ParseException<\/span><span class=\"p\">(<\/span><span class=\"n\">xDoc<\/span><span class=\"p\">.<\/span><span class=\"n\">Root<\/span><span class=\"p\">,<\/span> <span class=\"k\">true<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC55\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC56\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC57\">&nbsp;<\/div><div class=\"line\" id=\"LC58\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;summary&gt;<\/span><\/div><div class=\"line\" id=\"LC59\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// Parses the Exception object to determine if it contains a DataServiceException <\/span><\/div><div class=\"line\" id=\"LC60\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// and de-serializes the Exception message into a DataServiceException.<\/span><\/div><div class=\"line\" id=\"LC61\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;/summary&gt;<\/span><\/div><div class=\"line\" id=\"LC62\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;param name=&quot;dsRexception&quot;&gt;The Exception thrown by the client library <\/span><\/div><div class=\"line\" id=\"LC63\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// in response to an Execute/SaveChanges call &lt;/param&gt;<\/span><\/div><div class=\"line\" id=\"LC64\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;param name=&quot;dataServiceException&quot;&gt;The DataServiceException thrown by the ADO.NET Data Service&lt;/param&gt;<\/span><\/div><div class=\"line\" id=\"LC65\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\">/// &lt;returns&gt;true if we are able to parse the response into a DataServiceException,false if not&lt;/returns&gt;<\/span><\/div><div class=\"line\" id=\"LC66\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">public<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">bool<\/span> <span class=\"nf\">TryParse<\/span><span class=\"p\">(<\/span><span class=\"n\">Exception<\/span> <span class=\"n\">dsRexception<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC67\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">out<\/span> <span class=\"n\">Exception<\/span> <span class=\"n\">dataServiceException<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC68\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC69\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kt\">bool<\/span> <span class=\"n\">parseSucceeded<\/span> <span class=\"p\">=<\/span> <span class=\"k\">false<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC70\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">try<\/span><\/div><div class=\"line\" id=\"LC71\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC72\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">Exception<\/span> <span class=\"n\">baseException<\/span> <span class=\"p\">=<\/span> <span class=\"n\">dsRexception<\/span><span class=\"p\">.<\/span><span class=\"n\">GetBaseException<\/span><span class=\"p\">();<\/span><\/div><div class=\"line\" id=\"LC73\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">XDocument<\/span> <span class=\"n\">xDoc<\/span> <span class=\"p\">=<\/span> <span class=\"n\">XDocument<\/span><span class=\"p\">.<\/span><span class=\"n\">Parse<\/span><span class=\"p\">(<\/span><span class=\"n\">baseException<\/span><span class=\"p\">.<\/span><span class=\"n\">Message<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC74\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">dataServiceException<\/span> <span class=\"p\">=<\/span> <span class=\"n\">ParseException<\/span><span class=\"p\">(<\/span><span class=\"n\">xDoc<\/span><span class=\"p\">.<\/span><span class=\"n\">Root<\/span><span class=\"p\">,<\/span> <span class=\"k\">false<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC75\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">parseSucceeded<\/span> <span class=\"p\">=<\/span> <span class=\"n\">dataServiceException<\/span> <span class=\"p\">!=<\/span> <span class=\"k\">null<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC76\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC77\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">catch<\/span><\/div><div class=\"line\" id=\"LC78\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC79\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">dataServiceException<\/span> <span class=\"p\">=<\/span> <span class=\"n\">dsRexception<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC80\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">parseSucceeded<\/span> <span class=\"p\">=<\/span> <span class=\"k\">false<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC81\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC82\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"n\">parseSucceeded<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC83\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC84\">&nbsp;<\/div><div class=\"line\" id=\"LC85\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"cp\">#region Variables<\/span><\/div><div class=\"line\" id=\"LC86\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">static<\/span> <span class=\"k\">readonly<\/span> <span class=\"kt\">string<\/span> <span class=\"n\">DataServicesMetadataNamespace<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&quot;http://schemas.microsoft.com/ado/2007/08/dataservices/metadata&quot;<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC87\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">static<\/span> <span class=\"n\">XName<\/span> <span class=\"n\">xnCode<\/span> <span class=\"p\">=<\/span> <span class=\"n\">XName<\/span><span class=\"p\">.<\/span><span class=\"n\">Get<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;code&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">DataServicesMetadataNamespace<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC88\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">static<\/span> <span class=\"n\">XName<\/span> <span class=\"n\">xnType<\/span> <span class=\"p\">=<\/span> <span class=\"n\">XName<\/span><span class=\"p\">.<\/span><span class=\"n\">Get<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;type&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">DataServicesMetadataNamespace<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC89\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">static<\/span> <span class=\"n\">XName<\/span> <span class=\"n\">xnMessage<\/span> <span class=\"p\">=<\/span> <span class=\"n\">XName<\/span><span class=\"p\">.<\/span><span class=\"n\">Get<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;message&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">DataServicesMetadataNamespace<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC90\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">static<\/span> <span class=\"n\">XName<\/span> <span class=\"n\">xnStackTrace<\/span> <span class=\"p\">=<\/span> <span class=\"n\">XName<\/span><span class=\"p\">.<\/span><span class=\"n\">Get<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;stacktrace&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">DataServicesMetadataNamespace<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC91\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">static<\/span> <span class=\"n\">XName<\/span> <span class=\"n\">xnInternalException<\/span> <span class=\"p\">=<\/span> <span class=\"n\">XName<\/span><span class=\"p\">.<\/span><span class=\"n\">Get<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;internalexception&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">DataServicesMetadataNamespace<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC92\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">static<\/span> <span class=\"n\">XName<\/span> <span class=\"n\">xnInnerError<\/span> <span class=\"p\">=<\/span> <span class=\"n\">XName<\/span><span class=\"p\">.<\/span><span class=\"n\">Get<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;innererror&quot;<\/span><span class=\"p\">,<\/span> <span class=\"n\">DataServicesMetadataNamespace<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC93\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"cp\">#endregion<\/span><\/div><div class=\"line\" id=\"LC94\">&nbsp;<\/div><div class=\"line\" id=\"LC95\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"n\">DataServiceException<\/span> <span class=\"nf\">ParseException<\/span><span class=\"p\">(<\/span><span class=\"n\">XElement<\/span> <span class=\"n\">errorElement<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC96\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kt\">bool<\/span> <span class=\"n\">throwOnFailure<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC97\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC98\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">switch<\/span> <span class=\"p\">(<\/span><span class=\"n\">errorElement<\/span><span class=\"p\">.<\/span><span class=\"n\">Name<\/span><span class=\"p\">.<\/span><span class=\"n\">LocalName<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC99\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC100\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">case<\/span> <span class=\"s\">&quot;error&quot;<\/span><span class=\"p\">:<\/span><\/div><div class=\"line\" id=\"LC101\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">case<\/span> <span class=\"s\">&quot;innererror&quot;<\/span><span class=\"p\">:<\/span><\/div><div class=\"line\" id=\"LC102\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">DataServiceException<\/span> <span class=\"n\">internalException<\/span> <span class=\"p\">=<\/span><\/div><div class=\"line\" id=\"LC103\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">errorElement<\/span><span class=\"p\">.<\/span><span class=\"n\">Element<\/span><span class=\"p\">(<\/span><span class=\"n\">xnInnerError<\/span><span class=\"p\">)<\/span> <span class=\"p\">!=<\/span> <span class=\"k\">null<\/span> <span class=\"p\">?<\/span><\/div><div class=\"line\" id=\"LC104\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">ParseException<\/span><span class=\"p\">(<\/span><span class=\"n\">errorElement<\/span><span class=\"p\">.<\/span><span class=\"n\">Element<\/span><span class=\"p\">(<\/span><span class=\"n\">xnInnerError<\/span><span class=\"p\">),<\/span> <span class=\"n\">throwOnFailure<\/span><span class=\"p\">)<\/span> <span class=\"p\">:<\/span> <span class=\"k\">null<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC105\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kt\">string<\/span> <span class=\"n\">message<\/span> <span class=\"p\">=<\/span> <span class=\"n\">errorElement<\/span><span class=\"p\">.<\/span><span class=\"n\">Element<\/span><span class=\"p\">(<\/span><span class=\"n\">xnMessage<\/span><span class=\"p\">)<\/span> <span class=\"p\">!=<\/span> <span class=\"k\">null<\/span> <span class=\"p\">?<\/span><\/div><div class=\"line\" id=\"LC106\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">errorElement<\/span><span class=\"p\">.<\/span><span class=\"n\">Element<\/span><span class=\"p\">(<\/span><span class=\"n\">xnMessage<\/span><span class=\"p\">).<\/span><span class=\"n\">Value<\/span><span class=\"p\">.<\/span><span class=\"n\">ToString<\/span><span class=\"p\">()<\/span> <span class=\"p\">:<\/span> <span class=\"n\">String<\/span><span class=\"p\">.<\/span><span class=\"n\">Empty<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC107\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kt\">string<\/span> <span class=\"n\">stackTrace<\/span> <span class=\"p\">=<\/span> <span class=\"n\">errorElement<\/span><span class=\"p\">.<\/span><span class=\"n\">Element<\/span><span class=\"p\">(<\/span><span class=\"n\">xnStackTrace<\/span><span class=\"p\">)<\/span> <span class=\"p\">!=<\/span> <span class=\"k\">null<\/span> <span class=\"p\">?<\/span><\/div><div class=\"line\" id=\"LC108\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">errorElement<\/span><span class=\"p\">.<\/span><span class=\"n\">Element<\/span><span class=\"p\">(<\/span><span class=\"n\">xnStackTrace<\/span><span class=\"p\">).<\/span><span class=\"n\">Value<\/span><span class=\"p\">.<\/span><span class=\"n\">ToString<\/span><span class=\"p\">()<\/span> <span class=\"p\">:<\/span> <span class=\"n\">String<\/span><span class=\"p\">.<\/span><span class=\"n\">Empty<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC109\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">DataServiceException<\/span><span class=\"p\">(<\/span><\/div><div class=\"line\" id=\"LC110\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">message<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC111\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">stackTrace<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC112\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">internalException<\/span><\/div><div class=\"line\" id=\"LC113\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC114\">&nbsp;<\/div><div class=\"line\" id=\"LC115\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">default<\/span><span class=\"p\">:<\/span><\/div><div class=\"line\" id=\"LC116\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">throwOnFailure<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC117\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC118\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">InvalidOperationException<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;Could not parse Exception&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC119\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC120\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">else<\/span><\/div><div class=\"line\" id=\"LC121\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC122\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"k\">null<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC123\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC124\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC125\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC126\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC127\"><span class=\"p\">}<\/span><\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/227246/75403dfa36a9032fa03a2a3e6a0d814c3de4cd5c/DataServiceExceptionUtil.cs\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/227246#file_data_service_exception_util.cs\" style=\"float:right;margin-right:10px;color:#666\">DataServiceExceptionUtil.cs<\/a>\n          <a href=\"http://gist.github.com/227246\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
