Пример #1
0
        // Token: 0x06000333 RID: 819 RVA: 0x0001423C File Offset: 0x0001243C
        internal override void ExecuteTheDoomed()
        {
            ICollection values = this.moveLists.Values;

            if (values.Count > 0)
            {
                foreach (object obj in values)
                {
                    MovePolicyItems movePolicyItems = (MovePolicyItems)obj;
                    if (movePolicyItems.SetDateWhileMoving)
                    {
                        this.ExpireInBatches(movePolicyItems.ItemList, ExpirationExecutor.Action.MoveToFolderAndSet, new StoreObjectId[]
                        {
                            movePolicyItems.DestinationFolderId
                        });
                    }
                    else
                    {
                        this.ExpireInBatches(movePolicyItems.ItemList, ExpirationExecutor.Action.MoveToFolder, new StoreObjectId[]
                        {
                            movePolicyItems.DestinationFolderId
                        });
                    }
                    FolderExpirationExecutor.Tracer.TraceDebug <FolderExpirationExecutor, int, StoreObjectId>((long)this.GetHashCode(), "{0}: {1} items moved to destination folder: '{2}'.", this, movePolicyItems.ItemList.Count, movePolicyItems.DestinationFolderId);
                    ExpirationExecutor.TracerPfd.TracePfd((long)this.GetHashCode(), "PFD IWE {0} {1}: {2} items moved to destination folder: '{3}'.", new object[]
                    {
                        22807,
                        this,
                        movePolicyItems.ItemList.Count,
                        movePolicyItems.DestinationFolderId
                    });
                }
            }
            ItemUpdater itemUpdater = new ItemUpdater((MailboxDataForFolders)base.MailboxData, this.provisionedFolder, base.ElcAssistant);

            if (this.expiryTimeList.Count > 0)
            {
                int num = itemUpdater.SetProperty(this.expiryTimeList, MessageItemSchema.ExpiryTime, base.MailboxData.UtcNow);
                ELCPerfmon.TotalItemsTagged.IncrementBy((long)num);
                ELCPerfmon.TotalItemsExpired.IncrementBy((long)num);
                FolderExpirationExecutor.Tracer.TraceDebug <FolderExpirationExecutor, int, int>((long)this.GetHashCode(), "{0}: {1} items in ExpiryTime tag list. Setting property completed on {2} items.", this, this.expiryTimeList.Count, num);
            }
            if (this.moveDateStampingList.Count > 0)
            {
                CompositeProperty compositeProperty = new CompositeProperty(Server.Exchange2007MajorVersion, base.MailboxData.Now);
                byte[]            bytes             = compositeProperty.GetBytes();
                itemUpdater.SetProperty(this.moveDateStampingList, ItemSchema.ElcMoveDate, bytes);
                FolderExpirationExecutor.Tracer.TraceDebug <FolderExpirationExecutor, int>((long)this.GetHashCode(), "{0}: {1} items in MoveDate stamping list. Setting property completed.", this, this.expiryTimeList.Count);
            }
            base.ExecuteTheDoomed();
        }
Пример #2
0
        // Token: 0x06000494 RID: 1172 RVA: 0x00021100 File Offset: 0x0001F300
        private DateTime UpdateStartDateEtc(VersionedId itemId, string itemClass, object[] itemProperties)
        {
            CompositeProperty compositeProperty = new CompositeProperty();

            try
            {
                if (itemProperties[this.propertyIndexHolder.StartDateEtcIndex] is byte[])
                {
                    compositeProperty = CompositeProperty.Parse((byte[])itemProperties[this.propertyIndexHolder.StartDateEtcIndex], true);
                }
            }
            catch (ArgumentException arg)
            {
                PropertySynchronizerBase.Tracer.TraceError <ItemPropertySynchronizer, string, ArgumentException>((long)this.GetHashCode(), "{0}: Could not parse StartDateEtc property of item. ItemClass: {1} Exception: {2}.", this, itemClass, arg);
            }
            bool flag  = this.UpdateStartDate(compositeProperty, itemId, itemClass, itemProperties);
            bool flag2 = this.UpdateDefaultRetentionPeriod(compositeProperty, itemClass);

            if (flag || flag2)
            {
                base.PropertiesToBeUpdated.Add(ItemSchema.StartDateEtc, compositeProperty.GetBytes(true));
            }
            return(compositeProperty.Date.Value);
        }