Esempio n. 1
0
        public static AggregateOperationResult DeleteOutlookSearchFolder(DeleteItemFlags deleteItemFlags, MailboxSession session, StoreId outlookSearchFolderId)
        {
            EnumValidator.ThrowIfInvalid <DeleteItemFlags>(deleteItemFlags);
            VersionedId versionedId;

            using (OutlookSearchFolder outlookSearchFolder = OutlookSearchFolder.Bind(session, outlookSearchFolderId))
            {
                versionedId = OutlookSearchFolder.FindAssociatedMessageId((MailboxSession)outlookSearchFolder.Session, (Guid)outlookSearchFolder[InternalSchema.OutlookSearchFolderClsId]);
            }
            StoreId[] ids;
            if (versionedId != null)
            {
                ids = new StoreId[]
                {
                    outlookSearchFolderId,
                    versionedId
                };
            }
            else
            {
                ids = new StoreId[]
                {
                    outlookSearchFolderId
                };
            }
            return(session.Delete(deleteItemFlags, ids));
        }
 public override void Delete(StoreId id, DeleteItemFlags flags)
 {
     using (ICalendarGroup calendarGroup = this.Bind(id))
     {
         CalendarGroupType groupType = calendarGroup.GroupType;
         if (groupType == CalendarGroupType.MyCalendars || groupType == CalendarGroupType.OtherCalendars)
         {
             throw new CannotDeleteSpecialCalendarGroupException(calendarGroup.Id, calendarGroup.GroupClassId, calendarGroup.GroupName);
         }
         ReadOnlyCollection <CalendarGroupEntryInfo> childCalendars = calendarGroup.GetChildCalendars();
         List <StoreId> list = new List <StoreId>();
         foreach (CalendarGroupEntryInfo calendarGroupEntryInfo in childCalendars)
         {
             if (calendarGroupEntryInfo is LocalCalendarGroupEntryInfo)
             {
                 throw new CalendarGroupIsNotEmptyException(calendarGroup.Id, calendarGroup.GroupClassId, calendarGroup.GroupName, childCalendars.Count);
             }
             list.Add(calendarGroupEntryInfo.Id);
         }
         foreach (StoreId id2 in list)
         {
             base.Delete(id2, flags);
         }
     }
     base.Delete(id, flags);
 }
        public override void Delete(StoreId id, DeleteItemFlags flags)
        {
            base.Delete(id, flags);
            StoreObjectId storeObjectId = StoreId.GetStoreObjectId(id);

            if (storeObjectId is OccurrenceStoreObjectId)
            {
                this.TryLogCalendarEventActivity(ActivityId.UpdateCalendarEvent, storeObjectId);
            }
        }
Esempio n. 4
0
 protected virtual bool CleanUpDeclinedEvent(StoreId id)
 {
     if (this.Parameters.Response == ResponseType.Declined)
     {
         DeleteItemFlags deleteItemFlags = DeleteItemFlags.MoveToDeletedItems;
         deleteItemFlags |= (this.Parameters.SendResponse ? DeleteItemFlags.DeclineCalendarItemWithResponse : DeleteItemFlags.DeclineCalendarItemWithoutResponse);
         this.Scope.EventDataProvider.Delete(id, deleteItemFlags);
         return(true);
     }
     return(false);
 }
Esempio n. 5
0
 public override void Delete(StoreId id, DeleteItemFlags flags)
 {
     try
     {
         base.Delete(id, flags);
     }
     catch (CannotMoveDefaultFolderException innerException)
     {
         throw new CannotDeleteDefaultCalendarException(innerException);
     }
 }
