protected override PolicyContextMenuBase InternalGetPolicyMenu(ref OwaStoreObjectId itemId) { if (itemId != null) { if (itemId.OwaStoreObjectIdType != OwaStoreObjectIdType.MailBoxObject && itemId.OwaStoreObjectIdType != OwaStoreObjectIdType.ArchiveMailboxObject && itemId.OwaStoreObjectIdType != OwaStoreObjectIdType.Conversation && itemId.OwaStoreObjectIdType != OwaStoreObjectIdType.ArchiveConversation) { throw new OwaInvalidRequestException("Only (archive)mailbox and (archive)conversation objects can be handled."); } if (itemId.IsConversationId) { OwaStoreObjectId[] allItemIds = ConversationUtilities.GetAllItemIds(base.UserContext, new OwaStoreObjectId[] { itemId }, new StoreObjectId[0]); if (allItemIds.Length == 1) { itemId = allItemIds[0]; } } } DeletePolicyContextMenu deletePolicyContextMenu = DeletePolicyContextMenu.Create(base.UserContext); if (itemId != null && !itemId.IsConversationId && itemId.IsStoreObjectId && itemId.StoreObjectId.IsFolderId) { StoreObjectId storeObjectId = itemId.StoreObjectId; StoreSession session = itemId.GetSession(base.UserContext); if (Utilities.IsDefaultFolderId(session, storeObjectId, DefaultFolderType.Inbox) || Utilities.IsDefaultFolderId(session, storeObjectId, DefaultFolderType.Drafts) || Utilities.IsDefaultFolderId(session, storeObjectId, DefaultFolderType.SentItems) || Utilities.IsDefaultFolderId(session, storeObjectId, DefaultFolderType.Notes) || Utilities.IsDefaultFolderId(session, storeObjectId, DefaultFolderType.JunkEmail) || Utilities.IsDefaultFolderId(session, storeObjectId, DefaultFolderType.DeletedItems)) { deletePolicyContextMenu.RenderCheckedOnly = true; } } return(deletePolicyContextMenu); }
// Token: 0x0600258F RID: 9615 RVA: 0x000D943C File Offset: 0x000D763C internal SharedCalendarItemInfobar(UserContext userContext, CalendarFolder folder, int colorIndex, bool renderNotifyForOtherUser) { if (userContext == null) { throw new ArgumentNullException("userContext"); } if (folder == null) { throw new ArgumentNullException("folder"); } this.userContext = userContext; this.folder = folder; this.colorIndex = colorIndex; this.renderNotifyForOtherUser = renderNotifyForOtherUser; this.isSharedOutFolder = Utilities.IsFolderSharedOut(folder); OwaStoreObjectId owaStoreObjectId = OwaStoreObjectId.CreateFromStoreObject(folder); if (owaStoreObjectId.GetSession(userContext) is MailboxSession) { this.folderEncodedDisplayName = Utilities.SanitizeHtmlEncode(string.Format(LocalizedStrings.GetNonEncoded(-83764036), folder.DisplayName, Utilities.GetMailboxOwnerDisplayName((MailboxSession)owaStoreObjectId.GetSession(userContext)))); } else { this.folderEncodedDisplayName = Utilities.SanitizeHtmlEncode(folder.DisplayName); } this.isSharedFolder = (owaStoreObjectId != null && owaStoreObjectId.IsOtherMailbox); this.isPublicFolder = owaStoreObjectId.IsPublic; if (this.isSharedFolder) { this.folderOwnerEncodedName = Utilities.SanitizeHtmlEncode(Utilities.GetFolderOwnerExchangePrincipal(owaStoreObjectId, userContext).MailboxInfo.DisplayName); } this.containerClass = folder.GetValueOrDefault <string>(StoreObjectSchema.ContainerClass, "IPF.Appointment"); }
public void RemoveOtherInbox() { base.ThrowIfCannotActAsOwner(); OwaStoreObjectId owaStoreObjectId = (OwaStoreObjectId)base.GetParameter("Id"); if (owaStoreObjectId.MailboxOwnerLegacyDN == null) { throw new OwaInvalidRequestException("Can't find legacyDN information."); } OtherMailboxConfiguration.RemoveOtherMailbox(base.UserContext, owaStoreObjectId.MailboxOwnerLegacyDN); try { MailboxSession mailboxSession = owaStoreObjectId.GetSession(base.UserContext) as MailboxSession; StoreObjectId defaultFolderId = mailboxSession.GetDefaultFolderId(DefaultFolderType.Inbox); if (defaultFolderId != null) { OwaStoreObjectId owaStoreObjectId2 = OwaStoreObjectId.CreateFromSessionFolderId(base.UserContext, mailboxSession, defaultFolderId); if (base.UserContext.IsPushNotificationsEnabled) { base.UserContext.MapiNotificationManager.UnsubscribeFolderCounts(owaStoreObjectId2, mailboxSession); base.UserContext.MapiNotificationManager.UnsubscribeFolderChanges(owaStoreObjectId2, mailboxSession); } if (base.UserContext.IsPullNotificationsEnabled) { base.UserContext.NotificationManager.DeleteDelegateFolderCountAdvisor(owaStoreObjectId2); base.UserContext.NotificationManager.DeleteOwaConditionAdvisor(owaStoreObjectId2); } } } catch (ObjectNotFoundException arg) { ExTraceGlobals.CoreCallTracer.TraceDebug <ObjectNotFoundException>(0L, "NavigationNodeEventHandler.RemoveOtherInbox() exception {0}", arg); } }
// Token: 0x06002E1D RID: 11805 RVA: 0x001074AC File Offset: 0x001056AC private OwaStoreObjectId GetLatestFlaggedOrNormalItem() { OwaStoreObjectId owaStoreObjectId = base.GetParameter("id") as OwaStoreObjectId; if (owaStoreObjectId == null || !owaStoreObjectId.IsConversationId) { return(owaStoreObjectId); } MailboxSession mailboxSession = (MailboxSession)owaStoreObjectId.GetSession(base.UserContext); Conversation conversation = Conversation.Load(mailboxSession, owaStoreObjectId.ConversationId, base.UserContext.IsIrmEnabled, new PropertyDefinition[] { ItemSchema.Id, StoreObjectSchema.ParentItemId, ItemSchema.ReceivedTime, ItemSchema.FlagStatus }); conversation.ConversationTree.Sort(ConversationTreeSortOrder.ChronologicalDescending); IList <StoreObjectId> flagedItems = ConversationUtilities.GetFlagedItems(mailboxSession, conversation, owaStoreObjectId.ParentFolderId, new FlagStatus[] { FlagStatus.Flagged }); if (flagedItems.Count > 0) { return(OwaStoreObjectId.CreateFromStoreObjectId(flagedItems[0], owaStoreObjectId)); } StoreObjectId latestMessage = ConversationUtilities.GetLatestMessage(mailboxSession, conversation, owaStoreObjectId.ParentFolderId); if (latestMessage != null) { return(OwaStoreObjectId.CreateFromStoreObjectId(latestMessage, owaStoreObjectId)); } return(null); }
public void ExpandItemParts() { ExTraceGlobals.MailCallTracer.TraceDebug((long)this.GetHashCode(), "ReadConversationEventHandler.ExpandItemParts"); OwaStoreObjectId owaStoreObjectId = (OwaStoreObjectId)base.GetParameter("CnvId"); OwaStoreObjectId[] array = (OwaStoreObjectId[])base.GetParameter("IPId"); Conversation conversation = ConversationUtilities.LoadConversation(base.UserContext, owaStoreObjectId, ItemPartWriter.GetRequestedProperties()); List <StoreObjectId> localItemIds = ConversationUtilities.GetLocalItemIds((MailboxSession)owaStoreObjectId.GetSession(base.UserContext), conversation, owaStoreObjectId.ParentFolderId); ConversationUtilities.MarkLocalNodes(conversation, localItemIds); conversation.OnBeforeItemLoad += ItemPartWriter.OnBeforeItemLoad; foreach (OwaStoreObjectId owaStoreObjectId2 in array) { this.SanitizingWriter.Write("<div id=\""); this.SanitizingWriter.Write(owaStoreObjectId2.ToString()); this.SanitizingWriter.Write("\">"); IConversationTreeNode conversationTreeNode; if (!conversation.ConversationTree.TryGetConversationTreeNode(owaStoreObjectId2.StoreObjectId, out conversationTreeNode)) { this.Writer.Write("<div id=divExp itemNotFound=1> </div>"); } else { MailboxSession session = (MailboxSession)owaStoreObjectId.GetSession(base.UserContext); ConversationUtilities.SortPropertyBags(conversationTreeNode, localItemIds, session); using (ItemPartWriter writer = ItemPartWriter.GetWriter(base.UserContext, this.Writer, owaStoreObjectId, conversation, conversationTreeNode)) { writer.RenderExpandedItemPart(false, false, null); } } this.SanitizingWriter.Write("</div>"); } }
// Token: 0x06002FB2 RID: 12210 RVA: 0x001153B8 File Offset: 0x001135B8 private bool CanFolderHaveSubFolders(OwaStoreObjectId folderId) { if (folderId.IsPublic) { return(true); } using (Folder folder = Folder.Bind(folderId.GetSession(base.UserContext), folderId.StoreObjectId, new PropertyDefinition[] { FolderSchema.IsOutlookSearchFolder, FolderSchema.ExtendedFolderFlags })) { if (Utilities.IsDefaultFolder(folder, DefaultFolderType.SearchFolders)) { return(false); } if (Utilities.IsOutlookSearchFolder(folder)) { return(false); } if (Utilities.IsELCRootFolder(folder)) { return(false); } if (Utilities.IsOneOfTheFolderFlagsSet(folder, new ExtendedFolderFlags[] { ExtendedFolderFlags.ExclusivelyBound, ExtendedFolderFlags.RemoteHierarchy })) { return(false); } } return(true); }
public void EmptyDeletedItems() { OwaStoreObjectId owaStoreObjectId = (OwaStoreObjectId)base.GetParameter("id"); if (!Utilities.IsDefaultFolderId(base.UserContext, owaStoreObjectId, DefaultFolderType.DeletedItems)) { throw new OwaInvalidRequestException("Can only perform EmptyDeletedItems operation on DeletedItems folder"); } owaStoreObjectId.GetSession(base.UserContext).DeleteAllObjects(DeleteItemFlags.SoftDelete, owaStoreObjectId.StoreObjectId); }
private void ProcessOwaConditionAdvisors() { Dictionary <OwaStoreObjectId, OwaConditionAdvisor> conditionAdvisorTable = base.UserContext.NotificationManager.ConditionAdvisorTable; if (conditionAdvisorTable != null) { OwaStoreObjectId remindersSearchFolderOwaId = base.UserContext.RemindersSearchFolderOwaId; bool flag = false; IDictionaryEnumerator dictionaryEnumerator = conditionAdvisorTable.GetEnumerator(); while (dictionaryEnumerator.MoveNext()) { OwaConditionAdvisor owaConditionAdvisor = (OwaConditionAdvisor)dictionaryEnumerator.Value; OwaStoreObjectId folderId = owaConditionAdvisor.FolderId; try { MailboxSession mailboxSession = folderId.GetSession(base.UserContext) as MailboxSession; if (mailboxSession != null) { bool flag2 = owaConditionAdvisor.IsConditionTrue(mailboxSession); if (base.UserContext.UserOptions.EnableReminders && !flag && folderId.Equals(remindersSearchFolderOwaId)) { flag = flag2; } if (flag2 || owaConditionAdvisor.IsRecycled) { if (!folderId.Equals(remindersSearchFolderOwaId)) { this.Writer.Write("stDrty(\""); Utilities.JavascriptEncode(folderId.ToBase64String(), this.Writer); this.Writer.Write("\");"); } owaConditionAdvisor.ResetCondition(mailboxSession); owaConditionAdvisor.IsRecycled = false; } } } catch (ObjectNotFoundException) { } } if (base.UserContext.UserOptions.EnableReminders) { this.ProcessReminders(flag); } } }
protected override void LoadViewState() { OwaStoreObjectId owaStoreObjectId = OwaStoreObjectId.CreateFromString(Utilities.GetQueryStringParameter(base.Request, "id")); MailboxSession mailboxSession = (MailboxSession)owaStoreObjectId.GetSession(base.UserContext); StoreObjectId defaultFolderId = mailboxSession.GetDefaultFolderId(DefaultFolderType.RecoverableItemsDeletions); if (defaultFolderId == null) { DumpsterFolderHelper.CheckAndCreateFolder(mailboxSession); defaultFolderId = mailboxSession.GetDefaultFolderId(DefaultFolderType.RecoverableItemsDeletions); } OwaStoreObjectId folderId = OwaStoreObjectId.CreateFromStoreObjectId(defaultFolderId, owaStoreObjectId); this.folder = Utilities.GetFolderForContent <Folder>(base.UserContext, folderId, RecoverDeletedItems.folderProperties); this.viewWidth = Utilities.GetFolderProperty <int>(this.folder, ViewStateProperties.ViewWidth, 450); this.viewHeight = Utilities.GetFolderProperty <int>(this.folder, ViewStateProperties.ViewHeight, 250); }
public void IgnoreConversations() { DeleteItemInfo[] array = (DeleteItemInfo[])base.GetParameter("Itms"); OwaStoreObjectId[] array2 = (OwaStoreObjectId[])base.GetParameter("Cnvs"); if (array != null) { if (array2 != null) { throw new OwaInvalidRequestException("IgnoreConversations does not accept both conversation IDs and items."); } if (array.Length > 500) { throw new OwaInvalidOperationException(string.Format(CultureInfo.InvariantCulture, "Calling ignore conversation on {0} item(s) in a single request is not supported", new object[] { array.Length })); } OwaStoreObjectId owaStoreObjectId = (OwaStoreObjectId)base.GetParameter("fId"); MailboxSession session = (MailboxSession)owaStoreObjectId.GetSession(base.UserContext); List <OwaStoreObjectId> list = new List <OwaStoreObjectId>(array.Length); using (Folder folder = Folder.Bind(session, owaStoreObjectId.StoreObjectId)) { foreach (DeleteItemInfo deleteItemInfo in array) { ConversationId conversationId = ConversationUtilities.MapItemToConversation(base.UserContext, deleteItemInfo.OwaStoreObjectId); if (conversationId != null) { list.Add(OwaStoreObjectId.CreateFromConversationId(conversationId, folder, null)); } } } array2 = list.ToArray(); } base.CheckSizeOfBatchOperation(array2); bool flag = true; foreach (OwaStoreObjectId conversationId2 in array2) { flag &= ConversationUtilities.IgnoreConversation(base.UserContext, conversationId2); } if (!flag) { base.RenderErrorResult("errDel", 166628739); } }
public void TickleXTC() { OwaStoreObjectId owaStoreObjectId = base.GetParameter("sId") as OwaStoreObjectId; if (owaStoreObjectId == null) { throw new ArgumentException("sId is not a valid OwaStoreObjectId"); } MailboxSession mailboxSession = owaStoreObjectId.GetSession(base.UserContext) as MailboxSession; if (mailboxSession == null) { throw new OwaInvalidRequestException("The provided Id does not have a valid mailboxSession"); } if (!mailboxSession.IsRemote) { throw new OwaInvalidRequestException("The mailbox session for the provided Id is not a remote mailbox"); } mailboxSession.CheckForNotifications(); }
public void GetPolicyMenu() { if (!this.policyProvider.IsPolicyEnabled(base.UserContext.MailboxSession)) { throw new OwaInvalidRequestException("The mailbox is not enabled for " + this.policyProvider.ToString()); } OwaStoreObjectId owaStoreObjectId = base.GetParameter("id") as OwaStoreObjectId; PolicyContextMenuBase policyMenu = this.InternalGetPolicyMenu(ref owaStoreObjectId); if (owaStoreObjectId != null && !owaStoreObjectId.IsConversationId) { this.DoPolicy((MailboxSession)owaStoreObjectId.GetSession(base.UserContext), owaStoreObjectId.StoreObjectId, true, delegate(StoreObject storeObject) { bool isInherited; Guid?policyTag = this.policyProvider.GetPolicyTag(storeObject, out isInherited); policyMenu.SetStates(isInherited, policyTag); }); } policyMenu.Render(this.Writer); }
public void PrereadMessages() { OwaStoreObjectId owaStoreObjectId = (OwaStoreObjectId)base.GetParameter("fId"); MailboxSession mailboxSession = owaStoreObjectId.GetSession(base.UserContext) as MailboxSession; OwaStoreObjectId[] array = (OwaStoreObjectId[])base.GetParameter("Itms"); StoreId[] array2 = null; if (mailboxSession == null) { throw new OwaInvalidRequestException("Session type does not support preread."); } if (array.Length == 0) { throw new ArgumentNullException("itemIds cannot be empty"); } try { if (this.IsConversationView) { array2 = ConversationUtilities.GetPrereadItemIds(mailboxSession, array); } else { array2 = new StoreId[array.Length]; for (int i = 0; i < array.Length; i++) { array2[i] = Utilities.TryGetStoreId(array[i]); } } } catch (ArgumentNullException exception) { if (Globals.SendWatsonReports) { ExWatson.AddExtraData(this.GetExtraWatsonData(array)); ExWatson.SendReport(exception, ReportOptions.None, null); return; } } mailboxSession.PrereadMessages(array2); }
// Token: 0x06002FAE RID: 12206 RVA: 0x00114FF8 File Offset: 0x001131F8 private void RenderFolderTreeChangedNode(OwaStoreObjectId parentFolderId, OwaStoreObjectId newFolderId, bool isExpanded, bool updateFolderId, FolderTreeRenderType renderType) { this.Writer.Write("<div id=tn"); if (base.UserContext.ArchiveAccessed && parentFolderId.Equals(base.UserContext.GetArchiveRootFolderId())) { this.Writer.Write(" archiveroot=\"1\""); MailboxSession mailboxSession = parentFolderId.GetSession(base.UserContext) as MailboxSession; if (mailboxSession != null && mailboxSession.MailboxOwner.MailboxInfo.IsRemote) { this.Writer.Write(" isremote=\"1\""); } } if (updateFolderId) { this.Writer.Write(" ufid=\"f"); Utilities.HtmlEncode(parentFolderId.ToString(), this.Writer); this.Writer.Write("\""); } this.Writer.Write(">"); if (isExpanded) { this.RenderSiblingNodes(parentFolderId, newFolderId, renderType); } else { if (newFolderId == null) { throw new ArgumentNullException("newFolderId"); } FolderTreeNode folderTreeNode = FolderTreeNode.Load(base.UserContext, newFolderId, renderType); if (folderTreeNode != null) { FolderTreeNode folderTreeNode2 = folderTreeNode; folderTreeNode2.CustomAttributes += " _NF=1"; folderTreeNode.RenderUndecoratedNode(this.Writer); } } this.Writer.Write("</div>"); }
public void Refresh() { ExTraceGlobals.MailCallTracer.TraceDebug((long)this.GetHashCode(), "ReadConversationEventHandler.Refresh"); OwaStoreObjectId owaStoreObjectId = (OwaStoreObjectId)base.GetParameter("CnvId"); OwaStoreObjectId[] expandedIds = (OwaStoreObjectId[])base.GetParameter("ExpIds"); int[] expandedInternetMIds = (int[])base.GetParameter("ExpInternetMIds"); Conversation conversation = ConversationUtilities.LoadConversation(base.UserContext, owaStoreObjectId, ItemPartWriter.GetRequestedProperties()); conversation.TrimToNewest(Globals.MaxItemsInConversationReadingPane); MailboxSession session = (MailboxSession)owaStoreObjectId.GetSession(base.UserContext); List <StoreObjectId> localItemIds = ConversationUtilities.GetLocalItemIds(session, conversation, owaStoreObjectId.ParentFolderId); conversation.OnBeforeItemLoad += ItemPartWriter.OnBeforeItemLoad; this.Writer.Write("<div id=divRfrsh"); RenderingUtilities.RenderExpando(this.Writer, "iGC", ConversationUtilities.GetGlobalCount(conversation)); RenderingUtilities.RenderExpando(this.Writer, "iC", localItemIds.Count); RenderingUtilities.RenderExpando(this.Writer, "iSort", (int)base.UserContext.UserOptions.ConversationSortOrder); this.Writer.Write(">"); ConversationUtilities.RenderItemParts(this.Writer, base.UserContext, owaStoreObjectId, conversation, expandedIds, expandedInternetMIds, localItemIds, null, false); this.Writer.Write("</div>"); }
// Token: 0x06002FAF RID: 12207 RVA: 0x00115124 File Offset: 0x00113324 private void RenderSiblingNodes(OwaStoreObjectId parentFolderId, OwaStoreObjectId newFolderId, FolderTreeRenderType renderType) { FolderTreeNode folderTreeNode; if (parentFolderId.IsPublic) { folderTreeNode = FolderTreeNode.CreatePublicFolderTreeNode(base.UserContext, parentFolderId.StoreObjectId); } else if (parentFolderId.IsOtherMailbox) { folderTreeNode = FolderTreeNode.CreateOtherMailboxRootNode(base.UserContext, parentFolderId, string.Empty, true); if (folderTreeNode == null) { throw new OwaEventHandlerException("User cannot view other's Inbox", LocalizedStrings.GetNonEncoded(995407892), true); } } else { folderTreeNode = FolderTreeNode.CreateMailboxFolderTreeNode(base.UserContext, (MailboxSession)parentFolderId.GetSession(base.UserContext), parentFolderId.StoreObjectId, renderType); } if (folderTreeNode == null) { return; } if (newFolderId != null) { foreach (TreeNode treeNode in folderTreeNode.Children) { FolderTreeNode folderTreeNode2 = (FolderTreeNode)treeNode; if (folderTreeNode2.FolderId.Equals(newFolderId)) { FolderTreeNode folderTreeNode3 = folderTreeNode2; folderTreeNode3.CustomAttributes += " _NF=1"; } } } folderTreeNode.RenderUndecoratedChildrenNode(this.Writer); }
public void Remove() { base.ThrowIfCannotActAsOwner(); StoreObjectId nodeId = (StoreObjectId)base.GetParameter("srcNId"); NavigationNodeGroupSection navigationNodeGroupSection = (NavigationNodeGroupSection)base.GetParameter("GS"); NavigationNodeCollection navigationNodeCollection = NavigationNodeCollection.TryCreateNavigationNodeCollection(base.UserContext, base.UserContext.MailboxSession, navigationNodeGroupSection); List <OwaStoreObjectId> list = new List <OwaStoreObjectId>(); NavigationNode navigationNode = navigationNodeCollection.FindNavigationNodeByNodeId(nodeId); if (navigationNode == null) { base.RenderPartialFailure(-289549140, OwaEventHandlerErrorCode.NotSet); } else { OperationResult operationResult = (OperationResult)0; if (navigationNodeGroupSection != NavigationNodeGroupSection.First) { List <NavigationNodeFolder> list2 = new List <NavigationNodeFolder>(); if (navigationNode is NavigationNodeFolder) { list2.Add(navigationNode as NavigationNodeFolder); } else if (navigationNode is NavigationNodeGroup) { NavigationNodeGroup navigationNodeGroup = navigationNode as NavigationNodeGroup; foreach (NavigationNodeFolder item in navigationNodeGroup.Children) { list2.Add(item); } } foreach (NavigationNodeFolder navigationNodeFolder in list2) { if (navigationNodeFolder.IsValid) { OwaStoreObjectId owaStoreObjectId = OwaStoreObjectId.CreateFromNavigationNodeFolder(base.UserContext, navigationNodeFolder); MailboxSession mailboxSession = owaStoreObjectId.IsArchive ? ((MailboxSession)owaStoreObjectId.GetSession(base.UserContext)) : base.UserContext.MailboxSession; if (navigationNodeFolder.IsFolderInSpecificMailboxSession(mailboxSession)) { if (Utilities.IsSpecialFolderForSession(mailboxSession, navigationNodeFolder.FolderId)) { throw new OwaEventHandlerException("Cannot delete default folders.", LocalizedStrings.GetNonEncoded(-1164567320), true); } if (operationResult == (OperationResult)0) { operationResult = OperationResult.Succeeded; } AggregateOperationResult aggregateOperationResult = mailboxSession.Delete(DeleteItemFlags.MoveToDeletedItems, new StoreId[] { navigationNodeFolder.FolderId }); if (aggregateOperationResult.OperationResult == OperationResult.Succeeded) { list.Add(OwaStoreObjectId.CreateFromNavigationNodeFolder(base.UserContext, navigationNodeFolder)); } else { operationResult = OperationResult.PartiallySucceeded; } } } } if (operationResult != (OperationResult)0 && list.Count == 0) { operationResult = OperationResult.Failed; } if (operationResult == OperationResult.Failed) { base.RenderPartialFailure(1041829989, OwaEventHandlerErrorCode.NotSet); } else if (operationResult == OperationResult.PartiallySucceeded) { base.RenderPartialFailure(995407892, OwaEventHandlerErrorCode.NotSet); } } else { NavigationNodeFolder navigationNodeFolder2 = navigationNode as NavigationNodeFolder; if (navigationNodeFolder2 != null && navigationNodeFolder2.IsFilteredView) { OwaStoreObjectId owaStoreObjectId2 = OwaStoreObjectId.CreateFromNavigationNodeFolder(base.UserContext, navigationNodeFolder2); using (SearchFolder searchFolder = SearchFolder.Bind(owaStoreObjectId2.GetSession(base.UserContext), owaStoreObjectId2.StoreObjectId, FolderList.FolderTreeQueryProperties)) { searchFolder[FolderSchema.SearchFolderAllowAgeout] = true; searchFolder.DisplayName = Utilities.GetRandomNameForTempFilteredView(base.UserContext); searchFolder.Save(); } } } if (operationResult == (OperationResult)0 || operationResult == OperationResult.Succeeded) { if (navigationNodeCollection.RemoveFolderOrGroupByNodeId(nodeId) != null) { navigationNodeCollection.Save(base.UserContext.MailboxSession); } } else if (operationResult == OperationResult.PartiallySucceeded) { foreach (OwaStoreObjectId owaStoreObjectId3 in list) { navigationNodeCollection.RemoveFolderByLegacyDNandId(owaStoreObjectId3.MailboxOwnerLegacyDN ?? base.UserContext.MailboxOwnerLegacyDN, owaStoreObjectId3.StoreObjectId); } navigationNodeCollection.Save(base.UserContext.MailboxSession); } } NavigationTreeDirtyFlag navigationTreeDirtyFlag = NavigationTreeDirtyFlag.None; if (navigationNodeGroupSection == NavigationNodeGroupSection.First) { navigationTreeDirtyFlag = NavigationTreeDirtyFlag.Favorites; } else { if (list.Count > 0) { List <FolderTreeNode> list3 = FolderTreeNode.CreateDeletedNodesWithDirtyCheck(base.UserContext, list, out navigationTreeDirtyFlag); this.Writer.Write("<div id=tn>"); foreach (FolderTreeNode folderTreeNode in list3) { folderTreeNode.RenderUndecoratedNode(this.Writer); } this.Writer.Write("</div>"); } switch (navigationNodeGroupSection) { case NavigationNodeGroupSection.Calendar: navigationTreeDirtyFlag |= NavigationTreeDirtyFlag.Calendar; break; case NavigationNodeGroupSection.Contacts: navigationTreeDirtyFlag |= NavigationTreeDirtyFlag.Contact; break; case NavigationNodeGroupSection.Tasks: navigationTreeDirtyFlag |= NavigationTreeDirtyFlag.Task; break; } } RenderingUtilities.RenderNavigationTreeDirtyFlag(this.Writer, base.UserContext, navigationTreeDirtyFlag, (NavigationModule[])base.GetParameter("cms")); }
public void Delete() { OwaStoreObjectId owaStoreObjectId = (OwaStoreObjectId)base.GetParameter("id"); if (owaStoreObjectId.IsOtherMailbox || owaStoreObjectId.IsGSCalendar) { throw new OwaInvalidRequestException("Cannot perform delete on shared folder"); } ExTraceGlobals.MailCallTracer.TraceDebug((long)this.GetHashCode(), "TreeEventHandler.Delete"); if (Utilities.IsDefaultFolderId(base.UserContext, owaStoreObjectId, DefaultFolderType.SearchFolders)) { throw new OwaInvalidRequestException("Cannot Delete Search Folders"); } bool flag = (bool)base.GetParameter("fSrcD"); bool flag2 = flag || owaStoreObjectId.IsPublic || (bool)base.GetParameter("pd"); NavigationTreeDirtyFlag flag3 = NavigationTreeDirtyFlag.None; using (Folder folder = Utilities.GetFolder <Folder>(base.UserContext, owaStoreObjectId, new PropertyDefinition[] { StoreObjectSchema.ContainerClass, FolderSchema.IsOutlookSearchFolder, FolderSchema.AdminFolderFlags, StoreObjectSchema.ParentEntryId })) { string className = folder.ClassName; if (Utilities.IsOutlookSearchFolder(folder)) { throw new OwaInvalidRequestException("Cannot Delete Search Folders"); } if (Utilities.IsELCFolder(folder)) { throw new OwaInvalidRequestException("Cannot Delete ELC folders."); } if (Utilities.IsOneOfTheFolderFlagsSet(folder, new ExtendedFolderFlags[] { ExtendedFolderFlags.RemoteHierarchy })) { throw new OwaInvalidRequestException("Cannot delete a folder that is controlled remotely."); } if (!flag2 || (!owaStoreObjectId.IsPublic && !flag)) { flag3 = this.CheckNavigationTreeDirtyFlag(folder, true); } } OperationResult operationResult = Utilities.Delete(base.UserContext, flag2, new OwaStoreObjectId[] { owaStoreObjectId }).OperationResult; if (operationResult == OperationResult.Failed) { Strings.IDs localizedId = flag2 ? -1691273193 : 1041829989; throw new OwaEventHandlerException("Delete returned an OperationResult.Failed", LocalizedStrings.GetNonEncoded(localizedId)); } if (operationResult == OperationResult.PartiallySucceeded) { throw new OwaAccessDeniedException(LocalizedStrings.GetNonEncoded(995407892)); } if (!flag2) { this.RenderFolderTreeChangedNode(base.UserContext.GetDeletedItemsFolderId((MailboxSession)owaStoreObjectId.GetSession(base.UserContext)), owaStoreObjectId, false, false, FolderTreeRenderType.None); } RenderingUtilities.RenderNavigationTreeDirtyFlag(this.Writer, base.UserContext, flag3, (NavigationModule[])base.GetParameter("cms")); }
public void Rename() { base.ThrowIfCannotActAsOwner(); string text = ((string)base.GetParameter("SB")).Trim(); string s = text; NavigationNodeGroupSection navigationNodeGroupSection = (NavigationNodeGroupSection)base.GetParameter("GS"); NavigationNodeCollection navigationNodeCollection = NavigationNodeCollection.TryCreateNavigationNodeCollection(base.UserContext, base.UserContext.MailboxSession, navigationNodeGroupSection); NavigationNode navigationNode = navigationNodeCollection.FindNavigationNodeByNodeId((StoreObjectId)base.GetParameter("srcNId")); if (navigationNode == null) { throw new OwaEventHandlerException("Cannot find specified navigation node", LocalizedStrings.GetNonEncoded(-289549140), true); } if (text.Length != 0) { if (navigationNode is NavigationNodeFolder) { NavigationNodeFolder navigationNodeFolder = navigationNode as NavigationNodeFolder; if (!navigationNodeFolder.IsValid) { throw new OwaInvalidRequestException("This is not a valid navigation node"); } if (navigationNodeFolder.NavigationNodeType == NavigationNodeType.SmartFolder && !navigationNodeFolder.IsFilteredView) { throw new OwaInvalidRequestException("Cannot rename search folders"); } OwaStoreObjectId owaStoreObjectId = OwaStoreObjectId.CreateFromNavigationNodeFolder(base.UserContext, navigationNodeFolder); MailboxSession mailboxSession = owaStoreObjectId.IsArchive ? ((MailboxSession)owaStoreObjectId.GetSession(base.UserContext)) : base.UserContext.MailboxSession; if (owaStoreObjectId.IsArchive && navigationNodeFolder.NavigationNodeType == NavigationNodeType.NormalFolder) { s = string.Format(LocalizedStrings.GetNonEncoded(-83764036), text, Utilities.GetMailboxOwnerDisplayName(mailboxSession)); } if (navigationNodeFolder.IsFolderInSpecificMailboxSession(mailboxSession)) { using (Folder folder = Folder.Bind(mailboxSession, navigationNodeFolder.FolderId, new PropertyDefinition[] { FolderSchema.ExtendedFolderFlags })) { if (!Utilities.CanFolderBeRenamed(base.UserContext, folder)) { throw new OwaInvalidRequestException("Folder cannot be renamed."); } folder.DisplayName = text; FolderSaveResult folderSaveResult = folder.Save(); if (folderSaveResult.OperationResult != OperationResult.Succeeded) { if (Utilities.IsFolderNameConflictError(folderSaveResult)) { throw new OwaEventHandlerException("Folder rename did not return OperationResult.Succeeded", LocalizedStrings.GetNonEncoded(1602494619), OwaEventHandlerErrorCode.FolderNameExists, true); } throw new OwaAccessDeniedException(LocalizedStrings.GetNonEncoded(995407892)); } } } } navigationNode.Subject = text; navigationNodeCollection.Save(base.UserContext.MailboxSession); this.Writer.Write("<div id=tn>"); Utilities.HtmlEncode(text, this.Writer, true); this.Writer.Write("</div><div id=ntn>"); Utilities.HtmlEncode(s, this.Writer, true); this.Writer.Write("</div>"); return; } if (navigationNode is NavigationNodeGroup) { throw new OwaEventHandlerException("User did not provide name for new group", LocalizedStrings.GetNonEncoded(-1749891264), true); } throw new OwaEventHandlerException("User did not provide name for new folder", LocalizedStrings.GetNonEncoded(-41080803), true); }
private void GetDataAndUpdateCommonViewIfNecessary(bool needGetColor) { NavigationNodeCollection navigationNodeCollection = null; NavigationNodeFolder[] array = null; if (Utilities.IsWebPartDelegateAccessRequest(OwaContext.Current) || (!needGetColor && this.FolderId.Equals(this.UserContext.CalendarFolderOwaId)) || !this.TryGetNodeFoldersFromNavigationTree(out array, out navigationNodeCollection)) { base.CalendarTitle = ((this.folder != null) ? this.folder.DisplayName : string.Empty); this.CalendarColor = -2; return; } this.CalendarColor = CalendarColorManager.GetCalendarFolderColor(this.UserContext, navigationNodeCollection, array); OwaStoreObjectId owaStoreObjectId = OwaStoreObjectId.CreateFromNavigationNodeFolder(this.UserContext, array[0]); if (owaStoreObjectId.IsArchive) { base.CalendarTitle = string.Format(LocalizedStrings.GetNonEncoded(-83764036), array[0].Subject, Utilities.GetMailboxOwnerDisplayName((MailboxSession)owaStoreObjectId.GetSession(this.UserContext))); } else { base.CalendarTitle = array[0].Subject; } foreach (NavigationNodeFolder navigationNodeFolder in array) { if (!navigationNodeFolder.IsGSCalendar && navigationNodeFolder.IsPrimarySharedCalendar) { navigationNodeFolder.UpgradeToGSCalendar(); } if (this.olderExchangeCalendarTypeInNode == NavigationNodeFolder.OlderExchangeCalendarType.Unknown) { this.olderExchangeCalendarTypeInNode = navigationNodeFolder.OlderExchangeSharedCalendarType; } } }