// Token: 0x0600305A RID: 12378 RVA: 0x0011B290 File Offset: 0x00119490 // Note: this type is marked as 'beforefieldinit'. static PolicyProvider() { PolicyProvider policyProvider = new PolicyProvider(); policyProvider.PolicyType = "DeletePolicy"; policyProvider.GetPolicies = ((MailboxSession mailboxSession) => mailboxSession.GetPolicyTagList(RetentionActionType.DeleteAndAllowRecovery)); policyProvider.GetPolicyTagFromFolder = new PolicyProvider.GetPolicyTagFromFolderDelegate(PolicyTagHelper.GetPolicyTagForDeleteFromFolder); policyProvider.GetPolicyTagFromItem = new PolicyProvider.GetPolicyTagFromItemDelegate(PolicyTagHelper.GetPolicyTagForDeleteFromItem); policyProvider.SetPolicyTagOnFolder = new PolicyProvider.SetPolicyTagOnFolderDelegate(PolicyTagHelper.SetPolicyTagForDeleteOnFolder); policyProvider.SetPolicyTagOnItem = new PolicyProvider.SetPolicyTagOnItemDelegate(PolicyTagHelper.SetPolicyTagForDeleteOnItem); policyProvider.ClearPolicyTagOnFolder = new PolicyProvider.ClearPolicyTagOnFolderDelegate(PolicyTagHelper.ClearPolicyTagForDeleteOnFolder); policyProvider.ClearPolicyTagOnItem = new PolicyProvider.ClearPolicyTagOnItemDelegate(PolicyTagHelper.ClearPolicyTagForDeleteOnItem); policyProvider.PolicyProperties = PolicyTagHelper.RetentionProperties; PolicyProvider.DeletePolicyProvider = policyProvider; PolicyProvider policyProvider2 = new PolicyProvider(); policyProvider2.PolicyType = "MovePolicy"; policyProvider2.GetPolicies = ((MailboxSession mailboxSession) => mailboxSession.GetPolicyTagList(RetentionActionType.MoveToArchive)); policyProvider2.GetPolicyTagFromFolder = new PolicyProvider.GetPolicyTagFromFolderDelegate(PolicyTagHelper.GetPolicyTagForArchiveFromFolder); policyProvider2.GetPolicyTagFromItem = delegate(StoreObject item, out bool isExplicit, out DateTime? moveToArchive) { bool flag; return(PolicyTagHelper.GetPolicyTagForArchiveFromItem(item, out isExplicit, out flag, out moveToArchive)); }; policyProvider2.SetPolicyTagOnFolder = new PolicyProvider.SetPolicyTagOnFolderDelegate(PolicyTagHelper.SetPolicyTagForArchiveOnFolder); policyProvider2.SetPolicyTagOnItem = new PolicyProvider.SetPolicyTagOnItemDelegate(PolicyTagHelper.SetPolicyTagForArchiveOnItem); policyProvider2.ClearPolicyTagOnFolder = new PolicyProvider.ClearPolicyTagOnFolderDelegate(PolicyTagHelper.ClearPolicyTagForArchiveOnFolder); policyProvider2.ClearPolicyTagOnItem = new PolicyProvider.ClearPolicyTagOnItemDelegate(PolicyTagHelper.ClearPolicyTagForArchiveOnItem); policyProvider2.PolicyProperties = PolicyTagHelper.ArchiveProperties; PolicyProvider.MovePolicyProvider = policyProvider2; }
internal void Save(Notification notification) { this.CheckDisposed(); using (Folder folder = Folder.Bind(this.mailboxSession, this.GetNotificationsFolderId(notification.EventSource, true))) { using (MessageItem messageItem = MessageItem.Create(this.mailboxSession, folder.Id)) { messageItem[TenantNotificationMessageSchema.MonitoringUniqueId] = notification.Identity.GetBytes(); messageItem[TenantNotificationMessageSchema.MonitoringEventInstanceId] = notification.EventInstanceId; messageItem[TenantNotificationMessageSchema.MonitoringEventSource] = notification.EventSource; messageItem[TenantNotificationMessageSchema.MonitoringEventCategoryId] = notification.EventCategoryId; messageItem[TenantNotificationMessageSchema.MonitoringEventTimeUtc] = notification.EventTimeUtc; messageItem[TenantNotificationMessageSchema.MonitoringEventEntryType] = notification.EntryType; messageItem[TenantNotificationMessageSchema.MonitoringInsertionStrings] = notification.InsertionStrings.ToArray <string>(); messageItem[TenantNotificationMessageSchema.MonitoringNotificationEmailSent] = notification.EmailSent; messageItem[TenantNotificationMessageSchema.MonitoringCreationTimeUtc] = notification.CreationTimeUtc; messageItem[TenantNotificationMessageSchema.MonitoringNotificationRecipients] = notification.NotificationRecipients.ToArray(); messageItem[TenantNotificationMessageSchema.MonitoringHashCodeForDuplicateDetection] = notification.ComputeHashCodeForDuplicateDetection(); messageItem[TenantNotificationMessageSchema.MonitoringNotificationMessageIds] = notification.NotificationMessageIds.ToArray(); messageItem[TenantNotificationMessageSchema.MonitoringEventPeriodicKey] = notification.PeriodicKey; messageItem[ItemSchema.Subject] = string.Format(CultureInfo.InvariantCulture, "creation-time:{0}; event-source:{1}; event-category-id:{2}; event-id:{3}; email-sent:{4}; periodic-key:{5};", new object[] { notification.CreationTimeUtc, notification.EventSource, notification.EventCategoryId, notification.EventInstanceId, notification.EmailSent, notification.PeriodicKey }); PolicyTagHelper.SetRetentionProperties(messageItem, ExDateTime.UtcNow.AddDays(14.0), 14); messageItem.Save(SaveMode.NoConflictResolution); } } if (notification.EmailSent) { using (Folder folder2 = Folder.Bind(this.mailboxSession, this.GetTenantNotificationsFolderId(), NotificationDataProvider.NotificationDataStore.FolderColumns)) { long valueOrDefault = folder2.GetValueOrDefault <long>(TenantNotificationMessageSchema.MonitoringCountOfNotificationsSentInPast24Hours, 0L); folder2[TenantNotificationMessageSchema.MonitoringCountOfNotificationsSentInPast24Hours] = NotificationDataProvider.NotificationDataStore.NotificationCountPropertyHelper.IncrementCount(valueOrDefault, notification.CreationTimeUtc); folder2.Save(SaveMode.NoConflictResolution); } } }
public override void Process(StoreDriverDeliveryEventArgsImpl argsImpl, Action action, int traceId) { AbstractActionProcessor.Tracer.TraceDebug((long)traceId, "WorkingSetAgent.AddExchangeItemProcessor.Process: entering"); MailboxSession mailboxSession = argsImpl.MailboxSession; string workingSetSourcePartition = WorkingSetUtils.GetWorkingSetSourcePartition(action.Item); string workingSetSourcePartitionInternal = WorkingSetUtils.GetWorkingSetSourcePartitionInternal(action.Item); StoreObjectId workingSetPartitionFolderId = WorkingSetUtils.GetWorkingSetPartitionFolderId(mailboxSession, workingSetSourcePartition, workingSetSourcePartitionInternal); using (Item item = ((ExchangeItem)action.Item).Item) { using (MessageItem messageItem = MessageItem.Create(mailboxSession, workingSetPartitionFolderId)) { messageItem.ClassName = item.ClassName; Body.CopyBody(item.Body, messageItem.Body, CultureInfo.InvariantCulture, false, false); Item.CopyItemContent(item, messageItem); if (workingSetSourcePartition != null) { messageItem.WorkingSetSourcePartition = workingSetSourcePartition; } WorkingSetSource sourceSystemCode = (WorkingSetSource)action.Item.SourceSystemCode; WorkingSetFlags workingSetFlags = WorkingSetUtils.GetWorkingSetFlags(sourceSystemCode); messageItem.WorkingSetId = action.Item.Identifier; messageItem.WorkingSetSource = sourceSystemCode; messageItem.WorkingSetFlags = workingSetFlags; PolicyTagHelper.SetRetentionProperties(messageItem, ExDateTime.UtcNow.AddDays(30.0), 30); messageItem.AutoResponseSuppress = AutoResponseSuppress.All; messageItem.Save(SaveMode.NoConflictResolutionForceSave); AbstractActionProcessor.Tracer.TraceDebug((long)traceId, "WorkingSetAgent.AddExchangeItemProcessor.Process: workingSetSource - {0}, workingSetFlags - {1}, workingSetSoucePartition - {2}, folder - {3}", new object[] { sourceSystemCode, workingSetFlags, workingSetSourcePartition, workingSetPartitionFolderId }); } } WorkingSet.AddExchangeItem.Increment(); WorkingSet.AddItem.Increment(); argsImpl.MailRecipient.DsnRequested = DsnRequestedFlags.Never; throw new SmtpResponseException(AddExchangeItemProcessor.processedAddExchangeItemSignalMailResponse, this.actionProcessorFactory.WorkingSetAgent.Name); }
private bool TryParkThisMessage(StoreDriverDeliveryEventArgsImpl args, MeetingSeriesMessageOrderingAgent.SeriesHeadersData headersData) { Guid networkMessageId = args.MailItemDeliver.MbxTransportMailItem.NetworkMessageId; this.AddUnparkedHeader(args.MailItem.Message.MimeDocument.RootPart.Headers, networkMessageId); bool encapsulationSucceeded = true; string text; bool encapsulationSucceeded2; using (EmailMessage emailMessage = ModerationHelper.EncapsulateOriginalMessage(args.MailItemDeliver.MbxTransportMailItem, new List <MailRecipient> { args.MailRecipient }, args.MailRecipient.Email.ToString(), args.MailRecipient.Email.ToString(), MeetingSeriesMessageOrderingAgent.tracer, delegate(Exception param0) { encapsulationSucceeded = false; }, out text)) { if (encapsulationSucceeded) { MailboxSession mailboxSession = args.MailboxSession; using (ParkedMeetingMessage parkedMeetingMessage = ParkedMeetingMessage.Create(mailboxSession)) { if (parkedMeetingMessage != null) { string internetMessageId = args.MailItemDeliver.MbxTransportMailItem.InternetMessageId; ItemConversion.ConvertAnyMimeToItem(parkedMeetingMessage, emailMessage.MimeDocument, new InboundConversionOptions(args.ADRecipientCache)); parkedMeetingMessage.ParkedCorrelationId = ParkedMeetingMessage.GetCorrelationId(headersData.SeriesId, headersData.SeriesSequenceNumber); parkedMeetingMessage[StoreObjectSchema.ItemClass] = "IPM.Parked.MeetingMessage"; parkedMeetingMessage.CleanGlobalObjectId = headersData.InstanceGoid; parkedMeetingMessage.OriginalMessageId = internetMessageId; int retentionPeriod = MeetingSeriesMessageOrderingAgent.GetRetentionPeriod(args.MailboxOwner); PolicyTagHelper.SetRetentionProperties(parkedMeetingMessage, ExDateTime.UtcNow.AddDays((double)retentionPeriod), retentionPeriod); parkedMeetingMessage.Save(SaveMode.NoConflictResolution); } } } encapsulationSucceeded2 = encapsulationSucceeded; } return(encapsulationSucceeded2); }