Esempio n. 1
0
        internal void AddProperty(PropertyDefinition propDefinition, object value)
        {
            this.CheckDisposed("AddProperty");
            if (propDefinition.Equals(InternalSchema.AttachMethod))
            {
                int newAttachMethod = (int)value;
                this.ResetAttachMethod(newAttachMethod);
            }
            if (!propDefinition.Equals(InternalSchema.AttachDataBin))
            {
                this.coreAttachment.PropertyBag[propDefinition] = value;
                return;
            }
            int?num            = this.attachMethod;
            int valueOrDefault = num.GetValueOrDefault();

            if (num == null)
            {
                this.data = (byte[])value;
                return;
            }
            if (valueOrDefault != 1)
            {
                return;
            }
            this.coreAttachment.PropertyBag.SetProperty(propDefinition, value);
        }
 public object this[PropertyDefinition propertyDefinition]
 {
     get
     {
         if (propertyDefinition.Equals(InternalSchema.ItemClass) && !string.IsNullOrEmpty(this.MessageClass))
         {
             return(this.MessageClass);
         }
         if (propertyDefinition.Equals(MessageItemSchema.IsRead))
         {
             return(this.IsRead);
         }
         if (propertyDefinition.Equals(InternalSchema.ItemId) && this.Id != null && this.Id.NativeId != null)
         {
             return(this.Id.NativeId);
         }
         if (propertyDefinition.Equals(ItemSchema.ReceivedTime) && this.FilterDate != null)
         {
             return(this.FilterDate.Value);
         }
         if (propertyDefinition.Equals(ItemSchema.ConversationId) && this.ConversationId != null)
         {
             return(this.ConversationId);
         }
         return(new PropertyError(propertyDefinition, PropertyErrorCode.NotFound));
     }
 }
        public void Equals_TwoDifferentDefinitionsWithSameValues_ReturnsTrue()
        {
            var definition1 = new PropertyDefinition("propertyName", typeof(Property <string>));
            var definition2 = new PropertyDefinition("propertyName", typeof(Property <string>));

            Assert.IsTrue(definition1.Equals(definition2));
        }
Esempio n. 4
0
 internal Stream CreatePropertyStream(PropertyDefinition property)
 {
     this.CheckDisposed("CreatePropertyStream");
     if (property.Equals(InternalSchema.AttachDataBin))
     {
         this.ResetAttachMethod(1);
     }
     return(this.coreAttachment.PropertyBag.OpenPropertyStream(property, PropertyOpenMode.Create));
 }
 internal bool?TryGetValue(PropertyDefinition propertyDefinition, int flag)
 {
     if (propertyDefinition.Equals(InternalSchema.Flags))
     {
         if ((this.markMsgFlagsForRead & flag) == 0)
         {
             return(null);
         }
         return(new bool?((this.msgFlags & flag) != 0));
     }
     else
     {
         if (propertyDefinition != InternalSchema.MessageStatus)
         {
             throw new InvalidOperationException();
         }
         if ((this.markMsgStatusForRead & flag) == 0)
         {
             return(null);
         }
         return(new bool?((this.msgStatus & flag) != 0));
     }
 }
 private void AdjustOccurrenceColumnsForExpansion(object[] occurrence, PropertyDefinition[] columns, OccurrenceInfo occurrenceInfo, int codePage, byte[] createdTimeZoneBlobCache, bool isException)
 {
     for (int i = 0; i < columns.Length; i++)
     {
         PropertyDefinition propertyDefinition = columns[i];
         if (propertyDefinition.Equals(InternalSchema.ItemId))
         {
             occurrence[i] = occurrenceInfo.VersionedId;
         }
         else if (propertyDefinition.Equals(InternalSchema.IsRecurring))
         {
             occurrence[i] = true;
         }
         else if (propertyDefinition.Equals(InternalSchema.IsException))
         {
             occurrence[i] = isException;
         }
         else if (propertyDefinition.Equals(InternalSchema.AppointmentRecurring))
         {
             occurrence[i] = false;
         }
         else if (propertyDefinition.Equals(InternalSchema.AppointmentRecurrenceBlob))
         {
             occurrence[i] = new PropertyError(columns[i], PropertyErrorCode.NotFound);
         }
         else if (propertyDefinition.Equals(InternalSchema.MapiStartTime) || propertyDefinition.Equals(InternalSchema.MapiPRStartDate))
         {
             occurrence[i] = occurrenceInfo.StartTime;
         }
         else if (propertyDefinition.Equals(InternalSchema.MapiEndTime) || propertyDefinition.Equals(InternalSchema.MapiPREndDate))
         {
             occurrence[i] = occurrenceInfo.EndTime;
         }
         else if (propertyDefinition.Equals(InternalSchema.TimeZoneDefinitionStart) || propertyDefinition.Equals(InternalSchema.TimeZoneDefinitionEnd))
         {
             if (occurrence[i] is PropertyError)
             {
                 occurrence[i] = createdTimeZoneBlobCache;
             }
         }
         else if (propertyDefinition.Equals(InternalSchema.ItemClass))
         {
             occurrence[i] = (isException ? (occurrence[i] = "IPM.OLE.CLASS.{00061055-0000-0000-C000-000000000046}") : (occurrence[i] = "IPM.Appointment.Occurrence"));
         }
         else if (propertyDefinition.Equals(InternalSchema.GlobalObjectId))
         {
             object obj   = occurrence[Array.IndexOf <PropertyDefinition>(columns, InternalSchema.CleanGlobalObjectId)];
             byte[] array = obj as byte[];
             if (array != null)
             {
                 occurrence[i] = new GlobalObjectId(array)
                 {
                     Date = ((OccurrenceStoreObjectId)occurrenceInfo.VersionedId.ObjectId).OccurrenceId
                 }.Bytes;
             }
             else
             {
                 PropertyError propertyError = obj as PropertyError;
                 occurrence[i] = new PropertyError(InternalSchema.GlobalObjectId, propertyError.PropertyErrorCode, propertyError.PropertyErrorDescription);
             }
         }
         else if (propertyDefinition.Equals(InternalSchema.Codepage))
         {
             occurrence[i] = codePage;
         }
     }
 }
		public void Equals_TwoDifferentDefinitionsWithSameValues_ReturnsTrue() {
			var definition1 = new PropertyDefinition("propertyName", typeof(Property<string>));
			var definition2 = new PropertyDefinition("propertyName", typeof(Property<string>));
			Assert.IsTrue(definition1.Equals(definition2));
		}