Esempio n. 6
0
        public static void DeleteCalendarItem(StoreObjectId calendarItemId, DeleteItemFlags deleteFlag)
        {
            if (calendarItemId == null)
            {
                throw new ArgumentNullException("calendarItemId");
            }
            UserContext userContext = UserContextManager.GetUserContext();

            using (CalendarItemBase calendarItemBase = (CalendarItemBase)Item.Bind(userContext.MailboxSession, calendarItemId, ItemBindOption.LoadRequiredPropertiesOnly))
            {
                calendarItemBase.DeleteMeeting(deleteFlag);
            }
        }
 // Token: 0x06001565 RID: 5477 RVA: 0x0007DE00 File Offset: 0x0007C000
 protected void DeleteMessage(MessageItem message, DeleteItemFlags deletedItemFlag = DeleteItemFlags.HardDelete)
 {
     message.Load();
     if (message.Id != null)
     {
         AggregateOperationResult aggregateOperationResult = base.MailboxSession.Delete(deletedItemFlag, new StoreId[]
         {
             message.Id.ObjectId
         });
         if (OperationResult.Succeeded != aggregateOperationResult.OperationResult)
         {
             AirSyncDiagnostics.TraceDebug <MessageItem>(ExTraceGlobals.RequestsTracer, this, "Failed to delete {0}", message);
         }
     }
 }
Esempio n. 8
0
        private static void ProcessCalendarItemAfterResponse(ResponseType responseType, CalendarItemBase calendarItemBase, bool intendToSendResponse)
        {
            UserContext userContext = UserContextManager.GetUserContext();

            if (responseType != ResponseType.Decline)
            {
                if (Utilities.IsItemInDefaultFolder(calendarItemBase, DefaultFolderType.DeletedItems))
                {
                    StoreObjectId[] ids = new StoreObjectId[]
                    {
                        calendarItemBase.Id.ObjectId
                    };
                    userContext.MailboxSession.Move(userContext.CalendarFolderId, ids);
                }
                if (Globals.ArePerfCountersEnabled)
                {
                    OwaSingleCounters.ItemsUpdated.Increment();
                    return;
                }
            }
            else
            {
                try
                {
                    DeleteItemFlags deleteItemFlags = intendToSendResponse ? DeleteItemFlags.DeclineCalendarItemWithResponse : DeleteItemFlags.DeclineCalendarItemWithoutResponse;
                    if (Utilities.IsItemInDefaultFolder(calendarItemBase, DefaultFolderType.DeletedItems))
                    {
                        deleteItemFlags |= DeleteItemFlags.SoftDelete;
                    }
                    else
                    {
                        deleteItemFlags |= DeleteItemFlags.MoveToDeletedItems;
                    }
                    Utilities.Delete(userContext, deleteItemFlags, new OwaStoreObjectId[]
                    {
                        OwaStoreObjectId.CreateFromStoreObject(calendarItemBase)
                    });
                }
                catch (StoragePermanentException ex)
                {
                    ExTraceGlobals.CalendarTracer.TraceDebug <string>(0L, "Exception on delete calendar item: {0}'", ex.Message);
                    throw;
                }
            }
        }
Esempio n. 9
0
        public void ItemOperation(COWSettings settings, IDumpsterItemOperations dumpster, COWTriggerAction operation, COWTriggerActionState state, StoreSession session, StoreObjectId itemId, CoreItem item, CoreFolder folder, bool onBeforeNotification, OperationResult result, CallbackContext callbackContext)
        {
            Util.ThrowOnNullArgument(session, "session");
            EnumValidator.ThrowIfInvalid <COWTriggerAction>(operation, "operation");
            EnumValidator.ThrowIfInvalid <COWTriggerActionState>(state, "state");
            EnumValidator.ThrowIfInvalid <OperationResult>(result, "result");
            Util.ThrowOnNullArgument(item, "item");
            MailboxSession mailboxSession = session as MailboxSession;
            ExDateTime     now            = ExDateTime.Now;

            try
            {
                item.PropertyBag.Load(COWSiteMailboxMessageDedup.PropsForMessageRemoval);
                if (item.Id != null && item.Id.ObjectId != null)
                {
                    StoreObjectId storeObjectId = item.PropertyBag.TryGetProperty(StoreObjectSchema.ParentItemId) as StoreObjectId;
                    if (storeObjectId != null)
                    {
                        using (CoreFolder coreFolder = CoreFolder.Bind(session, storeObjectId))
                        {
                            DeleteItemFlags deleteItemFlags = DeleteItemFlags.HardDelete | DeleteItemFlags.SuppressReadReceipt;
                            coreFolder.DeleteItems(deleteItemFlags, new StoreObjectId[]
                            {
                                item.Id.ObjectId
                            });
                        }
                        COWSiteMailboxMessageDedup.Tracer.TraceDebug <StoreObjectId, string, double>((long)this.GetHashCode(), "COWSiteMailboxMessageDedup.ItemOperation: deleting message {0} from site mailbox {1} used {2} milliseconds", itemId, mailboxSession.DisplayName, (ExDateTime.Now - now).TotalMilliseconds);
                    }
                }
            }
            catch (StoragePermanentException arg)
            {
                COWSiteMailboxMessageDedup.Tracer.TraceError <StoragePermanentException>((long)this.GetHashCode(), "COWSiteMailboxMessageDedup.ItemOperation: got store permanent exception: {0}", arg);
            }
            catch (StorageTransientException arg2)
            {
                COWSiteMailboxMessageDedup.Tracer.TraceError <StorageTransientException>((long)this.GetHashCode(), "COWSiteMailboxMessageDedup.ItemOperation: got store transient exception: {0}", arg2);
            }
            callbackContext.SiteMailboxMessageDedupState = COWProcessorState.Processed;
        }
