public override async Task SetParametersAsync(ParameterView parameters) { await base.SetParametersAsync(parameters); if (Binding != null) { _binder = ValueBinder.Create(Binding); if (Label == null) { Label = _binder.ValueLabel.Titleize(); } if (!Hidden && ChildContent == null) { var func = Binding.Compile(); ChildContent = item => builder => builder.AddContent(1, func.Invoke(item)); } if (SortBy && SortByExpression == null) { SortByExpression = (q, d) => q.OrderByDirection(d, Binding); } if (SearchBy && SearchByPredicate == null) { SearchByPredicate = (input) => PredicateBuilder.Contains( Binding, input.SearchValue !, SearchByCaseInsensitive); } } }
public void ReadOnlyProperty <T>(T value) { var vh = new ReadOnlyValueHolder <T>(value); var exp = CreateExpression(() => vh.Value); var binder = ValueBinder.Create(exp); binder.CanSetValue.Should().BeFalse(); binder.ValueLabel.Should().Be(nameof(vh.Value)); binder.TargetType.Should().Be(vh.GetType()); }
public void FunctionCall <T>(T value) { var vh = new ReadWriteValueHolder <T>(value); var exp = CreateExpression(() => vh.GetValue()); var binder = ValueBinder.Create(exp); binder.CanSetValue.Should().BeFalse(); binder.ValueLabel.Should().Be(nameof(vh.GetValue)); binder.TargetType.Should().Be(typeof(T)); }
public void ReadWritePropertyWithUnary() { var vh = new ReadWriteValueHolder <int>(42); var exp = CreateExpression(() => - vh.Value); var binder = ValueBinder.Create(exp); binder.CanSetValue.Should().BeTrue(); binder.ValueLabel.Should().Be(nameof(vh.Value)); binder.TargetType.Should().Be(vh.GetType()); }
public void RootField <T>(T value) { var localValue = value; var exp = CreateExpression(() => localValue); var binder = ValueBinder.Create(exp); binder.CanSetValue.Should().BeTrue(); binder.ValueLabel.Should().Be(nameof(localValue)); binder.TargetType.Should().Be(((MemberExpression)exp.Body).Expression.Type); //binder.TargetRoot.ToString().Should().Be(x.ToString()); //var targetPathLabels = string.Join(".", binder.TargetPath.Select(x => x.Label)); //targetPathLabels.Should().Be(pathLabels); }
public void RootStringConstant() { var x = CreateExpression(() => "foo"); var binder = ValueBinder.Create(x); binder.CanSetValue.Should().BeFalse(); binder.ValueLabel.Should().BeNull(); binder.TargetType.Should().Be(typeof(string)); binder.TargetRoot.ToString().Should().Be(x.ToString()); var targetPathLabels = string.Join(".", binder.TargetPath.Select(x => x.Label)); targetPathLabels.Should().Be(nameof(System.String)); }
public void RootIntConstant() { var x = CreateExpression(() => 42); var binder = ValueBinder.Create(x); // Binder will process as conversion to box up the value var y = CreateExpression(() => (object)42); binder.CanSetValue.Should().BeFalse(); binder.ValueLabel.Should().BeNull(); binder.TargetType.Should().Be(typeof(int)); binder.TargetRoot.ToString().Should().Be(y.ToString()); var targetPathLabels = string.Join(".", binder.TargetPath.Select(x => x.Label)); targetPathLabels.Should().Be(nameof(System.Int32)); }
public override async Task SetParametersAsync(ParameterView parameters) { await base.SetParametersAsync(parameters); if (Binding != null) { _binder = ValueBinder.Create(Binding); if (Label == null) { Label = _binder.ValueLabel.Titleize(); } if (Expression == null) { Expression = (q, d) => q.OrderByDirection(d, Binding); } } }
public override async Task SetParametersAsync(ParameterView parameters) { await base.SetParametersAsync(parameters); if (Binding != null) { _binder = ValueBinder.Create(Binding); if (Label == null) { Label = _binder.ValueLabel.Titleize(); } if (!OnInvoke.HasDelegate) { OnInvoke = EventCallback.Factory.Create(this, () => (_binder?.TryGetValue(out var val) ?? false) ? val : Task.CompletedTask); } } }
public override async Task SetParametersAsync(ParameterView parameters) { await base.SetParametersAsync(parameters); if (Binding != null) { _binder = ValueBinder.Create(Binding); if (Label == null) { Label = _binder.ValueLabel.Titleize(); } if (Predicate == null) { Predicate = (input) => PredicateBuilder.Contains( Binding, input.SearchValue !, CaseInsensitive); } } }