public static StoreObjectId GetOrCreateAdminAuditLogsFolderId(MailboxSession mailboxSession) { StoreObjectId storeObjectId = mailboxSession.GetAdminAuditLogsFolderId(); if (storeObjectId == null) { if (mailboxSession.GetDefaultFolderId(DefaultFolderType.RecoverableItemsRoot) == null) { AdminAuditLogHelper.Tracer.TraceDebug <string>(0L, "AdminAuditLogHelper: Create the folder 'RecoverableItemsRoot' in the mailbox '{0}'", mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString()); mailboxSession.CreateDefaultFolder(DefaultFolderType.RecoverableItemsRoot); } AdminAuditLogHelper.Tracer.TraceDebug <string>(0L, "AdminAuditLogHelper: Create the folder 'AdminAuditLogs' in the mailbox '{0}'", mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString()); storeObjectId = mailboxSession.CreateDefaultFolder(DefaultFolderType.AdminAuditLogs); } return(storeObjectId); }
private void ChangeDestinationFolder(DefaultFolderType folderType, StoreDriverDeliveryEventArgs args) { StoreDriverDeliveryEventArgsImpl storeDriverDeliveryEventArgsImpl = (StoreDriverDeliveryEventArgsImpl)args; string text = args.MailItem.FromAddress.ToString(); MailboxSession mailboxSession = storeDriverDeliveryEventArgsImpl.MailboxSession; string text2 = storeDriverDeliveryEventArgsImpl.MailRecipient.MsgId.ToString(); bool flag = this.IsSourceEhaMigration(storeDriverDeliveryEventArgsImpl.MailItem, text2); UnJournalAgent.Tracer.TraceDebug(0L, "ChangeDestinationFolder: MessageId {0}, Sender {1}, isSourceEha {2}, folderType {3} ", new object[] { text2, text, flag.ToString(), folderType.ToString() }); if (DefaultFolderType.LegacyArchiveJournals == folderType || !flag) { UnJournalAgent.Tracer.TraceDebug <string, string>(0L, "ChangeDestinationFolder: MessageId {0}, Sender {1}, Source is not EHA or this is directed to legacyarchivejournals folder in journalndr mailbox", text2, text); StoreId storeId = mailboxSession.GetDefaultFolderId(folderType); if (storeId == null) { storeId = mailboxSession.CreateDefaultFolder(folderType); } if (storeId != null) { storeDriverDeliveryEventArgsImpl.DeliverToFolder = storeId; return; } } else { UnJournalAgent.Tracer.TraceDebug <string, string>(0L, "ChangeDestinationFolder: MessageId {0}, Sender {1}, This is a migration message from EHA, put it in the hidden folder", text2, text); storeDriverDeliveryEventArgsImpl.DeliverToFolder = this.GetCreateFolderIdUnderGivenParentFolder("MigrationFolder", folderType.ToString(), mailboxSession); } }
public static void CheckAndCreateDefaultFolders(MailboxSession session) { if (session.GetDefaultFolderId(DefaultFolderType.AllItems) == null) { session.CreateDefaultFolder(DefaultFolderType.AllItems); } }
internal static Folder CreateELCRootFolder(MailboxSession mailboxSession, string elcRootUrl) { string arg = mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString(); ProvisionedFolderCreator.Tracer.TraceDebug <string>(0L, "'{0}': Attempting to create the ELC Root Folder.", arg); if (mailboxSession.CreateDefaultFolder(DefaultFolderType.ElcRoot) == null) { throw new ELCRootFailureException(Strings.descFailedToCreateELCRoot(mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString()), null); } Folder folder = Folder.Bind(mailboxSession, DefaultFolderType.ElcRoot, new PropertyDefinition[] { FolderSchema.FolderHomePageUrl }); if (!string.IsNullOrEmpty(elcRootUrl)) { ProvisionedFolderCreator.Tracer.TraceDebug <string, string>(0L, "'{0}': Attempting to set the ELC Root Folder URL to '{1}'.", arg, elcRootUrl); ElcMailboxHelper.SetPropAndTrace(folder, FolderSchema.FolderHomePageUrl, elcRootUrl); folder.ClassName = Globals.ElcRootFolderClass; FolderSaveResult folderSaveResult = folder.Save(); if (folderSaveResult.OperationResult != OperationResult.Succeeded) { ProvisionedFolderCreator.Tracer.TraceError <SmtpAddress>(0L, "{0}: Unable to set the ELC Root Folder home page. Will attempt this again on the next run.", mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress); } folder.Load(); } return(folder); }
private SearchFolder GetSearchFolder(MailboxSession session) { bool flag = false; StoreObjectId storeObjectId = this.GetCvsFolderIdIfPresent(session); SearchFolder searchFolder = null; try { if (storeObjectId == null) { storeObjectId = session.CreateDefaultFolder(DefaultFolderType.CalendarVersionStore); } try { searchFolder = SearchFolder.Bind(session, storeObjectId); } catch (ObjectNotFoundException innerException) { ExTraceGlobals.DefaultFoldersTracer.TraceError <string, StoreObjectId>((long)this.GetHashCode(), "CalendarVersionStoreGateway::GetSearchFolder - No item is found with the CVS search folder ID (Session Display Name: {0}; Folder ID: {1}).", session.DisplayName, storeObjectId); throw new CalendarVersionStoreNotPopulatedException(false, SearchState.None, TimeSpan.Zero, innerException); } catch (WrongObjectTypeException innerException2) { ExTraceGlobals.DefaultFoldersTracer.TraceError <string, StoreObjectId>((long)this.GetHashCode(), "CalendarVersionStoreGateway::GetSearchFolder - The CVS search folder ID does not belong to a search folder (Session Display Name: {0}; Folder ID: {1}).", session.DisplayName, storeObjectId); throw new CalendarVersionStoreNotPopulatedException(false, SearchState.None, TimeSpan.Zero, innerException2); } SearchState folderState; if (!this.IsSearchFolderPopulated(searchFolder, out folderState)) { if (this.Policy.WaitForPopulation) { using (SearchFolderAsyncSearch searchFolderAsyncSearch = new SearchFolderAsyncSearch(session, storeObjectId, null, null)) { if (!this.IsSearchFolderPopulated(searchFolder, out folderState) && !searchFolderAsyncSearch.AsyncResult.AsyncWaitHandle.WaitOne(this.Policy.WaitTimeForPopulation)) { ExTraceGlobals.DefaultFoldersTracer.TraceDebug <TimeSpan, string>((long)this.GetHashCode(), "CalendarVersionStoreGateway::GetSearchFolder - The CVS search folder is not populated, and timeout ({0}) is passed (Session Display Name: {1}).", this.Policy.WaitTimeForPopulation, session.DisplayName); throw new CalendarVersionStoreNotPopulatedException(true, folderState, this.Policy.WaitTimeForPopulation); } goto IL_151; } } ExTraceGlobals.DefaultFoldersTracer.TraceDebug <string>((long)this.GetHashCode(), "CalendarVersionStoreGateway::GetSearchFolder - The CVS search folder is not populated, and query policy has no wait time specified (Session Display Name: {0}).", session.DisplayName); throw new CalendarVersionStoreNotPopulatedException(true, folderState, TimeSpan.Zero); } IL_151: flag = true; } finally { if (!flag && searchFolder != null) { searchFolder.Dispose(); } } return(searchFolder); }
public static StoreObjectId GetConversationActionsFolderId(MailboxSession session, bool createIfMissing) { Util.ThrowOnNullArgument(session, "session"); StoreObjectId storeObjectId = session.GetDefaultFolderId(DefaultFolderType.ConversationActions); if (storeObjectId == null && createIfMissing) { storeObjectId = session.CreateDefaultFolder(DefaultFolderType.ConversationActions); } return(storeObjectId); }
// Token: 0x06000AB2 RID: 2738 RVA: 0x00045DB4 File Offset: 0x00043FB4 private static StoreObjectId GetUMSearchFolderId(MailboxSession itemStore) { StoreObjectId storeObjectId = itemStore.GetDefaultFolderId(DefaultFolderType.UMVoicemail); if (storeObjectId == null) { ExTraceGlobals.MWITracer.TraceDebug <string>(0L, "MwiAssistant.GetUMSearchFolderId(): Creating search folder for user {0}", itemStore.MailboxOwner.MailboxInfo.DisplayName); storeObjectId = itemStore.CreateDefaultFolder(DefaultFolderType.UMVoicemail); } return(storeObjectId); }
public static ParkedMeetingMessage Create(MailboxSession mailboxSession) { StoreObjectId storeObjectId = mailboxSession.GetDefaultFolderId(DefaultFolderType.ParkedMessages); if (storeObjectId == null) { storeObjectId = mailboxSession.CreateDefaultFolder(DefaultFolderType.ParkedMessages); } ParkedMeetingMessage parkedMeetingMessage = ItemBuilder.CreateNewItem <ParkedMeetingMessage>(mailboxSession, storeObjectId, ItemCreateInfo.ParkedMeetingMessageInfo); parkedMeetingMessage[StoreObjectSchema.ItemClass] = "IPM.Parked.MeetingMessage"; return(parkedMeetingMessage); }
public static StoreObjectId EnsureSyncIssueFolder(MailboxSession session) { if (!Utils.IsTeamMailbox(session)) { throw new ArgumentException("session must be associated with a TeamMailbox"); } StoreObjectId storeObjectId = session.GetDefaultFolderId(DefaultFolderType.DocumentSyncIssues); if (storeObjectId == null) { storeObjectId = session.CreateDefaultFolder(DefaultFolderType.DocumentSyncIssues); } return(storeObjectId); }
private StoreId GetSentItemsFolderIdBySource(DeliverableMailItem mailItem, string messageId, MailboxSession session) { if (this.IsSourceEhaMigration(mailItem, messageId)) { return(this.GetCreateFolderIdUnderGivenParentFolder("MigrationFolder", DefaultFolderType.SentItems.ToString(), session)); } StoreId storeId = session.GetDefaultFolderId(DefaultFolderType.SentItems); if (storeId == null) { storeId = session.CreateDefaultFolder(DefaultFolderType.SentItems); } return(storeId); }
public static void EnableBirthdayCalendar(MailboxSession session) { if (!BirthdayCalendar.UserHasBirthdayCalendarFolder(session)) { ExTraceGlobals.BirthdayCalendarTracer.TraceDebug <Guid>(0L, "BirthdayCalendar::EnableBirthdayCalendar CreateDefaultFolder. MailboxGuid:{0}", session.MailboxGuid); session.CreateDefaultFolder(DefaultFolderType.BirthdayCalendar); return; } ExTraceGlobals.BirthdayCalendarTracer.TraceDebug <Guid>(0L, "BirthdayCalendar::EnableBirthdayCalendar BindWithRecovery. MailboxGuid:{0}", session.MailboxGuid); BirthdayCalendar.BindWithRecovery(session, delegate(CalendarFolder birthdayCalendar) { BirthdayCalendar.SetBirthdayCalendarHiddenValue(birthdayCalendar, false); }); }
public static StoreObjectId ValidateClutterFolder(MailboxSession session) { StoreObjectId storeObjectId = session.GetDefaultFolderId(DefaultFolderType.Clutter); if (storeObjectId == null) { storeObjectId = session.CreateDefaultFolder(DefaultFolderType.Clutter); } else { session.TryFixDefaultFolderId(DefaultFolderType.Clutter, out storeObjectId); } return(storeObjectId); }
internal static Folder GetSyncFolderRoot(MailboxSession mailboxSession, ISyncLogger syncLogger = null) { if (syncLogger == null) { syncLogger = TracingLogger.Singleton; } StoreObjectId storeObjectId = mailboxSession.GetDefaultFolderId(DefaultFolderType.SyncRoot); if (storeObjectId == null) { syncLogger.TraceDebug <Guid>(ExTraceGlobals.SyncTracer, 0L, "[SyncStateStorage.GetSyncFolderRoot] ExchangeSyncData folder missing for mailbox {0}. Creating it now.", mailboxSession.MailboxGuid); storeObjectId = mailboxSession.CreateDefaultFolder(DefaultFolderType.SyncRoot); } return(Folder.Bind(mailboxSession, storeObjectId, SyncStateStorage.loggingEnabledAsArray)); }
public static void CheckAndCreateFolder(MailboxSession session) { Util.ThrowOnNullArgument(session, "session"); if (session.LogonType == LogonType.Delegated) { return; } foreach (DefaultFolderType defaultFolderType in DumpsterFolderHelper.dumpsterFoldersTypes) { if (session.GetDefaultFolderId(defaultFolderType) == null) { StoreObjectId storeObjectId = session.CreateDefaultFolder(defaultFolderType); session.GetDefaultFolderId(defaultFolderType); } } }
internal static void SendMessage(MailboxSession mailboxSession, ADUser groupAdUser, string attachedMessageBody) { ArgumentValidator.ThrowIfNull("groupMailbox", mailboxSession); ArgumentValidator.ThrowIfNull("groupAdUser", groupAdUser); ArgumentValidator.ThrowIfNull("attachedMessageBody", attachedMessageBody); StoreObjectId storeObjectId = mailboxSession.GetDefaultFolderId(DefaultFolderType.TemporarySaves); if (storeObjectId == null) { storeObjectId = mailboxSession.CreateDefaultFolder(DefaultFolderType.TemporarySaves); } using (GroupMailboxJoinRequestMessageItem groupMailboxJoinRequestMessageItem = GroupMailboxJoinRequestMessageItem.Create(mailboxSession, storeObjectId)) { new GroupJoinRequestMessageComposer(mailboxSession, groupAdUser, attachedMessageBody).WriteToMessage(groupMailboxJoinRequestMessageItem); groupMailboxJoinRequestMessageItem.Send(); } }
private static Folder SafeBindToWorkingSetFolder(StoreSession session) { Folder result = null; try { result = Folder.Bind(session, DefaultFolderType.WorkingSet); } catch (ObjectNotFoundException) { MailboxSession mailboxSession = session as MailboxSession; if (mailboxSession == null) { throw; } mailboxSession.CreateDefaultFolder(DefaultFolderType.WorkingSet); result = Folder.Bind(session, DefaultFolderType.WorkingSet); } return(result); }
private Folder GetSyncRootFolder(MailboxSession mailboxSession, ISyncLogger syncLogger = null) { if (syncLogger == null) { syncLogger = TracingLogger.Singleton; } Folder result = null; try { result = Folder.Bind(mailboxSession, DefaultFolderType.SyncRoot); } catch (ObjectNotFoundException) { syncLogger.TraceDebug <SmtpAddress>(ExTraceGlobals.SyncTracer, (long)this.GetHashCode(), "[UserSyncStateMetadata.GetDevice] Missing SyncRoot folder for mailbox {0}. Recreating.", mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress); mailboxSession.CreateDefaultFolder(DefaultFolderType.SyncRoot); result = Folder.Bind(mailboxSession, DefaultFolderType.SyncRoot); } return(result); }
private void GetELCItemProperties(MailboxSession mailboxSession, string messageId) { if (mailboxSession.GetDefaultFolderId(DefaultFolderType.AllItems) == null) { mailboxSession.CreateDefaultFolder(DefaultFolderType.AllItems); } QueryFilter queryFilter = new ComparisonFilter(ComparisonOperator.Equal, ItemSchema.InternetMessageId, messageId); object[][] array = null; foreach (DefaultFolderType defaultFolderType in TestArchiveConnectivityTask.mailboxFolders) { if (mailboxSession.GetDefaultFolderId(defaultFolderType) != null) { using (Folder folder = Folder.Bind(mailboxSession, defaultFolderType)) { using (QueryResult queryResult = folder.ItemQuery(ItemQueryType.None, queryFilter, null, new PropertyDefinition[] { ItemSchema.Id, StoreObjectSchema.ParentItemId })) { array = queryResult.GetRows(queryResult.EstimatedRowCount); if (array.Length > 0) { for (int j = 0; j < array.Length; j++) { VersionedId storeId = (VersionedId)array[j][0]; using (Item item = Item.Bind(mailboxSession, storeId, TestArchiveConnectivityTask.mrmStoreProps)) { if (item != null) { this.mrmPropReport.AppendLine(this.GetMRMProps(item)); } } } } } } } } }
private MessageItem CreateMessageItemForPublishing(CoreItem coreItem, out Participant[] participantsOnOriginalMessage, IWorkingSetPublisherPerformanceTracker performanceTracker) { MailboxSession mailboxSession = coreItem.Session as MailboxSession; StoreObjectId storeObjectId = mailboxSession.GetDefaultFolderId(DefaultFolderType.TemporarySaves); if (storeObjectId == null) { storeObjectId = mailboxSession.CreateDefaultFolder(DefaultFolderType.TemporarySaves); } MessageItem messageItem = MessageItem.Create(mailboxSession, storeObjectId); CoreItem.CopyItemContent(coreItem, messageItem.CoreItem); participantsOnOriginalMessage = new Participant[messageItem.Recipients.Count]; int num = 0; foreach (Recipient recipient in messageItem.Recipients) { participantsOnOriginalMessage[num] = recipient.Participant; num++; } Participant participant = new Participant(mailboxSession.MailboxOwner); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); if (!participant.ExistIn(participantsOnOriginalMessage)) { messageItem.Recipients.Add(participant, RecipientItemType.To); performanceTracker.IsGroupParticipantAddedToParticipants = true; } stopwatch.Stop(); performanceTracker.EnsureGroupParticipantAddedMilliseconds = stopwatch.ElapsedMilliseconds; stopwatch.Reset(); messageItem.Save(SaveMode.NoConflictResolutionForceSave); messageItem.Load(); return(messageItem); }
private void ComposeAndDeliverMessage(MailboxSession session, StoreObjectId draftsFolderId, IMailboxLocator recipient, IMailboxAssociationPerformanceTracker performanceTracker, IExtensibleLogger logger) { EmailNotificationHandler.Tracer.TraceDebug <IMailboxLocator, string>((long)this.GetHashCode(), "EmailNotificationHandler.ComposeAndDeliverMessage: Processing recipient {0}. Group {1}.", recipient, this.groupMailbox.ExternalDirectoryObjectId); using (MessageItem messageItem = MessageItem.Create(session, draftsFolderId)) { ADUser recipient2 = recipient.FindAdUser(); IMessageComposer messageComposer = this.messageComposerBuilder.Build(recipient2); messageComposer.WriteToMessage(messageItem); bool flag = false; if (this.groupMailbox.WhenCreatedUTC != null) { TimeSpan timeSpan = DateTime.UtcNow - this.groupMailbox.WhenCreatedUTC.Value; if (timeSpan < EmailNotificationHandler.DelaySendTime) { messageItem[MessageItemSchema.DeferredSendTime] = DateTime.UtcNow + EmailNotificationHandler.DelaySendTime - timeSpan; flag = true; } } else { messageItem[MessageItemSchema.DeferredSendTime] = DateTime.UtcNow + EmailNotificationHandler.DelaySendTime; flag = true; } if (flag) { logger.LogEvent(new SchemaBasedLogEvent <MailboxAssociationLogSchema.Warning> { { MailboxAssociationLogSchema.Warning.Context, "EmailNotificationHandler" }, { MailboxAssociationLogSchema.Warning.Message, string.Format("Welcome email for recipient {0}, Group {1} is delayed to send", recipient, this.groupMailbox.ExternalDirectoryObjectId) } }); EmailNotificationHandler.Tracer.TraceDebug <IMailboxLocator, string>((long)this.GetHashCode(), "EmailNotificationHandler.ComposeAndDeliverMessage: Welcome email for recipient {0}, Group {1} is delayed to send.", recipient, this.groupMailbox.ExternalDirectoryObjectId); } StoreObjectId saveSentMessageFolder = session.GetDefaultFolderId(DefaultFolderType.TemporarySaves) ?? session.CreateDefaultFolder(DefaultFolderType.TemporarySaves); messageItem.Send(saveSentMessageFolder, SubmitMessageFlags.IgnoreSendAsRight); performanceTracker.IncrementAssociationsUpdated(); } }