Пример #1
0
        public static Dictionary <Guid, StoreTagData> Deserialize(UserConfiguration configItem, IExchangePrincipal mailboxOwner, out List <Guid> deletedTags, out bool fullCrawlRequired)
        {
            RetentionHoldData retentionHoldData;
            Dictionary <Guid, StoreTagData> dictionary;

            return(MrmFaiFormatter.Deserialize(configItem, mailboxOwner, out deletedTags, out retentionHoldData, false, out dictionary, out fullCrawlRequired));
        }
Пример #2
0
        internal static Dictionary <Guid, StoreTagData> Deserialize(UserConfiguration configItem, IExchangePrincipal mailboxOwner)
        {
            List <Guid>       list;
            RetentionHoldData retentionHoldData;
            Dictionary <Guid, StoreTagData> dictionary;
            bool flag;

            return(MrmFaiFormatter.Deserialize(configItem, mailboxOwner, out list, out retentionHoldData, false, out dictionary, out flag));
        }
Пример #3
0
        internal static Dictionary <Guid, StoreTagData> Deserialize(byte[] xmlData, IExchangePrincipal mailboxOwner, out List <Guid> deletedTags, out RetentionHoldData retentionHoldData, bool returnRetentionHoldData, out Dictionary <Guid, StoreTagData> defaultArchiveTagData, out bool fullCrawlRequired)
        {
            Dictionary <Guid, StoreTagData> result;

            using (Stream stream = new MemoryStream(xmlData))
            {
                result = MrmFaiFormatter.Deserialize(stream, mailboxOwner, out deletedTags, out retentionHoldData, returnRetentionHoldData, out defaultArchiveTagData, out fullCrawlRequired);
            }
            return(result);
        }
Пример #4
0
        internal static Dictionary <Guid, StoreTagData> Deserialize(UserConfiguration configItem, IExchangePrincipal mailboxOwner, out List <Guid> deletedTags, out RetentionHoldData retentionHoldData, bool returnRetentionHoldData, out Dictionary <Guid, StoreTagData> defaultArchiveTagData, out bool fullCrawlRequired)
        {
            Dictionary <Guid, StoreTagData> result;

            using (Stream xmlStream = configItem.GetXmlStream())
            {
                result = MrmFaiFormatter.Deserialize(xmlStream, mailboxOwner, out deletedTags, out retentionHoldData, returnRetentionHoldData, out defaultArchiveTagData, out fullCrawlRequired);
            }
            return(result);
        }
Пример #5
0
        private static void GetDefaultPolicyInfo(MailboxSession mailboxSession, MessageItem messageItem, object compactDefaultPolicy, out Guid defaultGuid, out int periodInStartDateEtc)
        {
            defaultGuid          = Guid.Empty;
            periodInStartDateEtc = 0;
            Guid guid  = Guid.Empty;
            Guid guid2 = Guid.Empty;

            if (compactDefaultPolicy != null & compactDefaultPolicy is byte[])
            {
                Dictionary <Guid, StoreTagData>     dictionary = MrmFaiFormatter.Deserialize(compactDefaultPolicy as byte[], mailboxSession.MailboxOwner);
                List <ElcPolicySettings>            list       = new List <ElcPolicySettings>();
                Dictionary <string, ContentSetting> itemClassToPolicyMapping = new Dictionary <string, ContentSetting>();
                foreach (StoreTagData storeTagData in dictionary.Values)
                {
                    if (storeTagData.Tag.Type == ElcFolderType.All)
                    {
                        foreach (ContentSetting contentSetting in storeTagData.ContentSettings.Values)
                        {
                            ElcPolicySettings.ParseContentSettings(list, contentSetting);
                            if (contentSetting.MessageClass.Equals(ElcMessageClass.AllMailboxContent, StringComparison.CurrentCultureIgnoreCase))
                            {
                                guid2 = storeTagData.Tag.RetentionId;
                            }
                            else if (contentSetting.MessageClass.Equals(ElcMessageClass.VoiceMail, StringComparison.CurrentCultureIgnoreCase))
                            {
                                guid = storeTagData.Tag.RetentionId;
                            }
                        }
                    }
                }
                string effectiveItemClass = ElcPolicySettings.GetEffectiveItemClass(messageItem.ClassName);
                if (effectiveItemClass.StartsWith(ElcMessageClass.VoiceMail.TrimEnd(new char[]
                {
                    '*'
                }), StringComparison.OrdinalIgnoreCase) && !guid.Equals(Guid.Empty))
                {
                    defaultGuid = guid;
                }
                else if (!guid2.Equals(Guid.Empty))
                {
                    defaultGuid = guid2;
                }
                ContentSetting applyingPolicy = ElcPolicySettings.GetApplyingPolicy(list, messageItem.ClassName, itemClassToPolicyMapping);
                if (applyingPolicy != null && applyingPolicy.RetentionEnabled && applyingPolicy.AgeLimitForRetention != null)
                {
                    periodInStartDateEtc = (int)applyingPolicy.AgeLimitForRetention.Value.TotalDays;
                    return;
                }
                if (applyingPolicy == null)
                {
                    defaultGuid = Guid.Empty;
                }
            }
        }
Пример #6
0
        internal static Dictionary <Guid, StoreTagData> Deserialize(byte[] propertyBytes, IExchangePrincipal mailboxOwner)
        {
            Dictionary <Guid, StoreTagData> result;

            using (Stream stream = new MemoryStream(propertyBytes))
            {
                List <Guid>       list;
                RetentionHoldData retentionHoldData;
                Dictionary <Guid, StoreTagData> dictionary;
                bool flag;
                result = MrmFaiFormatter.Deserialize(stream, mailboxOwner, out list, out retentionHoldData, false, out dictionary, out flag);
            }
            return(result);
        }