public void GetAssetFromOtherSource() { var assets = Many(100, i => CreateAsset(i)); var sources = Many(10, i => CreateSource(assets.Skip(i * 10).Take(10))); const int testAssetId = 101; TestAsset testAsset = null; var delegateSource = new DelegateSource <Asset>(context => { testAsset = new TestAsset(testAssetId, Array.Empty <IComponent>()) { Reference = context.Get(90) }; return(new[] { testAsset }); }); CollectionUtils.Add(ref sources, delegateSource); StartEnumeration(sources); var actual = (TestAsset)_context .Invoking(context => context.Get(testAssetId)) .Should().NotThrow() .Which; actual.Should().Be(testAsset); }
public bool TryGetSource(ITypeSymbol target, out InstanceSource instanceSource) { if (_delegateParameters is not null && _delegateParameters.TryGetValue(target, out var delegateParameter)) { instanceSource = delegateParameter; return(true); } if (_instanceSource.TryGetValue(target, out instanceSource)) { return(true); } if (target is INamedTypeSymbol { DelegateInvokeMethod : { ReturnType : { } returnType, Parameters : var parameters } } delegateType) { if (returnType.OriginalDefinition.Equals(_task1Type, SymbolEqualityComparer.Default) || returnType.OriginalDefinition.Equals(_valueTask1Type, SymbolEqualityComparer.Default)) { instanceSource = new DelegateSource(delegateType, ((INamedTypeSymbol)returnType).TypeArguments[0], parameters, isAsync : true); } else { instanceSource = new DelegateSource(delegateType, returnType, parameters, isAsync: false); } return(true); } return(false); }
private void BoxSelectMedia_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (this.isInit == true) { this.TextBoxSearch.Text = ""; } DelegateSourceClass del = new DelegateSourceClass(); DelegateSource[] bind = new DelegateSource[4]; bind[0] = new DelegateSource(del.PlaylistSource); bind[1] = new DelegateSource(del.MusicSource); bind[2] = new DelegateSource(del.ImageSource); bind[3] = new DelegateSource(del.VideoSource); if (BoxSelectMedia.SelectedIndex != -1) { bind[BoxSelectMedia.SelectedIndex](this); } }
public DelegateSourceShould() { _context = Mock.Of <IEntitySourceContext <Asset> >(); _builder = new Mock <Func <IEntitySourceContext <Asset>, IEnumerable <Asset> > >(); _builder .Setup(b => b.Invoke(_context)) .Returns(Enumerable.Empty <Asset>()); _source = new DelegateSource <Asset>(_builder.Object); }
public static DependencyCollection AddAssets( this DependencyCollection dependencies, Func <IEntitySourceContext <Asset>, IEnumerable <Asset> > assets) { if (assets == null) { throw Error.Null(nameof(assets)); } var instance = new DelegateSource <Asset>(assets); var dependency = new InstanceDependency(AssetSourceContracts, instance); dependencies.Add(dependency); return(dependencies); }
public virtual void Visit(DelegateSource delegateSource, State state) { VisitCore(GetInstanceSource(delegateSource.ReturnType, state, null), state); }