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;
}