public DataTable ProcessPipelineData(DataTable toProcess, IDataLoadEventListener listener, GracefulCancellationToken cancellationToken)
        {
            toProcess.TableName = GetTableName();
            toProcess.ExtendedProperties.Add("ProperlyNamed", true);

            var extractDatasetCommand = _request as ExtractDatasetCommand;

            if (extractDatasetCommand != null)
            {
                var catalogue = extractDatasetCommand.Catalogue;

                var sourceFolder = _request.GetExtractionDirectory();
                if (sourceFolder == null)
                {
                    throw new Exception("Could not find Source Folder. Does the project have an Extraction Directory defined?");
                }

                var outputFolder = sourceFolder.Parent.CreateSubdirectory(ExtractionDirectory.METADATA_FOLDER_NAME);
                var outputFile   = new FileInfo(Path.Combine(outputFolder.FullName, toProcess.TableName + ".sd"));

                catalogue.Name = toProcess.TableName;
                var cmd = new ExecuteCommandExportObjectsToFile(_activator, catalogue, outputFile);
                cmd.Execute();
                catalogue.RevertToDatabaseState();
            }
            return(toProcess);
        }
示例#2
0
        public ReleaseAudit ProcessPipelineData(ReleaseAudit toProcess, IDataLoadEventListener listener, GracefulCancellationToken cancellationToken)
        {
            var allCatalogues =
                _releaseData.SelectedDatasets.Values.SelectMany(sd => sd.ToList())
                .Select(sds => sds.ExtractableDataSet.Catalogue)
                .Distinct()
                .Cast <IMapsDirectlyToDatabaseTable>()
                .ToArray();

            if (!allCatalogues.Any())
            {
                listener.OnNotify(this, new NotifyEventArgs(ProgressEventType.Warning, "No Catalogues are selected for release"));
                return(toProcess);
            }

            var sourceFolder = _releaseData.ConfigurationsForRelease.First().Value.First().ExtractDirectory.Parent;

            if (sourceFolder == null)
            {
                throw new Exception("Could not find Source Folder. DOes the project have an Extraction Directory defined?");
            }

            var outputFolder = sourceFolder.CreateSubdirectory(ExtractionDirectory.METADATA_FOLDER_NAME);

            var cmd = new ExecuteCommandExportObjectsToFile(_activator, allCatalogues, outputFolder);

            cmd.Execute();

            return(toProcess);
        }
        public ExecuteCommandExportObjectsToFileUI(IActivateItems activator, IMapsDirectlyToDatabaseTable[] toExport, DirectoryInfo targetDirectoryInfo = null) : base(activator)
        {
            _toExport = toExport;
            _cmd      = new ExecuteCommandExportObjectsToFile(activator.RepositoryLocator, toExport, targetDirectoryInfo);

            if (_cmd.IsImpossible)
            {
                SetImpossible(_cmd.ReasonCommandImpossible);
            }

            ShowInExplorer = true;
        }
        private void btnSavePlan_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter = "Plans (*.plan)|*.plan";
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                var fi = new FileInfo(sfd.FileName);

                var cmdAnoTablesToo = new ExecuteCommandExportObjectsToFile(Activator, Activator.RepositoryLocator.CatalogueRepository.GetAllObjects <ANOTable>().ToArray(), fi.Directory);
                cmdAnoTablesToo.ShowInExplorer = false;

                if (!cmdAnoTablesToo.IsImpossible)
                {
                    cmdAnoTablesToo.Execute();
                }

                var json = JsonConvertExtensions.SerializeObject(_planManager, Activator.RepositoryLocator);
                File.WriteAllText(fi.FullName, json);
            }
        }