Esempio n. 10
0
        internal virtual void Delete(DeleteItemFlags deleteItemFlags)
        {
            ExTraceGlobals.DefaultFoldersTracer.TraceDebug <DefaultFolder>((long)this.GetHashCode(), "DefaultFolder::Delete. The default folder is about to be deleted. defaultFolder = {0}.", this);
            EnumValidator.ThrowIfInvalid <DeleteItemFlags>(deleteItemFlags, "deleteItemFlags");
            EnumValidator.ThrowIfInvalid <DefaultFolderType>(this.defaultFolderInfo.DefaultFolderType, DefaultFolder.DefaultFoldersThatCanBeDeleted);
            StoreObjectId storeObjectId;

            if (!this.TryGetFolderId(out storeObjectId))
            {
                throw new InvalidOperationException(string.Format("Cannot delete the default folder {0}, because it does not exist.", this.defaultFolderInfo.DefaultFolderType));
            }
            this.defaultFolderInfo.EntryIdStrategy.UnsetEntryId(this.context);
            DefaultFolderData        defaultFolderData        = this.GetDefaultFolderData();
            AggregateOperationResult aggregateOperationResult = this.defaultFolderInfo.FolderCreator.Delete(this.context, deleteItemFlags, defaultFolderData.FolderId);

            if (aggregateOperationResult.OperationResult != OperationResult.Succeeded)
            {
                throw new AggregateOperationFailedException(ServerStrings.ExFailedToDeleteDefaultFolder, aggregateOperationResult);
            }
            this.defaultFolderInfo.EntryIdStrategy.UnsetEntryId(this.context);
            this.SetDefaultFolderData(new DefaultFolderData(null));
        }
Esempio n. 11
0
        public override void Delete(StoreId id, DeleteItemFlags flags)
        {
            AggregateOperationResult aggregateOperationResult;

            try
            {
                TSession session = base.Session;
                aggregateOperationResult = session.Delete(flags, new StoreId[]
                {
                    id
                });
            }
            catch (ObjectNotFoundException innerException)
            {
                throw new AccessDeniedException(Strings.ErrorAccessDenied, innerException);
            }
            if (aggregateOperationResult.OperationResult == OperationResult.Failed)
            {
                GroupOperationResult groupOperationResult = aggregateOperationResult.GroupOperationResults.First((GroupOperationResult singleResult) => singleResult.OperationResult == OperationResult.Failed);
                throw groupOperationResult.Exception;
            }
        }
