public void StartImport(string sourceFile, ImportTableConfiguration configuration, Mode mode) { var metaDataCategories = configuration.MetaDataCategories; _mode = mode; _columnInfos = configuration.ColumnInfos; var importDataTable = _importMapper.ConvertToImportDataTable(metaDataCategories, _columnInfos); if (importDataTable == null) { throw new InvalidArgumentException("Could not map to import table"); } MaximizeBox = true; namingImportPanel.FillWith(_namingView); _importer = new Presentation.Services.Importer.Importer(_dataRepositoryMapper, _columnInfos, _importerTask, _dialogCreator); _importDataTable = importDataTable; _columnMappingControls = new Dictionary <string, ColumnMappingControl>(); // Page Source _openSourceFileControl = new OpenSourceFileControl(_dialogCreator, sourceFile) { Dock = DockStyle.Fill }; openSourceFileControlPanel.FillWith(_openSourceFileControl); _openSourceFileControl.OnOpenSourceFile += openSourceFileEvent; xtraTabControl.SelectedPageChanged += (s, e) => OnEvent(() => changeTabs(e.Page, e.PrevPage)); xtraTabControl.SelectedTabPage.Appearance.Header.Font = Fonts.SelectedTabHeaderFont; _rangesCache = new Cache <string, Rectangle>(); createSourceFilePreviewControl(sourceFile); btnImport.Click += (s, e) => OnEvent(importData); btnSelectRange.Click += (s, e) => OnEvent(selectRange); btnImportAll.Click += (s, e) => OnEvent(importAllData); FormClosing += onFormClosing; // Page Imports _dataSetControl = new DataSetControl(_imports, _columnInfos, true); panelImportedTabs.FillWith(_dataSetControl); _dataSetControl.MissingRequiredData += (s, e) => OnEvent(() => enableOKButton(false)); _dataSetControl.RequiredDataCompleted += (s, e) => OnEvent(() => enableOKButton(true)); _dataSetControl.TableDeleted += (s, e) => OnEvent(enableImportsPage); enableImportsPage(); enableOKButton(false); }
private void cleanMemory() { _namingView = null; if (_openSourceFileControl != null) { _openSourceFileControl.OnOpenSourceFile -= openSourceFileEvent; _openSourceFileControl = null; } if (_imports != null) { foreach (ImportDataTable table in _imports.Tables) { table.MetaData?.Dispose(); table.Dispose(); } _imports.Dispose(); } if (_importDataTable != null) { _importDataTable.MetaData?.Dispose(); _importDataTable.Dispose(); } CleanUpHelper.ReleaseEvents(_dataSetControl); _dataSetControl?.Dispose(); CleanUpHelper.ReleaseEvents(_sourceFilePreviewControl); _sourceFilePreviewControl?.Dispose(); CleanUpHelper.ReleaseControls(Controls); Controls.Clear(); _imports = null; _openSourceFileControl = null; _sourceFilePreviewControl = null; _columnMappingControl = null; _dataSetControl = null; _importDataTable = null; _importer = null; _presenter = null; _dataRepositoryMapper = null; _importMapper = null; _columnInfos = null; cleanColumnMappingControls(); _columnMappingControls?.Clear(); _columnMappingControls = null; columnMappingControlPanel.Controls.Clear(); }