none
Issue with results from ASMX call to PSI from Silverlight RRS feed

  • Question

  • Hello,

     

    I am working on a Silverlight 4 app to access the PSI API via ASMX.  The code seems to work using the Service References (I have a ASPX page doing the same things so I have a good idea of the calls I want to make) but the result does not return the data.  I am currently trying to get a list of the projects on the server.

     

        private void ButtonIdeaApproveIdea_Click(object sender, RoutedEventArgs e)
        {
          SvcPSIProject.ProjectSoapClient projectClient = new SvcPSIProject.ProjectSoapClient();
          projectClient.ReadProjectListCompleted += new EventHandler<SvcPSIProject.ReadProjectListCompletedEventArgs>(projectClient_ReadProjectListCompleted);
          projectClient.ReadProjectListAsync();
    
        }
    
        void projectClient_ReadProjectListCompleted(object sender, SvcPSIProject.ReadProjectListCompletedEventArgs e)
        {
          XElement result = e.Result;
        }
    
    

     

    When I look at the contents of the XElement I see the <xs:schema id="ProjectDataSet"> content but not the data itself.   All I get back it the <xs:schema> contents:

    <xs:schema id="ProjectDataSet" targetNamespace="http://schemas.microsoft.com/office/project/server/webservices/ProjectDataSet/" attributeFormDefault="qualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mstns="http://schemas.microsoft.com/office/project/server/webservices/ProjectDataSet/" xmlns="http://schemas.microsoft.com/office/project/server/webservices/ProjectDataSet/" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
     <xs:element name="ProjectDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
    
    ...
    
      </xs:complexType>
     <xs:element>
    <xs:schema>
    
    

    I used Fiddler to monitor the HTTP itself and view the XML result of the SOAP call and it clearly shows a envelope of the following structure:

     

    <s:Envelope>
     <s:Body>
      <ReadProjectListResponse>
       <ReadProjectListResult>
        <s:schema>
         <diffgr:diffgram>
          <ProjectDataSet>
           <Project/>
           <Project/>
           <Project/>
          </ProjectDataSet>
         </diffgr:diffgram>
        </s:schema>
       </ReadProjectListResult>
      </ReadProjectListResponse>
     </s:Body>
    </s:Envelope>
    
    

     

    So where does the diffgr:diffgram element go when I get my result from the call??  This is the element with the data within it and I can see my project list names in the XML within Fiddler.

     

    The Response handler for the Async call to the ASMX seems to be only parsing the initial child element of the result.

     

    Has anyone had success getting this to work?  Any thoughts on how I can get my data?

     

    Thanks, Jeff

     

     

    Friday, January 21, 2011 4:51 PM