Пример #1
0
        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);
        }
Пример #7
0
 public PackageContentNode(IExtractableDataSetPackage package, IExtractableDataSet dataSet, IExtractableDataSetPackageManager contents)
 {
     _contents = contents;
     Package   = package;
     DataSet   = dataSet;
 }