protected override void InternalSetValue(PropertyBag.BasicPropertyStore propertyBag, object value) { AppointmentStateFlags?valueAsNullable = propertyBag.GetValueAsNullable <AppointmentStateFlags>(InternalSchema.AppointmentStateInternal); AppointmentStateFlags appointmentStateFlags = (AppointmentStateFlags)value; if (valueAsNullable != null && (valueAsNullable.Value & AppointmentStateFlags.Received) == AppointmentStateFlags.Received && (appointmentStateFlags & AppointmentStateFlags.Received) != AppointmentStateFlags.Received) { propertyBag.SetLocationIdentifier(63651U, LastChangeAction.SmartPropertyFixup); ExTraceGlobals.StorageTracer.TraceInformation(63651, (long)propertyBag.GetHashCode(), "Prevent from removing Received flag on AppointmentState"); appointmentStateFlags |= AppointmentStateFlags.Received; } propertyBag.SetValueWithFixup(InternalSchema.AppointmentStateInternal, appointmentStateFlags); }