Esempio n. 12
0
        public void EmptyFolder()
        {
            OwaStoreObjectId owaStoreObjectId = (OwaStoreObjectId)base.GetParameter("id");

            if (Utilities.IsDefaultFolderId(base.UserContext, owaStoreObjectId, DefaultFolderType.SearchFolders))
            {
                throw new OwaInvalidRequestException("Cannot perform empty folder on Search Folder Root");
            }
            using (Folder folderForContent = Utilities.GetFolderForContent <Folder>(base.UserContext, owaStoreObjectId, new PropertyDefinition[]
            {
                FolderSchema.IsOutlookSearchFolder
            }))
            {
                if (!Utilities.IsOutlookSearchFolder(folderForContent))
                {
                    DeleteItemFlags flags           = owaStoreObjectId.IsPublic ? DeleteItemFlags.SoftDelete : DeleteItemFlags.MoveToDeletedItems;
                    OperationResult operationResult = folderForContent.DeleteAllItems(flags).OperationResult;
                    if (operationResult != OperationResult.Succeeded)
                    {
                        throw new OwaAccessDeniedException(LocalizedStrings.GetNonEncoded(166628739));
                    }
                }
            }
        }
        internal void ImportDeletes(DeleteItemFlags deleteItemFlags, byte[][] sourceKeys)
        {
            this.CheckDisposed(null);
            Util.ThrowOnNullArgument(sourceKeys, "sourceKeys");
            ImportDeletionFlags importDeletionFlags = ((deleteItemFlags & DeleteItemFlags.HardDelete) == DeleteItemFlags.HardDelete) ? ImportDeletionFlags.HardDelete : ImportDeletionFlags.None;

            PropValue[] array = new PropValue[sourceKeys.Length];
            for (int i = 0; i < sourceKeys.Length; i++)
            {
                array[i] = new PropValue(PropTag.SourceKey, sourceKeys[i]);
            }
            StoreSession session = this.Session;
            bool         flag    = false;

            try
            {
                if (session != null)
                {
                    session.BeginMapiCall();
                    session.BeginServerHealthCall();
                    flag = true;
                }
                if (StorageGlobals.MapiTestHookBeforeCall != null)
                {
                    StorageGlobals.MapiTestHookBeforeCall(MethodBase.GetCurrentMethod());
                }
                this.MapiImportDeletes(importDeletionFlags, array);
            }
            catch (MapiPermanentException ex)
            {
                throw StorageGlobals.TranslateMapiException(ServerStrings.CannotImportDeletion, ex, session, this, "{0}. MapiException = {1}.", new object[]
                {
                    string.Format("Import of object deletions failed", new object[0]),
                    ex
                });
            }
            catch (MapiRetryableException ex2)
            {
                throw StorageGlobals.TranslateMapiException(ServerStrings.CannotImportDeletion, ex2, session, this, "{0}. MapiException = {1}.", new object[]
                {
                    string.Format("Import of object deletions failed", new object[0]),
                    ex2
                });
            }
            finally
            {
                try
                {
                    if (session != null)
                    {
                        session.EndMapiCall();
                        if (flag)
                        {
                            session.EndServerHealthCall();
                        }
                    }
                }
                finally
                {
                    if (StorageGlobals.MapiTestHookAfterCall != null)
                    {
                        StorageGlobals.MapiTestHookAfterCall(MethodBase.GetCurrentMethod());
                    }
                }
            }
        }
Esempio n. 14
0
 public void DeleteDefaultFolder(DefaultFolderType defaultFolderType, DeleteItemFlags deleteItemFlags)
 {
     throw new NotImplementedException();
 }
Esempio n. 15
0
 public AggregateOperationResult Delete(StoreObjectId contextFolderId, DateTime?actionTime, DeleteItemFlags deleteFlags)
 {
     return(this.Delete(contextFolderId, actionTime, deleteFlags, false));
 }
