/// <summary>
        /// Returns all <see cref="ExtractableColumn"/> Injected with thier corresponding <see cref="ExtractionInformation"/>
        /// </summary>
        /// <param name="repository"></param>
        /// <returns></returns>
        public ExtractableColumn[] GetAllExtractableColumns(IDataExportRepository repository)
        {
            lock (WriteLock)
            {
                var toReturn = repository.GetAllObjects <ExtractableColumn>();
                foreach (var c in toReturn)
                {
                    if (c.CatalogueExtractionInformation_ID == null)
                    {
                        c.InjectKnown((ExtractionInformation)null);
                    }
                    else
                    {
                        if (AllExtractionInformationsDictionary.TryGetValue(c.CatalogueExtractionInformation_ID.Value, out ExtractionInformation ei))
                        {
                            c.InjectKnown(ei);
                        }
                    }
                }

                return(toReturn);
            }
        }
        /// <summary>
        /// Returns all <see cref="ExtractableColumn"/> Injected with thier corresponding <see cref="ExtractionInformation"/>
        /// </summary>
        /// <param name="repository"></param>
        /// <returns></returns>
        public ExtractableColumn[] GetAllExtractableColumns(IDataExportRepository repository)
        {
            var toReturn = repository.GetAllObjects <ExtractableColumn>();

            foreach (var c in toReturn)
            {
                if (c.CatalogueExtractionInformation_ID == null)
                {
                    c.InjectKnown((ExtractionInformation)null);
                }
                else
                {
                    if (AllExtractionInformationsDictionary.ContainsKey(c.CatalogueExtractionInformation_ID.Value))
                    {
                        var extractionInformation = AllExtractionInformationsDictionary[c.CatalogueExtractionInformation_ID.Value];

                        c.InjectKnown(extractionInformation);
                    }
                }
            }

            return(toReturn);
        }