public RawStateAccessor(Expression <Func <TInstance, State> > currentStateExpression,
                                IObserver <StateChanged <TInstance> > observer)
        {
            _observer = observer;

            _property = GetCurrentStateProperty(currentStateExpression);
        }
Ejemplo n.º 2
0
        public StateMachineSchedule(string name, Expression <Func <TInstance, Guid?> > tokenIdExpression, ScheduleSettings <TInstance, TMessage> settings)
        {
            _name     = name;
            _settings = settings;

            _tokenIdProperty = new ReadWriteProperty <TInstance, Guid?>(tokenIdExpression.GetPropertyInfo());
        }
Ejemplo n.º 3
0
        public StateMachineRequest(string requestName, Expression <Func <TInstance, Guid?> > requestIdExpression, RequestSettings settings)
        {
            _name     = requestName;
            _settings = settings;

            _requestIdProperty = new ReadWriteProperty <TInstance, Guid?>(requestIdExpression.GetPropertyInfo());
        }
 public CompositeEventActivity(PropertyInfo propertyInfo, int flag,
                               CompositeEventStatus complete, Action <Composer, TInstance> completeCallback)
 {
     _property         = new ReadWriteProperty <TInstance, CompositeEventStatus>(propertyInfo);
     _flag             = flag;
     _complete         = complete;
     _completeCallback = completeCallback;
 }
        public StringStateAccessor(StateMachine <TInstance> machine, Expression <Func <TInstance, string> > currentStateExpression,
                                   StateObserver <TInstance> observer)
        {
            _machine  = machine;
            _observer = observer;

            _property = GetCurrentStateProperty(currentStateExpression);
        }
Ejemplo n.º 6
0
        public IntStateAccessor(Expression <Func <TInstance, int> > currentStateExpression, StateAccessorIndex <TInstance> index,
                                StateObserver <TInstance> observer)
        {
            _observer = observer;
            _index    = index;

            _property = GetCurrentStateProperty(currentStateExpression);
        }
Ejemplo n.º 7
0
        static ReceiveEndpointSettings()
        {
            var propertyInfo = typeof(QueueDescription).GetProperty("InternalAutoDeleteOnIdle", BindingFlags.Instance | BindingFlags.NonPublic);

            _autoDeleteOnIdle = new ReadWriteProperty <QueueDescription, TimeSpan?>(propertyInfo);

            propertyInfo   = typeof(QueueDescription).GetProperty("InternalEnableExpress", BindingFlags.Instance | BindingFlags.NonPublic);
            _enableExpress = new ReadWriteProperty <QueueDescription, bool?>(propertyInfo);
        }
Ejemplo n.º 8
0
        public StateMachineRequest(string name, Expression <Func <TInstance, Guid?> > requestIdExpression, RequestSettings settings)
        {
            _name     = name;
            _settings = settings;

            _accept = new List <string>();

            AcceptResponse <TResponse>();

            _requestIdProperty = new ReadWriteProperty <TInstance, Guid?>(requestIdExpression.GetPropertyInfo());
        }
Ejemplo n.º 9
0
        public void Should_be_able_to_access_a_private_setter()
        {
            var instance = new PrivateSetter();

            PropertyInfo property = instance.GetType()
                                            .GetProperties(BindingFlags.Instance | BindingFlags.Public)
                                            .Where(x => x.Name == "Name")
                                            .First();

            var fastProperty = new ReadWriteProperty<PrivateSetter>(property, true);

            const string expectedValue = "Chris";
            fastProperty.Set(instance, expectedValue);

            Assert.AreEqual(expectedValue, fastProperty.Get(instance));
        }
Ejemplo n.º 10
0
        public void Should_be_able_to_access_a_private_setter()
        {
            var instance = new PrivateSetter();

            var property = instance
                           .GetType()
                           .GetProperties(BindingFlags.Instance | BindingFlags.Public)
                           .First(x => x.Name == "Name");


            var fastProperty = new ReadWriteProperty <PrivateSetter>(property);

            const string expectedValue = "Chris";

            fastProperty.Set(instance, expectedValue);

            Assert.AreEqual(expectedValue, fastProperty.Get(instance));
        }
Ejemplo n.º 11
0
 public ObjectArrayObjectMapper(ReadWriteProperty <T> property,
                                IObjectConverter converter)
 {
     _property  = property;
     _converter = converter;
 }
Ejemplo n.º 12
0
 public ValueValueDictionaryObjectMapper(ReadWriteProperty <T> property)
 {
     _property = property;
 }
Ejemplo n.º 13
0
 public EnumObjectMapper(ReadWriteProperty <T> property)
 {
     _property = property;
 }
 public ValueObjectDictionaryObjectMapper(ReadWriteProperty <T> property, IObjectConverter valueConverter)
 {
     _property       = property;
     _valueConverter = valueConverter;
 }
Ejemplo n.º 15
0
 public ValueObjectMapper(ReadWriteProperty <T> property)
 {
     _property      = property;
     _typeConverter = TypeDescriptor.GetConverter(property.Property.PropertyType);
 }
 public NullableValueObjectMapper(ReadWriteProperty <T> property)
 {
     _property = property;
 }