Esempio n. 16
0
 internal override AggregateOperationResult Delete(DefaultFolderContext context, DeleteItemFlags deleteItemFlags, StoreObjectId id)
 {
     throw new NotSupportedException("The defaultFolder does not support deletion.");
 }
 internal virtual AggregateOperationResult Delete(DefaultFolderContext context, DeleteItemFlags deleteItemFlags, StoreObjectId id)
 {
     if (this.storeObjectType == StoreObjectType.OutlookSearchFolder)
     {
         return(OutlookSearchFolder.DeleteOutlookSearchFolder(deleteItemFlags, context.Session, id));
     }
     return(context.Session.Delete(deleteItemFlags, new StoreId[]
     {
         id
     }));
 }
        // Token: 0x06001575 RID: 5493 RVA: 0x0007E438 File Offset: 0x0007C638
        internal override Command.ExecutionState ExecuteCommand()
        {
            MessageItem     messageItem     = null;
            bool            flag            = false;
            DeleteItemFlags deletedItemFlag = DeleteItemFlags.HardDelete;

            try
            {
                base.ValidateBody();
                StoreObjectId defaultFolderId = base.MailboxSession.GetDefaultFolderId(DefaultFolderType.Drafts);
                messageItem = MessageItem.Create(base.MailboxSession, defaultFolderId);
                base.ParseMimeToMessage(messageItem);
                Guid guid;
                if (base.IsIrmOperation(out guid))
                {
                    RmsTemplate rmsTemplate = RmsTemplateReaderCache.LookupRmsTemplate(base.User.OrganizationId, guid);
                    if (rmsTemplate == null)
                    {
                        AirSyncDiagnostics.TraceError <Guid>(ExTraceGlobals.RequestsTracer, this, "Template {0} not found in cache", guid);
                        throw new AirSyncPermanentException(StatusCode.IRM_InvalidTemplateID, false)
                              {
                                  ErrorStringForProtocolLogger = "smcEInvalidTemplateID"
                              };
                    }
                    messageItem = RightsManagedMessageItem.Create(messageItem, AirSyncUtility.GetOutboundConversionOptions());
                    RightsManagedMessageItem rightsManagedMessageItem = messageItem as RightsManagedMessageItem;
                    rightsManagedMessageItem.SetRestriction(rmsTemplate);
                    rightsManagedMessageItem.Sender = new Participant(base.MailboxSession.MailboxOwner);
                }
                Command.CurrentCommand.ProtocolLogger.SetValue(ProtocolLoggerData.ClassName, messageItem.ClassName);
                if (!GlobalSettings.OnlyOrganizersCanSendMeetingChanges || !this.IsMeetingRelatedMessage(messageItem))
                {
                    base.SendMessage(messageItem);
                    flag = true;
                }
                else
                {
                    bool flag2 = this.CanSendMessage(messageItem);
                    if (GlobalSettings.GetGoidFromCalendarItemForMeetingResponse && base.Version < 160 && this.IsResponseMessageToSingleMeeting(messageItem))
                    {
                        GlobalObjectId goidFromItem = this.GetGoidFromItem(messageItem);
                        try
                        {
                            ResponseType       valueOrDefault    = messageItem.GetValueOrDefault <ResponseType>(MeetingResponseSchema.ResponseType);
                            DefaultFolderType  defaultFolderType = (valueOrDefault == ResponseType.Decline) ? DefaultFolderType.DeletedItems : DefaultFolderType.Calendar;
                            List <PropertyBag> list = this.QueryRelatedCalendarItems(defaultFolderType, goidFromItem);
                            if (list.Count == 0 && valueOrDefault == ResponseType.Decline)
                            {
                                list = this.QueryRelatedCalendarItems(DefaultFolderType.Calendar, goidFromItem);
                                if (list.Count == 0)
                                {
                                    list = this.QueryRelatedCalendarItems(DefaultFolderType.DeletedItems, goidFromItem);
                                }
                            }
                            this.FindAndSetMessageGoid(list, messageItem, goidFromItem);
                        }
                        catch (Exception ex)
                        {
                            AirSyncDiagnostics.TraceError <Exception>(ExTraceGlobals.RequestsTracer, this, "GetRelatedCalendarItemGoid threw exception {0}", ex);
                            AirSyncDiagnostics.SendInMemoryTraceWatson(ex);
                        }
                    }
                    if (flag2)
                    {
                        base.SendMessage(messageItem);
                        flag = true;
                    }
                    else
                    {
                        AirSyncDiagnostics.TraceDebug <Participant>(ExTraceGlobals.RequestsTracer, this, "Attempt to send meeting cancellation by attendee. Sender {0}", messageItem.Sender);
                        messageItem.ClassName = "IPM.Note";
                        messageItem.Save(SaveMode.NoConflictResolution);
                        deletedItemFlag = DeleteItemFlags.MoveToDeletedItems;
                        Command.CurrentCommand.ProtocolLogger.SetValue(ProtocolLoggerData.SkipSend, true.ToString());
                    }
                }
            }
            finally
            {
                if (messageItem != null)
                {
                    if (!flag)
                    {
                        base.DeleteMessage(messageItem, deletedItemFlag);
                    }
                    messageItem.Dispose();
                }
            }
            return(Command.ExecutionState.Complete);
        }
