Wednesday, 30 May 2012

Code to retrieve the schedule of the system user in CRM 2011

  Retrieve the schedule of the system user. MS CRM 2011

Add the required .dll  references from  crm sdk2011.

Include the following namespaces....

using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Sdk.Discovery;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Crm.Sdk.Messages;

The code starts...
 
using (OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri,
                                                    serverConfig.HomeRealmUri,
                                                    serverConfig.Credentials,
                                                    serverConfig.DeviceCredentials))
{
    _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());

    // Get the current user's information.
    WhoAmIRequest userRequest = new WhoAmIRequest();
    WhoAmIResponse userResponse = (WhoAmIResponse)_serviceProxy.Execute(userRequest);

    // Retrieve the schedule of the current user.
    QueryScheduleRequest scheduleRequest = new QueryScheduleRequest
    {
        ResourceId = userResponse.UserId,
        Start = DateTime.Now,
        End = DateTime.Today.AddDays(7),
        TimeCodes = new TimeCode[] { TimeCode.Available }
    };
    QueryScheduleResponse scheduleResponse = (QueryScheduleResponse)_serviceProxy.Execute(scheduleRequest);
}

Usefull MS Dynamics CRM 2011 Tools..