Ejemplo n.º 17
0
 public void WriteXml(XmlWriter writer)
 {
     writer.WriteElementString("ReadWriteProperty", ReadWriteProperty.ToString(CultureInfo.InvariantCulture));
     writer.WriteElementString("ReadOnlyAutoProperty", SemiReadOnlyProperty.ToString(CultureInfo.InvariantCulture));
     writer.WriteElementString("ReadOnlyProperty", RealReadOnlyProperty.ToString(CultureInfo.InvariantCulture));
 }
Ejemplo n.º 18
0
 public override int GetHashCode() => backingFieldOfRealReadOnlyProperty.GetHashCode() ^ ReadWriteProperty.GetHashCode() ^ SemiReadOnlyProperty.GetHashCode();
Ejemplo n.º 19
0
        IObjectMapper <TImplementation> GetDictionaryToObjectConverter(ReadWriteProperty <TImplementation> property, Type valueType)
        {
            var underlyingType = Nullable.GetUnderlyingType(valueType);

            if (underlyingType != null)
            {
                var converterType = typeof(NullableValueObjectMapper <,>).MakeGenericType(typeof(TImplementation), underlyingType);

                return((IObjectMapper <TImplementation>)Activator.CreateInstance(converterType, property));
            }

            if (valueType.GetTypeInfo().IsEnum)
            {
                return(new EnumObjectMapper <TImplementation>(property));
            }

            if (valueType.IsArray)
            {
                var elementType = valueType.GetElementType();
                if (ValueObject.IsValueObjectType(elementType))
                {
                    var valueConverterType = typeof(ValueArrayObjectMapper <,>).MakeGenericType(typeof(TImplementation), elementType);
                    return((IObjectMapper <TImplementation>)Activator.CreateInstance(valueConverterType, property));
                }

                var elementConverter = _cache.GetConverter(elementType);

                var converterType = typeof(ObjectArrayObjectMapper <,>).MakeGenericType(typeof(TImplementation), elementType);
                return((IObjectMapper <TImplementation>)Activator.CreateInstance(converterType, property, elementConverter));
            }

            if (ValueObject.IsValueObjectType(valueType))
            {
                return(new ValueObjectMapper <TImplementation>(property));
            }

            if (valueType.ClosesType(typeof(IEnumerable <>)))
            {
                if (valueType.ClosesType(typeof(IDictionary <,>)))
                {
                    Type[] genericArguments = valueType.GetClosingArguments(typeof(IDictionary <,>)).ToArray();

                    var keyType     = genericArguments[0];
                    var elementType = genericArguments[1];


                    if (ValueObject.IsValueObjectType(keyType))
                    {
                        if (ValueObject.IsValueObjectType(elementType))
                        {
                            var valueConverterType = typeof(ValueValueDictionaryObjectMapper <, ,>).MakeGenericType(typeof(TImplementation), keyType, elementType);
                            return((IObjectMapper <TImplementation>)Activator.CreateInstance(valueConverterType, property));
                        }
                        else
                        {
                            var elementConverter   = _cache.GetConverter(elementType);
                            var valueConverterType = typeof(ValueObjectDictionaryObjectMapper <, ,>).MakeGenericType(typeof(TImplementation), keyType, elementType);
                            return((IObjectMapper <TImplementation>)Activator.CreateInstance(valueConverterType, property, elementConverter));
                        }
                    }

                    throw new InvalidOperationException("A dictionary with a reference type key is not supported: " + property.Property.Name);
                }

                if (valueType.ClosesType(typeof(IList <>)) || valueType.ClosesType(typeof(IEnumerable <>)))
                {
                    Type[] genericArguments = valueType.GetClosingArguments(typeof(IEnumerable <>)).ToArray();
                    var    elementType      = genericArguments[0];

                    if (ValueObject.IsValueObjectType(elementType))
                    {
                        var valueConverterType = typeof(ValueListObjectMapper <,>).MakeGenericType(typeof(TImplementation), elementType);

                        return((IObjectMapper <TImplementation>)Activator.CreateInstance(valueConverterType, property));
                    }

                    var elementConverter = _cache.GetConverter(elementType);

                    var converterType = typeof(ObjectListObjectMapper <,>).MakeGenericType(typeof(TImplementation), elementType);

                    return((IObjectMapper <TImplementation>)Activator.CreateInstance(converterType, property, elementConverter));
                }
            }

            return(new ObjectObjectMapper <TImplementation>(property, _cache.GetConverter(valueType)));
        }
Ejemplo n.º 20
0
 public ObjectObjectMapper(ReadWriteProperty <T> property, IObjectConverter converter)
 {
     _property      = property;
     _converter     = converter;
     _typeConverter = TypeDescriptor.GetConverter(property.Property.PropertyType);
 }
Ejemplo n.º 21
0
 public StructCompositeEventStatusAccessor(PropertyInfo propertyInfo)
 {
     _property = new ReadWriteProperty <TInstance, CompositeEventStatus>(propertyInfo);
 }
 public ObjectListObjectMapper(ReadWriteProperty <T> property,
                               ObjectConverter converter)
 {
     _property  = property;
     _converter = converter;
 }
Ejemplo n.º 23
0
 public ValueListObjectMapper(ReadWriteProperty <T> property)
 {
     _property = property;
 }
Ejemplo n.º 24
0
 public InputPropertyTransform(PropertyInfo property, IPropertyProvider <TProperty, TInput> propertyProvider)
 {
     _propertyProvider = propertyProvider;
     _property         = new ReadWriteProperty(property);
 }