• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

Reply to: Interview help

Collapse

You are not logged in or you do not have permission to access this page. This could be due to one of several reasons:

  • You are not logged in. If you are already registered, fill in the form below to log in, or follow the "Sign Up" link to register a new account.
  • You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
  • If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.

Previously on "Interview help"

Collapse

  • NickFitz
    replied
    I'd google for this:

    Code:
    using System;
    using System.Net;
    using System.IO;
    using System.Text;
    using System.Xml;
    
    namespace ExchangeSDK.Snippets.CSharp
    {
    class SearchingFoldersWebDAVUnread
    {
      [STAThread]
      static void Main(string[] args)
      {
       // Variables.
       System.Net.HttpWebRequest Request;
       System.Net.WebResponse Response;
       System.Net.CredentialCache MyCredentialCache;
       string strInboxURI = "http://Servername/exchange/mailbox/inbox";
       string strUserName = "username";
       string strPassword = "password";
       string strDomain = "domain";
       string strQuery ="";
       byte[] bytes = null;
       System.IO.Stream RequestStream = null;
       System.IO.Stream ResponseStream = null;
       XmlDocument ResponseXmlDoc = null;
       XmlNodeList DisplayNameNodes = null;
    
       try
       {
        // Build the SQL query.
        strQuery = "<?xml version=\"1.0\"?><D:searchrequest xmlns:D = \"DAV:\" 
    >"
         + "<D:sql>SELECT \"DAV:displayname\" FROM \"" + strInboxURI + "\""
         + "WHERE \"DAV:ishidden\" = false AND \"DAV:isfolder\" = false"
         + " AND \"urn:schemas:httpmail:read\" = 
    false</D:sql></D:searchrequest>";
    
        // Create a new CredentialCache object and fill it with the network
        // credentials required to access the server.
        MyCredentialCache = new System.Net.CredentialCache();
        MyCredentialCache.Add( new System.Uri(strInboxURI),
         "NTLM",
         new System.Net.NetworkCredential(strUserName, strPassword, strDomain)
         );
    
        // Create the HttpWebRequest object.
        Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strInboxURI);
    
        // Add the network credentials to the request.
        Request.Credentials = MyCredentialCache;
    
        // Specify the method.
        Request.Method = "SEARCH";
    
        // Encode the body using UTF-8.
        bytes = Encoding.UTF8.GetBytes((string)strQuery);
    
        // Set the content header length.  This must be
        // done before writing data to the request stream.
        Request.ContentLength = bytes.Length;
    
        // Get a reference to the request stream.
        RequestStream = Request.GetRequestStream();
    
        // Write the SQL query to the request stream.
        RequestStream.Write(bytes, 0, bytes.Length);
    
        // Close the Stream object to release the connection
        // for further use.
        RequestStream.Close();
    
        // Set the content type header.
        Request.ContentType = "text/xml";
    
        // Send the SEARCH method request and get the
        // response from the server.
        Response = (HttpWebResponse)Request.GetResponse();
    
        // Get the XML response stream.
        ResponseStream = Response.GetResponseStream();
    
        // Create the XmlDocument object from the XML response stream.
        ResponseXmlDoc = new XmlDocument();
        ResponseXmlDoc.Load(ResponseStream);
    
        // Build a list of the DAV:href XML nodes, corresponding to the folders
        // in the mailbox.  The DAV: namespace is typically assgigned the a:
        // prefix in the XML response body.
        DisplayNameNodes = ResponseXmlDoc.GetElementsByTagName("a:displayname");
        Console.WriteLine("Number of Unread Messages:" + 
    DisplayNameNodes.Count);
    
    
        // Clean up.
        ResponseStream.Close();
        Response.Close();
    
       }
       catch(Exception ex)
       {
        // Catch any exceptions. Any error codes from the SEARCH
        // method request on the server will be caught here, also.
        Console.WriteLine(ex.Message);
       }
      }
    }
    }
    It uses WebDAV, apparently

    Leave a comment:


  • scooterscot
    replied
    It might be one of those questions where they get free consultancy and you don't get a job...

    Leave a comment:


  • Zippy
    replied
    Originally posted by HairyArsedBloke View Post
    FFS, what sort of question is that?

    My response would be, "I'd google it and do it the same way that anyone else had found out and posted on the net".
    It might be one of those deliberately horrible questions you get sometimes where you have to waffle about different versions of software. OK do you mean SQL server 7, 2000, 2005? And still get it wrong

    Leave a comment:


  • HairyArsedBloke
    replied
    Originally posted by suityou01 View Post
    Just found out, one of the interview questions will be "How would you trawl exchange server email boxes from C#"
    FFS, what sort of question is that?

    My response would be, "I'd google it and do it the same way that anyone else had found out and posted on the net".

    Leave a comment:


  • Zippy
    replied
    Don't think SQL Server uses exchange but they can talk to each other.

    SY01 will just have to ask loads of questions.

    Leave a comment:


  • Grinder
    replied
    No idea, but these days doesn't Exchange use SQL Server in some way?

    Leave a comment:


  • Zippy
    replied
    Not done this myself but - any good to you? Depends on versions of .NET framework/Exchange of course

    http://social.technet.microsoft.com/...a-81eb91fa978f

    Leave a comment:


  • suityou01
    started a topic Interview help

    Interview help

    Just found out, one of the interview questions will be "How would you trawl exchange server email boxes from C#"

    Firstly I'm thinking windows service. I wrote something similar donkeys ago (in C++ I think)

    Back in those days we used good ole CDO (Collaboration Data Objects) to do the bizzo. Times they have a changed.

    What do the panel now use? Secure web services? Still CDO through interop?

    Be quick I have to leave soon!!

Working...
X