Ejemplo n.º 1
0
        internal static ExDateTime?GetExDateTimePropertyOrNull(IAnchorStoreObject item, StorePropertyDefinition propertyDefinition)
        {
            object property = AnchorHelper.GetProperty <object>(item, propertyDefinition, false);

            return(MigrationHelperBase.GetValidExDateTime(property as ExDateTime?));
        }
 public XsoUtcDateTimeProperty(StorePropertyDefinition propertyDef, PropertyDefinition[] prefetchPropDef) : base(propertyDef, prefetchPropDef)
 {
 }
 public SinglePropertyValueBasedCalendarItemStateDefinition(StorePropertyDefinition targetProperty, TValue targetValue) : this(targetProperty, targetValue, null)
 {
 }
 // Token: 0x06001503 RID: 5379 RVA: 0x0007B5CF File Offset: 0x000797CF
 public XsoSensitivityProperty(StorePropertyDefinition propertyDef) : base(propertyDef)
 {
 }
 public XsoUtcDateTimeProperty(StorePropertyDefinition propertyDef) : base(propertyDef)
 {
 }
 internal static void DefaultDictionarySetter(IDictionary <StorePropertyDefinition, object> dictionary, StorePropertyDefinition propertyDefinition, object value)
 {
     if (value == null)
     {
         if (dictionary.ContainsKey(propertyDefinition))
         {
             dictionary.Remove(propertyDefinition);
             return;
         }
     }
     else
     {
         dictionary[propertyDefinition] = value;
     }
 }
 // Token: 0x06001528 RID: 5416 RVA: 0x0007BE8A File Offset: 0x0007A08A
 public XsoUidProperty(StorePropertyDefinition propertyDef) : base(propertyDef)
 {
 }
Ejemplo n.º 8
0
 // Token: 0x060014E1 RID: 5345 RVA: 0x00079518 File Offset: 0x00077718
 public XsoPersistentStringProperty(StorePropertyDefinition propertyDef) : base(propertyDef)
 {
 }
Ejemplo n.º 9
0
 // Token: 0x060014E2 RID: 5346 RVA: 0x00079521 File Offset: 0x00077721
 public XsoPersistentStringProperty(StorePropertyDefinition propertyDef, PropertyType type) : base(propertyDef, type)
 {
 }
