private void AddChildren(IExtractableDataSetPackage package, DescendancyList descendancy) { var children = new HashSet <object>(dataExportRepository.PackageManager.GetAllDataSets(package, ExtractableDataSets) .Select(ds => new PackageContentNode(package, ds, dataExportRepository.PackageManager))); AddToDictionaries(children, descendancy); }
public void AddDataSetToPackage(IExtractableDataSetPackage package, IExtractableDataSet dataSet) { if (!_packageDictionary.ContainsKey(package)) { _packageDictionary.Add(package, new HashSet <IExtractableDataSet>()); } _packageDictionary[package].Add(dataSet); }
public IExtractableDataSet[] GetAllDataSets(IExtractableDataSetPackage package, IExtractableDataSet[] allDataSets) { if (!_packageDictionary.ContainsKey(package)) { _packageDictionary.Add(package, new HashSet <IExtractableDataSet>()); } return(_packageDictionary[package].ToArray()); }
/// <inheritdoc/> public IExtractableDataSet[] GetAllDataSets(IExtractableDataSetPackage package, IExtractableDataSet[] allDataSets) { //we know of no children if (!_packageContentsDictionary.Value.ContainsKey(package.ID)) { return(new ExtractableDataSet[0]); } return(_packageContentsDictionary.Value[package.ID].Select(i => allDataSets.Single(ds => ds.ID == i)).ToArray()); }
/// <summary> /// Removes the given <paramref name="dataSet"/> from the <paramref name="package"/> and updates the cached package contents /// in memory. /// /// <para>This change is immediately written to the database</para> /// /// <para>Throws ArgumentException if the <paramref name="dataSet"/> is not part of the package</para> /// </summary> /// <param name="package"></param> /// <param name="dataSet"></param> public void RemoveDataSetFromPackage(IExtractableDataSetPackage package, IExtractableDataSet dataSet) { if (!_packageContentsDictionary.Value[package.ID].Contains(dataSet.ID)) { throw new ArgumentException("dataSet " + dataSet + " is not part of package " + package + " so cannot be removed", "dataSet"); } using (var con = _repository.GetConnection()) { _repository.DiscoveredServer.GetCommand( "DELETE FROM ExtractableDataSetPackage_ExtractableDataSet WHERE ExtractableDataSetPackage_ID = " + package.ID + " AND ExtractableDataSet_ID =" + dataSet.ID, con).ExecuteNonQuery(); } _packageContentsDictionary.Value[package.ID].Remove(dataSet.ID); }
/// <summary> /// Adds the given <paramref name="dataSet"/> to the <paramref name="package"/> and updates the cached package contents /// in memory. /// /// <para>This change is immediately written to the database</para> /// /// <para>Throws ArgumentException if the <paramref name="dataSet"/> is already part of the package</para> /// </summary> /// <param name="package"></param> /// <param name="dataSet"></param> public void AddDataSetToPackage(IExtractableDataSetPackage package, IExtractableDataSet dataSet) { if (_packageContentsDictionary.Value.ContainsKey(package.ID) && _packageContentsDictionary.Value[package.ID].Contains(dataSet.ID)) { throw new ArgumentException("dataSet " + dataSet + " is already part of package '" + package + "'", "dataSet"); } using (var con = _repository.GetConnection()) { _repository.DiscoveredServer.GetCommand( "INSERT INTO ExtractableDataSetPackage_ExtractableDataSet(ExtractableDataSetPackage_ID,ExtractableDataSet_ID) VALUES (" + package.ID + "," + dataSet.ID + ")", con).ExecuteNonQuery(); } if (!_packageContentsDictionary.Value.ContainsKey(package.ID)) { _packageContentsDictionary.Value.Add(package.ID, new List <int>()); } _packageContentsDictionary.Value[package.ID].Add(dataSet.ID); }
public PackageContentNode(IExtractableDataSetPackage package, IExtractableDataSet dataSet, IExtractableDataSetPackageManager contents) { _contents = contents; Package = package; DataSet = dataSet; }