Quantcast
Channel: Exchange Server Development forum
Viewing all articles
Browse latest Browse all 7132

Cannot get appointment for Calendar item which has changed from Tentative to Accept (EWS 2007)

$
0
0


Setup a room mailbox to automatically reply to meeting request

Setup a delegate and have it accept tentatively until that delegate responses  

Then book a meeting with that room.

When I query EWS and get the itemEvents for the room I get an event for the appointment which shows the rooms Tentative response

However after a delegate accepts the response I do not get an itemEvent which turns into an appointment indicating the room's status has changed from Tentative to Accept

Code:

I have my pull subscription set up and feed it into my GetEvents wrapper

public Dictionary<PullSubscription, IEnumerable<ItemEvent>> GetEvents(PullSubscription subscription) {
            Dictionary<PullSubscription, IEnumerable<ItemEvent>> mailboxEvents = null;

            GetEventsResults eventsResults = subscription.GetEvents();

            if (eventsResults == null || eventsResults.ItemEvents.Count() == 0) {
                return mailboxEvents;
            }

            mailboxEvents = new Dictionary<PullSubscription, IEnumerable<ItemEvent>>();
            mailboxEvents.Add(subscription, eventsResults.ItemEvents);
            return mailboxEvents;
        }

I then take the list of ItemEvents and turn them into appointments to further process them

            Appointment appointment;
            try {
                appointment= Appointment.Bind(exchangeService, itemEvent.ItemId.ToString());
                ExtendedPropertyDefinition prop = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Appointment, 0x8238, MapiPropertyType.String);
                PropertySet psPropset = new PropertySet(BasePropertySet.FirstClassProperties) { AppointmentSchema.Subject, AppointmentSchema.Body, prop }; //, AppointmentSchema.ModifiedOccurrences, AppointmentSchema.DeletedOccurrences, AppointmentSchema.Location, AppointmentSchema.Sensitivity
                appointment.Load(psPropset);
            } catch (Exception ex) {

                eventLogger.WriteToEventLog(EventLogEntryType.Warning, 108, "ExchangeDataAccess error GetAppointment(ItemEvent itemEvent): " + ex.Message);
                appointment = null; ;
            }
            return appointment;

*NOTE*

This same call flow works fine for 2013 EWS.  I receive an itemEvent for that room mailbox which translates into an appointment that lets me know the room has now Accepted the request

Its important to note that this same call flow works fine on 2013.  When a room's delegate allows the room to be scheduled it receives an event that the room has now Accepted.  


Its important to note that this same call flow works fine on 2013.  When a room's delegate allows the room to be scheduled it receives an event that the room has now Accepted.  


Its important to note that this same call flow works fine on 2013.  When a room's delegate allows the room to be scheduled it receives an event that the room has now Accepted.  



Viewing all articles
Browse latest Browse all 7132

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>