Esempio n. 19
0
        public AggregateOperationResult Delete(StoreObjectId contextFolderId, DateTime?actionTime, DeleteItemFlags deleteFlags, bool returnNewItemIds)
        {
            EnumValidator.ThrowIfInvalid <DeleteItemFlags>(deleteFlags, "deleteFlags");
            List <StoreObjectId> filteredItemIds = this.GetFilteredItemIds(contextFolderId, actionTime, null);

            return(this.session.Delete(deleteFlags, returnNewItemIds, filteredItemIds.ToArray()));
        }
Esempio n. 20
0
        internal static void DeleteRelatedMessage(this IEventInternal entity, string messageId, DeleteItemFlags flags, IXSOFactory xsoFactory, IdConverter idConverter, IStoreSession session, bool markAsReadBeforeDelete)
        {
            StoreObjectId storeObjectId = idConverter.ToStoreObjectId(messageId);

            using (IMeetingMessage meetingMessage = xsoFactory.BindToMeetingMessage(session, storeObjectId))
            {
                if (meetingMessage == null || meetingMessage.GlobalObjectId == null || meetingMessage.GlobalObjectId.ToString() != entity.GlobalObjectId)
                {
                    throw new InvalidRequestException(CalendaringStrings.ErrorMeetingMessageNotFoundOrCantBeUsed);
                }
                if (markAsReadBeforeDelete)
                {
                    meetingMessage.OpenAsReadWrite();
                    meetingMessage.IsRead = true;
                    meetingMessage.Save(SaveMode.NoConflictResolutionForceSave);
                }
            }
            session.Delete(flags, new StoreId[]
            {
                storeObjectId
            });
        }
 internal void DeleteDefaultFolder(DefaultFolderType defaultFolderType, DeleteItemFlags deleteItemFlags)
 {
     this.GetDefaultFolder(defaultFolderType).Delete(deleteItemFlags);
 }
Esempio n. 22
0
 public override void Delete(string attachmentId, DeleteItemFlags flags)
 {
     this.Delete(attachmentId, null);
 }
Esempio n. 23
0
 public abstract void Delete(TId id, DeleteItemFlags flags);