Ejemplo n.º 10
0
        // Token: 0x06002ADD RID: 10973 RVA: 0x000F13EC File Offset: 0x000EF5EC
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            string itemType = base.GetItemType();

            StorePropertyDefinition[] prefetchProperties = new StorePropertyDefinition[]
            {
                ItemSchema.BlockStatus,
                ItemSchema.IsClassified,
                ItemSchema.Classification,
                ItemSchema.ClassificationDescription,
                ItemSchema.ClassificationGuid,
                ItemSchema.EdgePcl,
                ItemSchema.LinkEnabled,
                BodySchema.Codepage,
                BodySchema.InternetCpid,
                MessageItemSchema.SenderTelephoneNumber,
                ItemSchema.FlagStatus,
                ItemSchema.FlagCompleteTime,
                MessageItemSchema.ReplyTime,
                ItemSchema.UtcDueDate,
                ItemSchema.UtcStartDate,
                ItemSchema.ReminderDueBy,
                ItemSchema.ReminderIsSet,
                StoreObjectSchema.EffectiveRights,
                ItemSchema.Categories,
                MessageItemSchema.IsReadReceiptPending,
                MessageItemSchema.ApprovalDecision,
                MessageItemSchema.ApprovalDecisionMaker,
                MessageItemSchema.ApprovalDecisionTime,
                StoreObjectSchema.PolicyTag,
                ItemSchema.RetentionDate,
                MessageItemSchema.TextMessageDeliveryStatus,
                StoreObjectSchema.ParentItemId
            };
            if (ObjectClass.IsMessage(itemType, false))
            {
                this.Message = base.Initialize <MessageItem>(prefetchProperties);
            }
            else
            {
                this.Message = base.InitializeAsMessageItem(prefetchProperties);
            }
            this.IrmItemHelper = new IRMItemHelper(this.Message, base.UserContext, base.IsPreviewForm, base.IsEmbeddedItem);
            this.IrmItemHelper.IrmDecryptIfRestricted();
            if (ObjectClass.IsOfClass(itemType, "IPM.Note.Microsoft.Fax.CA"))
            {
                this.isFaxMessage = true;
            }
            this.InitializeReadMessageFormElements();
            if (!this.IsSMimeItem)
            {
                RenderingUtilities.RenderVotingInfobarMessages(this.Message, this.infobar, base.UserContext);
            }
            object obj = this.Message.TryGetProperty(MessageItemSchema.IsDraft);

            if (obj is bool && (bool)obj)
            {
                this.isDraftMessage = true;
                if (!base.IsPreviewForm)
                {
                    this.infobar.AddMessage(SanitizedHtmlString.FromStringId(-1981719796), InfobarMessageType.Informational);
                }
                this.AddIrmMessageToInfobar();
            }
            else
            {
                this.AddMessagesToInfobar();
                if (this.Message.Id != null && !base.IsEmbeddedItem && !this.Message.IsRead && !base.IsPreviewForm)
                {
                    this.Message.MarkAsRead(Utilities.ShouldSuppressReadReceipt(base.UserContext, this.Message), false);
                }
            }
            SanitizedHtmlString sanitizedHtmlString = null;

            if (Utilities.IsFlagSet((int)base.ClientSMimeControlStatus, 1))
            {
                if (this.IsClearSignedItem || this.IsOpaqueSignedItem)
                {
                    sanitizedHtmlString = SanitizedHtmlString.FromStringId(Utilities.IsSMimeFeatureUsable(base.OwaContext) ? (base.IsPreviewForm ? 1871698343 : 1683614199) : -1329088272);
                }
                else if (this.IsEncryptedItem)
                {
                    sanitizedHtmlString = SanitizedHtmlString.FromStringId(Utilities.IsSMimeFeatureUsable(base.OwaContext) ? (base.IsPreviewForm ? 958219031 : 906798671) : -767943720);
                }
            }
            else if (this.IsSMimeItem)
            {
                if (Utilities.IsFlagSet((int)base.ClientSMimeControlStatus, 16))
                {
                    if (Utilities.IsFlagSet((int)base.ClientSMimeControlStatus, 2))
                    {
                        sanitizedHtmlString = SanitizedHtmlString.FromStringId(base.IsPreviewForm ? -1214530702 : 1697878138);
                    }
                    else if (Utilities.IsFlagSet((int)base.ClientSMimeControlStatus, 4))
                    {
                        sanitizedHtmlString = SanitizedHtmlString.FromStringId(base.IsPreviewForm ? 1899236370 : 330022834);
                    }
                }
                else
                {
                    sanitizedHtmlString = SanitizedHtmlString.FromStringId((this.IsClearSignedItem || this.IsOpaqueSignedItem) ? 1965026784 : -514535677);
                }
            }
            if (sanitizedHtmlString != null)
            {
                this.infobar.AddMessage(sanitizedHtmlString, InfobarMessageType.Warning);
            }
        }
Ejemplo n.º 11
0
 // Token: 0x060013FC RID: 5116 RVA: 0x000739CA File Offset: 0x00071BCA
 public XsoBase64StringProperty(StorePropertyDefinition propertyDef) : base(propertyDef)
 {
 }
Ejemplo n.º 12
0
 // Token: 0x060014ED RID: 5357 RVA: 0x00079CC2 File Offset: 0x00077EC2
 public XsoReadFlagProperty(StorePropertyDefinition propertyDef) : base(propertyDef)
 {
 }
Ejemplo n.º 13
0
 public XsoBooleanProperty(StorePropertyDefinition propertyDef) : base(propertyDef)
 {
 }
Ejemplo n.º 14
0
 public XsoBooleanProperty(StorePropertyDefinition propertyDef, PropertyDefinition[] prefetchPropDef) : base(propertyDef, prefetchPropDef)
 {
 }
 internal static void DefaultItemSetter(IItem item, StorePropertyDefinition propertyDefinition, object value, IMdbPropertyMappingContext context)
 {
     item.SetOrDeleteProperty(propertyDefinition, value);
 }
Ejemplo n.º 16
0
 // Token: 0x060014E3 RID: 5347 RVA: 0x0007952B File Offset: 0x0007772B
 public XsoPersistentStringProperty(StorePropertyDefinition propertyDef, PropertyType type, params PropertyDefinition[] prefechProperties) : base(propertyDef, type, prefechProperties)
 {
 }
        internal static object DefaultDictionaryGetter(IDictionary <StorePropertyDefinition, object> dictionary, StorePropertyDefinition propertyDefinition)
        {
            object result = null;

            dictionary.TryGetValue(propertyDefinition, out result);
            return(result);
        }
