public async Task <IValueProvider> BindAsync(object value, ValueBindingContext context)
            {
                TTriggerValue val = value as TTriggerValue;

                if (val == null)
                {
                    if (_directInvoker != null && (value is string str))
                    {
                        // Direct invoke case. Need to converrt String-->TTriggerValue.
                        val = await _directInvoker(new DirectInvokeString(str), _attribute, context);
                    }
                    else
                    {
                        // How is this possible?
                        throw new NotImplementedException();
                    }
                }

                TUserType result = await _converter(val, _attribute, context);

                DirectInvokeString invokeString = await _getInvokeString(val, _attribute, context);

                IValueProvider vp = new ConstantValueProvider(result, typeof(TUserType), invokeString.Value);

                return(vp);
            }
Esempio n. 2
0
            protected override async Task <IValueProvider> BuildAsync(TAttribute attrResolved, ValueBindingContext context)
            {
                string invokeString = Cloner.GetInvokeString(attrResolved);
                object obj          = await _builder(attrResolved, _parameter.ParameterType);

                IValueProvider vp = new ConstantValueProvider(obj, _parameter.ParameterType, invokeString);

                return(vp);
            }
            protected override async Task <IValueProvider> BuildAsync(TAttribute attrResolved, ValueBindingContext context)
            {
                string invokeString = Cloner.GetInvokeString(attrResolved);
                var    obj          = await _buildFromAttr(attrResolved);

                IValueProvider vp = new ConstantValueProvider(obj, typeof(TUserType), invokeString);

                return(vp);
            }
Esempio n. 4
0
            protected override Task <IValueProvider> BuildAsync(
                TAttribute attrResolved,
                ValueBindingContext context)
            {
                string invokeString = Cloner.GetInvokeString(attrResolved);

                object    obj = _buildFromAttribute(attrResolved);
                TUserType finalObj;

                if (_converter == null)
                {
                    finalObj = (TUserType)obj;
                }
                else
                {
                    var intermediateObj = (TType)obj;
                    finalObj = _converter(intermediateObj, attrResolved, context);
                }

                IValueProvider vp = new ConstantValueProvider(finalObj, typeof(TUserType), invokeString);

                return(Task.FromResult(vp));
            }
Esempio n. 5
0
            protected override async Task <IValueProvider> BuildAsync(
                TAttribute attrResolved,
                ValueBindingContext context)
            {
                string invokeString = Cloner.GetInvokeString(attrResolved);

                object obj = await _buildFromAttribute(attrResolved, null, context);

                object finalObj;

                if (_converter == null)
                {
                    finalObj = obj;
                }
                else
                {
                    finalObj = await _converter(obj, attrResolved, context);
                }

                IValueProvider vp = new ConstantValueProvider(finalObj, _parameterType, invokeString);

                return(vp);
            }