Esempio n. 24
0
        public void Delete()
        {
            ExTraceGlobals.CalendarCallTracer.TraceDebug((long)this.GetHashCode(), "CalendarViewEventHandler.Delete");
            OwaStoreObjectId owaStoreObjectId  = (OwaStoreObjectId)base.GetParameter("Id");
            OwaStoreObjectId owaStoreObjectId2 = (OwaStoreObjectId)base.GetParameter("fId");
            Item             item             = null;
            CalendarItemBase calendarItemBase = null;
            bool             flag             = true;

            try
            {
                item = Utilities.GetItem <Item>(base.UserContext, owaStoreObjectId, new PropertyDefinition[]
                {
                    StoreObjectSchema.EffectiveRights,
                    CalendarItemBaseSchema.MeetingRequestWasSent,
                    CalendarItemBaseSchema.IsOrganizer
                });
                calendarItemBase = (item as CalendarItemBase);
                if (calendarItemBase != null)
                {
                    if (!CalendarUtilities.UserCanDeleteCalendarItem(calendarItemBase) || Utilities.IsItemInExternalSharedInFolder(base.UserContext, calendarItemBase))
                    {
                        base.ResponseContentType = OwaEventContentType.Html;
                        this.Writer.Write("<div id=divOp _sOp=np></div>");
                        flag = false;
                    }
                    else if (!base.IsParameterSet("FD") && calendarItemBase.IsMeeting && calendarItemBase.MeetingRequestWasSent && calendarItemBase.IsOrganizer())
                    {
                        base.ResponseContentType = OwaEventContentType.Html;
                        this.Writer.Write("<div id=divOp _sOp=sc></div>");
                        flag = false;
                    }
                    else if (!base.IsParameterSet("FD") && !calendarItemBase.IsOrganizer() && !calendarItemBase.IsCancelled && !MeetingUtilities.IsCalendarItemEndTimeInPast(calendarItemBase))
                    {
                        base.ResponseContentType = OwaEventContentType.Html;
                        this.Writer.Write("<div id=divOp _sOp=sr></div>");
                        flag = false;
                    }
                    else if (!base.IsParameterSet("FD") && (owaStoreObjectId2.IsOtherMailbox || owaStoreObjectId2.IsGSCalendar))
                    {
                        base.ResponseContentType = OwaEventContentType.Html;
                        this.Writer.Write("<div id=divOp _sOp=sn></div>");
                        flag = false;
                    }
                }
                else if (!ItemUtility.UserCanDeleteItem(item))
                {
                    base.ResponseContentType = OwaEventContentType.Html;
                    this.Writer.Write("<div id=divOp _sOp=np></div>");
                    flag = false;
                }
                if (flag)
                {
                    bool flag2 = false;
                    if (base.IsParameterSet("Ntfy"))
                    {
                        flag2 = (bool)base.GetParameter("Ntfy");
                    }
                    if (flag2)
                    {
                        PrincipalNotificationMessage principalNotificationMessage = new PrincipalNotificationMessage(owaStoreObjectId.ToBase64String(), owaStoreObjectId2, base.UserContext, this.HttpContext, PrincipalNotificationMessage.ActionType.Delete, false, calendarItemBase.IsMeeting);
                        principalNotificationMessage.SendNotificationMessage();
                    }
                    bool flag3 = false;
                    if (base.IsParameterSet("Prm"))
                    {
                        flag3 = (bool)base.GetParameter("Prm");
                    }
                    DeleteItemFlags deleteItemFlags = DeleteItemFlags.None;
                    if (!owaStoreObjectId2.IsPublic)
                    {
                        if (calendarItemBase.IsOrganizer())
                        {
                            if (calendarItemBase.IsMeeting)
                            {
                                goto IL_269;
                            }
                            deleteItemFlags = DeleteItemFlags.CancelCalendarItem;
                            MeetingCancellation meetingCancellation = null;
                            try
                            {
                                try
                                {
                                    calendarItemBase.OpenAsReadWrite();
                                    meetingCancellation = calendarItemBase.CancelMeeting(null, null);
                                }
                                catch (ObjectNotFoundException)
                                {
                                }
                                catch (AccessDeniedException)
                                {
                                }
                                goto IL_269;
                            }
                            finally
                            {
                                if (meetingCancellation != null)
                                {
                                    meetingCancellation.Dispose();
                                }
                                meetingCancellation = null;
                            }
                        }
                        deleteItemFlags = DeleteItemFlags.DeclineCalendarItemWithoutResponse;
                    }
IL_269:
                    calendarItemBase.DeleteMeeting((flag3 ? DeleteItemFlags.SoftDelete : DeleteItemFlags.MoveToDeletedItems) | deleteItemFlags);
                    this.RenderPayload(new OwaStoreObjectId[]
                    {
                        owaStoreObjectId2
                    });
                }
            }
            catch (ObjectNotFoundException)
            {
                ExTraceGlobals.CalendarDataTracer.TraceDebug((long)this.GetHashCode(), "Calendar item could not be found.");
                throw;
            }
            finally
            {
                if (item != null)
                {
                    item.Dispose();
                    item = null;
                }
            }
        }
Esempio n. 25
0
 public virtual AggregateOperationResult DeleteObjects(DeleteItemFlags deleteFlags, params StoreId[] ids)
 {
     throw new NotImplementedException();
 }