Ejemplo n.º 18
0
        public override void CreateFolder(FolderMap.EnumFolderContext context, FolderRecWrapper sourceFolderRecWrapper, CreateFolderFlags createFolderFlags, out byte[] newFolderEntryId)
        {
            if (sourceFolderRecWrapper.IsInternalAccess)
            {
                throw new InternalAccessFolderCreationIsNotSupportedException();
            }
            newFolderEntryId = null;
            FolderMapping   folderMapping   = sourceFolderRecWrapper as FolderMapping;
            FolderHierarchy folderHierarchy = base.DestMailboxWrapper.FolderMap as FolderHierarchy;

            byte[]        sessionSpecificEntryId = base.DestMailbox.GetSessionSpecificEntryId(folderMapping.EntryId);
            FolderMapping folderMapping2         = folderMapping.Parent as FolderMapping;
            bool          isRoot = base.IsRoot;

            byte[] parentId;
            switch (folderMapping2.WKFType)
            {
            case WellKnownFolderType.Root:
            case WellKnownFolderType.NonIpmSubtree:
            case WellKnownFolderType.IpmSubtree:
            case WellKnownFolderType.EFormsRegistry:
                parentId = folderHierarchy.GetWellKnownFolder(folderMapping2.WKFType).EntryId;
                break;

            default:
                if (isRoot || this.ShouldCreateUnderParentInSecondary())
                {
                    parentId = base.DestMailbox.GetSessionSpecificEntryId(folderMapping.ParentId);
                }
                else
                {
                    parentId = folderHierarchy.GetWellKnownFolder(WellKnownFolderType.IpmSubtree).EntryId;
                }
                break;
            }
            byte[] entryId   = folderMapping.FolderRec.EntryId;
            byte[] parentId2 = folderMapping.FolderRec.ParentId;
            folderMapping.FolderRec.EntryId  = sessionSpecificEntryId;
            folderMapping.FolderRec.ParentId = parentId;
            base.DestMailbox.CreateFolder(folderMapping.FolderRec, createFolderFlags, out newFolderEntryId);
            folderMapping.FolderRec.EntryId  = entryId;
            folderMapping.FolderRec.ParentId = parentId2;
            List <PropValueData> list           = new List <PropValueData>(2);
            Guid contentMailboxGuid             = this.GetContentMailboxGuid(sourceFolderRecWrapper);
            StorePropertyDefinition replicaList = CoreFolderSchema.ReplicaList;

            byte[] bytesFromStringArray = ReplicaListProperty.GetBytesFromStringArray(new string[]
            {
                contentMailboxGuid.ToString()
            });
            list.Add(new PropValueData(PropTag.ReplicaList, bytesFromStringArray));
            using (IDestinationFolder folder = base.DestMailbox.GetFolder(sessionSpecificEntryId))
            {
                if (folder == null)
                {
                    MrsTracer.Service.Error("Something deleted destination folder from under us", new object[0]);
                    throw new UnexpectedErrorPermanentException(-2147221238);
                }
                if (isRoot && !this.AssociatedDumpsterExists(folder))
                {
                    byte[] value = this.CreateAssociatedDumpsterFolder(folderMapping.FolderName, bytesFromStringArray, sessionSpecificEntryId);
                    list.Add(new PropValueData(PropTag.IpmWasteBasketEntryId, value));
                }
                folder.SetProps(list.ToArray());
            }
        }
 internal static object DefaultItemGetter(IItem item, StorePropertyDefinition propertyDefinition, IMdbPropertyMappingContext context)
 {
     return(item.TryGetProperty(propertyDefinition));
 }
