Esempio n. 1
0
 private GroupOperationResult SetRetentionPolicyInternal(StoreObjectId itemId, PolicyTag policyTag, bool isArchiveAction)
 {
     PropertyDefinition[] propsToReturn = isArchiveAction ? PolicyTagHelper.ArchiveProperties : PolicyTagHelper.RetentionProperties;
     using (Item item = Item.Bind(this.session, itemId, propsToReturn))
     {
         item.OpenAsReadWrite();
         if (isArchiveAction)
         {
             if (policyTag == null)
             {
                 PolicyTagHelper.ClearPolicyTagForArchiveOnItem(item);
             }
             else
             {
                 PolicyTagHelper.SetPolicyTagForArchiveOnItem(policyTag, item);
             }
         }
         else if (policyTag == null)
         {
             PolicyTagHelper.ClearPolicyTagForDeleteOnItem(item);
         }
         else
         {
             PolicyTagHelper.SetPolicyTagForDeleteOnItem(policyTag, item);
         }
         item.Save(SaveMode.ResolveConflicts);
     }
     return(new GroupOperationResult(OperationResult.Succeeded, new StoreObjectId[]
     {
         itemId
     }, null));
 }
Esempio n. 2
0
        public static void SetPolicyTagForDeleteOnNewItem(PolicyTag policyTag, StoreObject item)
        {
            item[StoreObjectSchema.PolicyTag]      = policyTag.PolicyGuid.ToByteArray();
            item[StoreObjectSchema.RetentionFlags] = 0;
            CompositeRetentionProperty setStartDateEtc = PolicyTagHelper.GetSetStartDateEtc(policyTag, item);

            if (policyTag.TimeSpanForRetention.TotalDays > 0.0)
            {
                item[InternalSchema.RetentionPeriod] = (int)policyTag.TimeSpanForRetention.TotalDays;
                item[InternalSchema.RetentionDate]   = PolicyTagHelper.CalculateExecutionDate(setStartDateEtc, policyTag.TimeSpanForRetention.TotalDays);
            }
        }
Esempio n. 3
0
        public static void SetKeepInPlaceForArchiveOnItem(StoreObject item)
        {
            PolicyTagHelper.ClearPolicyTagForArchiveOnItem(item);
            object valueOrDefault = item.GetValueOrDefault <object>(StoreObjectSchema.RetentionFlags);
            RetentionAndArchiveFlags retentionAndArchiveFlags;

            if (valueOrDefault != null && valueOrDefault is int)
            {
                retentionAndArchiveFlags = (RetentionAndArchiveFlags)((int)valueOrDefault | 32);
            }
            else
            {
                retentionAndArchiveFlags = RetentionAndArchiveFlags.KeepInPlace;
            }
            item[StoreObjectSchema.RetentionFlags] = (int)retentionAndArchiveFlags;
        }
 private void SetExpiration()
 {
     PolicyTagHelper.SetRetentionProperties(this, ExDateTime.Now.AddDays(30.0), 30);
 }