예제 #1
0
파일: LookupTest.cs 프로젝트: 24418863/rdm
        private string GetSql(Catalogue mainCata)
        {
            mainCata.ClearAllInjections();

            var qb = new QueryBuilder(null, null);

            qb.AddColumnRange(mainCata.GetAllExtractionInformation(ExtractionCategory.Any));
            return(qb.SQL);
        }
        private void RefreshUIFromDatabase()
        {
            _catalogue.ClearAllInjections();

            olvCatalogueItems.ClearObjects();
            olvCatalogueItems.AddObjects(_catalogue.CatalogueItems);

            cbTableInfos.Items.Clear();
            cbTableInfos.Items.AddRange(_catalogue.GetTableInfoList(true));
        }
예제 #3
0
        public ExecuteCommandSetExtractionIdentifier(IActivateItems activator, Catalogue catalogue) : base(activator)
        {
            _catalogue = catalogue;

            _catalogue.ClearAllInjections();

            _extractionInformations = _catalogue.GetAllExtractionInformation(ExtractionCategory.Any);

            if (_extractionInformations.Length == 0)
            {
                SetImpossible("Catalogue does not have any extractable columns");
            }

            _alreadyMarked = _extractionInformations.Where(ei => ei.IsExtractionIdentifier).ToArray();
        }
        /// <inheritdoc/>
        public override void Execute()
        {
            base.Execute();

            foreach (var descCol in _lookupDescriptionColumns)
            {
                Lookup lookup = new Lookup(_catalogueRepository, descCol, _fkToPkTuples.First().Item1, _fkToPkTuples.First().Item2, ExtractionJoinType.Left, _collation);

                foreach (var supplementalKeyPair in _fkToPkTuples.Skip(1))
                {
                    new LookupCompositeJoinInfo(_catalogueRepository, lookup, supplementalKeyPair.Item1, supplementalKeyPair.Item2, _collation);
                }

                if (_alsoCreateExtractionInformations)
                {
                    string proposedName;

                    if (_lookupDescriptionColumns.Length == 1)
                    {
                        proposedName = _foreignKeyExtractionInformation.GetRuntimeName() + "_Desc";
                    }
                    else
                    {
                        proposedName = _foreignKeyExtractionInformation.GetRuntimeName() + "_" + descCol.GetRuntimeName();
                    }

                    var newCatalogueItem = new CatalogueItem(_catalogueRepository, _catalogue, proposedName);
                    newCatalogueItem.SetColumnInfo(descCol);

                    //bump everyone down 1
                    foreach (var toBumpDown in _allExtractionInformations.Where(e => e.Order > _foreignKeyExtractionInformation.Order))
                    {
                        toBumpDown.Order++;
                        toBumpDown.SaveToDatabase();
                    }

                    var newExtractionInformation = new ExtractionInformation(_catalogueRepository, newCatalogueItem, descCol, descCol.ToString());
                    newExtractionInformation.ExtractionCategory = ExtractionCategory.Supplemental;
                    newExtractionInformation.Alias = newCatalogueItem.Name;
                    newExtractionInformation.Order = _foreignKeyExtractionInformation.Order + 1;
                    newExtractionInformation.SaveToDatabase();
                }
            }

            _catalogue.ClearAllInjections();
        }