Ejemplo n.º 20
0
        public override void CopyFolderProperties(FolderRecWrapper sourceFolderRecWrapper, ISourceFolder sourceFolder, IDestinationFolder destFolder, FolderRecDataFlags dataToCopy, out bool wasPropertyCopyingSkipped)
        {
            Guid empty  = Guid.Empty;
            bool isRoot = base.IsRoot;
            bool flag   = false;

            wasPropertyCopyingSkipped = false;
            FolderMapping folderMapping = sourceFolderRecWrapper as FolderMapping;

            while (folderMapping.WKFType != WellKnownFolderType.Root)
            {
                if (folderMapping.IsLegacyPublicFolder)
                {
                    return;
                }
                folderMapping = (folderMapping.Parent as FolderMapping);
            }
            if (destFolder == null)
            {
                if (!isRoot || ((FolderMapping)sourceFolderRecWrapper).IsSystemPublicFolder)
                {
                    MrsTracer.Service.Debug("Skipping final property copying for \"{0}\" folder since it's contents don't reside in this mailbox", new object[]
                    {
                        sourceFolderRecWrapper.FullFolderName
                    });
                    return;
                }
                throw new FolderCopyFailedPermanentException(sourceFolderRecWrapper.FullFolderName);
            }
            else
            {
                PropValueData[] props = destFolder.GetProps(new PropTag[]
                {
                    PropTag.ReplicaList,
                    PropTag.IpmWasteBasketEntryId
                });
                IDataConverter <PropValue, PropValueData> dataConverter = new PropValueConverter();
                PropValue nativeRepresentation = dataConverter.GetNativeRepresentation(props[0]);
                byte[]    array = nativeRepresentation.Value as byte[];
                if (!nativeRepresentation.IsNull() && !nativeRepresentation.IsError() && array != null)
                {
                    StorePropertyDefinition replicaList = CoreFolderSchema.ReplicaList;
                    string[] stringArrayFromBytes       = ReplicaListProperty.GetStringArrayFromBytes(array);
                    if (stringArrayFromBytes.Length > 0 && GuidHelper.TryParseGuid(stringArrayFromBytes[0], out empty))
                    {
                        flag = (empty == base.TargetMailboxGuid);
                    }
                }
                FolderStateSnapshot folderStateSnapshot = base.ICSSyncState[sourceFolderRecWrapper.EntryId];
                FolderState         state = folderStateSnapshot.State;
                if (sourceFolder.GetFolderRec(this.GetAdditionalFolderPtags(), GetFolderRecFlags.None).IsGhosted)
                {
                    folderStateSnapshot.State |= FolderState.IsGhosted;
                }
                else
                {
                    folderStateSnapshot.State &= ~FolderState.IsGhosted;
                }
                if (state != folderStateSnapshot.State)
                {
                    base.SaveICSSyncState(false);
                }
                if (!isRoot && !flag)
                {
                    return;
                }
                List <PropValueData> list = new List <PropValueData>(2);
                bool flag2 = false;
                if (flag)
                {
                    PropValue nativeRepresentation2 = dataConverter.GetNativeRepresentation(sourceFolder.GetProps(new PropTag[]
                    {
                        PropTag.PfProxy
                    })[0]);
                    if (!nativeRepresentation2.IsNull() && !nativeRepresentation2.IsError())
                    {
                        byte[] array2 = nativeRepresentation2.Value as byte[];
                        if (array2 != null && array2.Length == 16 && new Guid(array2) != Guid.Empty)
                        {
                            Guid a     = Guid.Empty;
                            bool flag3 = base.Flags.HasFlag(MailboxCopierFlags.CrossOrg);
                            if (flag3)
                            {
                                a = destFolder.LinkMailPublicFolder(LinkMailPublicFolderFlags.EntryId, sourceFolderRecWrapper.EntryId);
                            }
                            else
                            {
                                a = destFolder.LinkMailPublicFolder(LinkMailPublicFolderFlags.ObjectGuid, array2);
                            }
                            if (a != Guid.Empty)
                            {
                                list.Add(new PropValueData(PropTag.PfProxy, a.ToByteArray()));
                                list.Add(new PropValueData(PropTag.PfProxyRequired, true));
                                flag2 = true;
                            }
                            else
                            {
                                base.Report.Append(new ReportEntry(MrsStrings.ReportFailedToLinkADPublicFolder(sourceFolderRecWrapper.FullFolderName, BitConverter.ToString(array2), BitConverter.ToString(sourceFolderRecWrapper.EntryId)), ReportEntryType.Warning));
                            }
                        }
                    }
                }
                if (!flag2)
                {
                    list.Add(new PropValueData(PropTag.PfProxy, Guid.Empty.ToByteArray()));
                    list.Add(new PropValueData(PropTag.PfProxyRequired, false));
                }
                List <PropValueData> list2 = new List <PropValueData>(9);
                if (isRoot)
                {
                    if (!flag)
                    {
                        dataToCopy &= (FolderRecDataFlags.SecurityDescriptors | FolderRecDataFlags.FolderAcls | FolderRecDataFlags.ExtendedAclInformation);
                    }
                    list2.AddRange(list);
                }
                else
                {
                    byte[] sessionSpecificEntryId = this.hierarchyMailbox.GetSessionSpecificEntryId(sourceFolderRecWrapper.EntryId);
                    using (IDestinationFolder folder = this.hierarchyMailbox.GetFolder(sessionSpecificEntryId))
                    {
                        if (folder == null)
                        {
                            MrsTracer.Service.Error("Something deleted destination hierarchy folder from under us", new object[0]);
                            throw new UnexpectedErrorPermanentException(-2147221238);
                        }
                        if (list.Count > 0)
                        {
                            folder.SetProps(list.ToArray());
                        }
                    }
                }
                base.CopyFolderProperties(sourceFolderRecWrapper, sourceFolder, destFolder, dataToCopy, out wasPropertyCopyingSkipped);
                PropTag[] pta = new PropTag[]
                {
                    PropTag.DisablePeruserRead,
                    PropTag.OverallAgeLimit,
                    PropTag.RetentionAgeLimit,
                    PropTag.PfQuotaStyle,
                    PropTag.PfOverHardQuotaLimit,
                    PropTag.PfStorageQuota,
                    PropTag.PfMsgSizeLimit
                };
                foreach (PropValueData propValueData in sourceFolder.GetProps(pta))
                {
                    PropValue nativeRepresentation3 = dataConverter.GetNativeRepresentation(propValueData);
                    if (!nativeRepresentation3.IsNull() && !nativeRepresentation3.IsError())
                    {
                        if (propValueData.PropTag == 1721303043 && (int)propValueData.Value > 0)
                        {
                            propValueData.Value = (int)EnhancedTimeSpan.FromDays((double)((int)propValueData.Value)).TotalSeconds;
                        }
                        list2.Add(propValueData);
                    }
                }
                if (list2.Count > 0)
                {
                    destFolder.SetProps(list2.ToArray());
                }
                return;
            }
        }
