示例#1
0
 public static MeetingResponse EditResponse(ResponseType responseType, CalendarItemBase calendarItemBase)
 {
     if (calendarItemBase == null)
     {
         throw new ArgumentNullException("calendarItemBase");
     }
     MeetingUtilities.ThrowIfMeetingResponseInvalid(calendarItemBase);
     return(MeetingUtilities.EditResponseInternal(responseType, calendarItemBase));
 }
示例#2
0
 public static void NonEditResponse(ResponseType responseType, CalendarItemBase calendarItemBase, bool sendResponse, MeetingRequest meetingRequest)
 {
     if (calendarItemBase == null)
     {
         throw new ArgumentNullException("calendarItemBase");
     }
     MeetingUtilities.ThrowIfMeetingResponseInvalid(calendarItemBase);
     MeetingUtilities.NonEditResponseInternal(responseType, calendarItemBase, sendResponse);
     if (meetingRequest != null)
     {
         MeetingUtilities.DeleteMeetingRequestAfterResponse(meetingRequest);
     }
 }
示例#3
0
        public static MeetingResponse EditResponse(ResponseType responseType, MeetingRequest meetingRequest)
        {
            if (meetingRequest == null)
            {
                throw new ArgumentNullException("meetingRequest");
            }
            MeetingUtilities.ThrowIfMeetingResponseInvalid(meetingRequest);
            MeetingResponse result;

            using (CalendarItemBase calendarItemBase = MeetingUtilities.UpdateCalendarItem(meetingRequest))
            {
                result = MeetingUtilities.EditResponseInternal(responseType, calendarItemBase);
            }
            return(result);
        }
示例#4
0
        public static CalendarItemBase UpdateCalendarItem(MeetingRequest meetingRequest)
        {
            if (meetingRequest == null)
            {
                throw new ArgumentNullException("meetingRequest");
            }
            MeetingUtilities.ThrowIfMeetingResponseInvalid(meetingRequest);
            CalendarItemBase calendarItemBase = null;

            try
            {
                try
                {
                    ExTraceGlobals.CalendarTracer.TraceDebug <string>(0L, "Retreiving calendar item associated with meeting request. Value = '{0}'", (meetingRequest.Id != null && meetingRequest.Id.ObjectId != null) ? meetingRequest.Id.ObjectId.ToBase64String() : "null");
                    if (meetingRequest.IsOutOfDate())
                    {
                        throw new OwaOperationNotSupportedException(LocalizedStrings.GetNonEncoded(-1085726012));
                    }
                    calendarItemBase = meetingRequest.UpdateCalendarItem(true);
                    if (calendarItemBase == null)
                    {
                        throw new OwaInvalidOperationException("meetingRequest.UpdateCalendarItem returns null.");
                    }
                    calendarItemBase.Load();
                }
                catch (CorrelationFailedException ex)
                {
                    ExTraceGlobals.CalendarDataTracer.TraceDebug <string>(0L, "Calendar item associated with meeting request could not be found.  Exception: {0}", ex.Message);
                    throw;
                }
                catch (StoragePermanentException ex2)
                {
                    ExTraceGlobals.CalendarDataTracer.TraceDebug <string>(0L, "Calendar item associated with meeting request could not be found.  Exception: {0}", ex2.Message);
                    throw;
                }
                catch (InvalidOperationException ex3)
                {
                    if (ex3.Message == ServerStrings.ExOrganizerCannotCallUpdateCalendarItem)
                    {
                        throw new OwaOperationNotSupportedException(LocalizedStrings.GetNonEncoded(679811893));
                    }
                    throw;
                }
                try
                {
                    MeetingUtilities.SaveItem(meetingRequest, new PropertyDefinition[]
                    {
                        MeetingMessageSchema.CalendarProcessed,
                        StoreObjectSchema.ParentItemId
                    });
                }
                catch (OwaSaveConflictException ex4)
                {
                    ExTraceGlobals.CalendarDataTracer.TraceDebug <string>(0L, "Calendar item associated with meeting request could not be saved.  Exception: {0}", ex4.Message);
                    throw;
                }
            }
            catch
            {
                if (calendarItemBase != null)
                {
                    calendarItemBase.Dispose();
                    calendarItemBase = null;
                }
                throw;
            }
            if (Globals.ArePerfCountersEnabled)
            {
                OwaSingleCounters.ItemsCreated.Increment();
            }
            return(calendarItemBase);
        }