As I know based on this:
msdn.microsoft.com/.../gg334289.aspx
and
This request is to validate and book appointment if valid.
_appointmentId = booked.ValidationResult.ActivityId;
// Verify that the appointment has been scheduled.
if (_appointmentId != Guid.Empty)
I would suggest you to create your own pop up.
The logic is
you add one more Else after
if (_appointmentId != Guid.Empty)
It does mean the user is not available, and since you are building windows app, create your own window, and you can force it by skipping this validation, instead, using your own pop up, and if the user says yes, you just create appointment using common create request.
So, if the BookRquest is properly used for validation and booking purpose, see this as well:
Description = "Test Appointment created using the BookRequest Message.",
Then to force, you just create an Appointment using standard Create message:
msdn.microsoft.com/.../gg334604.aspx
or
public void CreateRequiredRecords()
{
// Create a contact
Contact newContact = new Contact
{
FirstName = "Lisa",
LastName = "Andrews",
EMailAddress1 = "lisa@contoso.com"
};
_contactId = _serviceProxy.Create(newContact);
Console.WriteLine("Created contact: {0}.", newContact.FirstName + " " + newContact.LastName);
// Create ab activity party
ActivityParty requiredAttendee = new ActivityParty
{
PartyId = new EntityReference(Contact.EntityLogicalName, _contactId)
};
// Create an appointment
Appointment newAppointment = new Appointment
{
Subject = "Test Appointment",
Description = "Test Appointment",
ScheduledStart = DateTime.Now.AddHours(1),
ScheduledEnd = DateTime.Now.AddHours(2),
Location = "Office",
RequiredAttendees = new ActivityParty[] {requiredAttendee}
};
_appointmentId = _serviceProxy.Create(newAppointment);
Console.WriteLine("Created {0}.", newAppointment.Subject);
}
Thank you.
Source:http://community.dynamics.com/crm/f/117/t/146823