Ejemplo n.º 21
0
 // Token: 0x06001529 RID: 5417 RVA: 0x0007BE93 File Offset: 0x0007A093
 public XsoUidProperty(StorePropertyDefinition propertyDef, PropertyType type) : base(propertyDef, type)
 {
 }
Ejemplo n.º 22
0
 // Token: 0x060013D6 RID: 5078 RVA: 0x000720F3 File Offset: 0x000702F3
 public XsoGuidProperty(StorePropertyDefinition propertyDef, PropertyType type, PropertyDefinition[] prefetchPropDef) : base(propertyDef, type, prefetchPropDef)
 {
 }
 // Token: 0x06001504 RID: 5380 RVA: 0x0007B5D8 File Offset: 0x000797D8
 public XsoSensitivityProperty(StorePropertyDefinition propertyDef, PropertyType type) : base(propertyDef, type)
 {
 }
 // Token: 0x060014B4 RID: 5300 RVA: 0x000783E2 File Offset: 0x000765E2
 public XsoIntegerProperty(StorePropertyDefinition propertyDef, bool nodelete) : base(propertyDef)
 {
     this.nodelete = nodelete;
 }
 public XsoUtcDateTimeProperty(StorePropertyDefinition propertyDef, PropertyType type) : base(propertyDef, type)
 {
 }
 // Token: 0x060014B7 RID: 5303 RVA: 0x00078406 File Offset: 0x00076606
 public XsoIntegerProperty(StorePropertyDefinition propertyDef, PropertyType type, PropertyDefinition[] prefetchProps) : base(propertyDef, type, prefetchProps)
 {
 }
 public SinglePropertyValueBasedCalendarItemStateDefinition(StorePropertyDefinition targetProperty, HashSet <TValue> targetValueSet) : base(targetProperty.Name)
 {
     Util.ThrowOnNullArgument(targetValueSet, "targetValueSet");
     this.TargetProperty = targetProperty;
     this.TargetValueSet = targetValueSet;
 }
Ejemplo n.º 28
0
 public XsoManagerProperty(StorePropertyDefinition propertyDef) : base(propertyDef)
 {
 }
 public SinglePropertyValueBasedCalendarItemStateDefinition(StorePropertyDefinition targetProperty, TValue targetValue, IEqualityComparer <TValue> equalityComparer) : this(targetProperty, SinglePropertyValueBasedCalendarItemStateDefinition <TValue> .GetValueSetFromSingleValue(targetValue, equalityComparer))
 {
 }
Ejemplo n.º 30
0
        internal static ExDateTime GetExDateTimePropertyOrDefault(IAnchorStoreObject item, StorePropertyDefinition propertyDefinition, ExDateTime defaultTime)
        {
            ExDateTime?exDateTimePropertyOrNull = AnchorHelper.GetExDateTimePropertyOrNull(item, propertyDefinition);

            if (exDateTimePropertyOrNull != null)
            {
                return(exDateTimePropertyOrNull.Value);
            }
            return(defaultTime);
        }