protected override void InternalSetValue(PropertyBag.BasicPropertyStore propertyBag, object value) { if (value == null) { throw new ArgumentNullException("OutlookBlockStatus"); } EnumValidator.ThrowIfInvalid <BlockStatus>((BlockStatus)value, "value"); int num = (int)value; if (num < 3) { propertyBag.SetValueWithFixup(InternalSchema.NativeBlockStatus, (BlockStatus)num); return; } ExDateTime valueOrDefault = propertyBag.GetValueOrDefault <ExDateTime>(InternalSchema.ReceivedTime, ExDateTime.MinValue); if (valueOrDefault != ExDateTime.MinValue) { double floatDate = ExTimeZone.UtcTimeZone.ConvertDateTime(valueOrDefault).ToOADate(); int num2 = OutlookBlockStatusProperty.ComputeBlockStatus(floatDate); propertyBag.SetValueWithFixup(InternalSchema.NativeBlockStatus, (BlockStatus)num2); return; } propertyBag.SetValueWithFixup(InternalSchema.NativeBlockStatus, BlockStatus.DontKnow); }
protected override object InternalTryGetValue(PropertyBag.BasicPropertyStore propertyBag) { int valueOrDefault = propertyBag.GetValueOrDefault <int>(InternalSchema.NativeBlockStatus); if (valueOrDefault < 0) { return(new PropertyError(this, PropertyErrorCode.GetCalculatedPropertyError)); } if (valueOrDefault <= 3) { return((BlockStatus)valueOrDefault); } ExDateTime valueOrDefault2 = propertyBag.GetValueOrDefault <ExDateTime>(InternalSchema.ReceivedTime, ExDateTime.MinValue); if (!(valueOrDefault2 != ExDateTime.MinValue)) { return(BlockStatus.DontKnow); } double floatDate = ExTimeZone.UtcTimeZone.ConvertDateTime(valueOrDefault2).ToOADate(); int num = OutlookBlockStatusProperty.ComputeBlockStatus(floatDate); int num2 = (num >= valueOrDefault) ? (num - valueOrDefault) : (valueOrDefault - num); if (num2 < 1) { return(BlockStatus.NoNeverAgain); } return(BlockStatus.DontKnow); }