public void HasDependency(IDataSupplier dataSupplier, IDataDependency dependency) { if (ReferenceEquals(dataSupplier, null)) { throw new ArgumentNullException("dataSupplier"); } if (dataSupplier == null) { throw new Exception("Data provider " + dataSupplier + " is not a supplier of data"); } if (ReferenceEquals(dependency, null)) { dependency = dataSupplier.DefaultDependency; } if (!dataSupplier.IsSupplierOf(dependency)) { throw new Exception("Data provider " + dataSupplier + " is not a supplier of " + dependency); } if (DataSupplierDependencies == null) { DataSupplierDependencies = new List <Tuple <IDataSupplier, IDataDependency> >(); } DataSupplierDependencies.Add(new Tuple <IDataSupplier, IDataDependency>(dataSupplier, dependency)); }
T IDebuggable.GetDebugInfo <T>(int patentDepth, int childDepth) { return(new DebugDataConsumer { DependentProviders = ReferenceEquals(DataSupplierDependencies, null) ? null : DataSupplierDependencies.Select(s => new DebugDataProviderDependency { DataProvider = s.Item1.GetDebugInfo <DebugDataProvider>(), Data = s.Item2 == null ? null : new DebugDataScope { DataType = s.Item2.DataType, ScopeName = s.Item2.ScopeName } }).ToList(), DependentSupplies = ReferenceEquals(DataSupplyDependencies, null) ? null : DataSupplyDependencies.Select(s => s.GetDebugInfo <DebugDataSupply>()).ToList(), DependentData = ReferenceEquals(DataDependencies, null) ? null : DataDependencies.Select(s => new DebugDataScope { DataType = s.DataType, ScopeName = s.ScopeName }).ToList() } as T); }
public void Add(IDataConsumerNeeds needs) { if (needs.DataSupplierDependencies != null) { DataSupplierDependencies.AddRange(needs.DataSupplierDependencies); } if (needs.DataSupplyDependencies != null) { DataSupplyDependencies.AddRange(needs.DataSupplyDependencies); } if (needs.DataDependencies != null) { DataDependencies.AddRange(needs.DataDependencies); } }
public void Add(Tuple <IDataSupplier, IDataDependency> supplier) { DataSupplierDependencies.Add(supplier); }