Thursday, 11 October 2012

Code to book an appointment in crm 2011


In this article , I am going to explain how to Book and Validate appointment

For Better Understanding I divided this article in four parts
(i)      Get the current user information
(ii)     Create the ActivityParty instance
(iii)    Create the appointment instance
(iv)    Book request message

Namespace need to include 
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;

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


Create the ActivityParty instance
ActivityParty party = new ActivityParty
{
    PartyId = new EntityReference(SystemUser.EntityLogicalName, userResponse.UserId)
};


Create the appointment instance
Appointment appointment = new Appointment
{
    Subject = " Appointment 1",
    Description = "Appointment to Book.",
    ScheduledStart = DateTime.Now.AddHours(1),
    ScheduledEnd = DateTime.Now.AddHours(2),
    Location = "Office",
    RequiredAttendees = new ActivityParty[] { party },
    Organizer = new ActivityParty[] { party }
};


Book Request message
BookRequest book = new BookRequest
{
    Target = appointment
};
BookResponse booked = (BookResponse)_serviceProxy.Execute(book);
Guid _appointmentId = booked.ValidationResult.ActivityId;


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


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

    // Create the ActivityParty instance.
    ActivityParty party = new ActivityParty
    {
        PartyId = new EntityReference(SystemUser.EntityLogicalName, userResponse.UserId)
    };


    // Create the appointment instance.
    Appointment appointment = new Appointment
    {
        Subject = " Appointment 1",
        Description = "Appointment to Book.",
        ScheduledStart = DateTime.Now.AddHours(1),
        ScheduledEnd = DateTime.Now.AddHours(2),
        Location = "Office",
        RequiredAttendees = new ActivityParty[] { party },
        Organizer = new ActivityParty[] { party }
    };



    // Use the Book request message.
    BookRequest book = new BookRequest
    {
        Target = appointment
    };
    BookResponse booked = (BookResponse)_serviceProxy.Execute(book);
    Guid _appointmentId = booked.ValidationResult.ActivityId;

}

No comments:

Post a Comment

Note: only a member of this blog may post a comment.