public IDataSourceFile SetDataSource(string dataSourceFileName)
        {
            if (string.IsNullOrEmpty(dataSourceFileName))
            {
                return(null);
            }

            ImportedSheets  = new DataSheetCollection();
            _dataSourceFile = _importer.LoadFile(_columnInfos, dataSourceFileName, _metaDataCategories);

            if (_dataSourceFile == null)
            {
                return(null);
            }

            setDefaultMetaData();
            setMetaDataWithManualInput();
            createSheetsForViewing();
            View.SetGridSource();
            SetDataFormat(_dataSourceFile.Format, _dataSourceFile.AvailableFormats);
            View.ClearTabs();
            View.AddTabs(GetSheetNames());
            View.ResetImportButtons();

            View.SelectTab(_dataSourceFile.FormatCalculatedFrom);
            return(_dataSourceFile);
        }
        private void loadSheets(IDataSourceFile dataSourceFile, IReadOnlyList <string> sheetNames, string filter, string selectedNamingConvention = null)
        {
            if (!sheetNames.Any())
            {
                View.DisableConfirmationView();
                return;
            }

            var sheets       = dataSourceFile.DataSheets.GetDataSheetsByName(sheetNames);
            var dataMappings = dataSourceFile.Format.Parameters.OfType <MetaDataFormatParameter>().Where(p => p.ColumnName != null).Select(md =>
                                                                                                                                           new MetaDataMappingConverter()
            {
                Id    = md.MetaDataId,
                Index = sheetName => md.IsColumn ? dataSourceFile.DataSheets.GetDataSheetByName(sheetName).GetColumnDescription(md.ColumnName).Index : -1
            }).ToList();

            var mappings = dataMappings.Union
                           (
                dataSourceFile.Format.Parameters.OfType <GroupByDataFormatParameter>().Select(md => new MetaDataMappingConverter()
            {
                //in case of a duplicate name coming from an excel column used as a grouping by with the same name as a metaData, we add a suffix
                Id    = dataMappings.ExistsById(md.ColumnName) ? md.ColumnName + Constants.ImporterConstants.GroupingBySuffix : md.ColumnName,
                Index = sheetName => dataSourceFile.DataSheets.GetDataSheetByName(sheetName).GetColumnDescription(md.ColumnName).Index
            })
                           ).ToList();


            _dataSource.SetMappings(dataSourceFile.Path, mappings);
            _dataSource.NanSettings = _nanPresenter.Settings;
            _dataSource.SetDataFormat(_columnMappingPresenter.GetDataFormat());
            var errors = _dataSource.AddSheets(sheets, _columnInfos, filter);

            errors.Add(validateDataSource(_dataSource));
            _importerDataPresenter.SetTabMarks(errors, _dataSource.DataSets);
            if (errors.Any())
            {
                throw new ImporterParsingException(errors);
            }


            var keys = new List <string>()
            {
                Constants.FILE,
                Constants.SHEET
            };

            keys.AddRange(_dataSource.GetMappings().Select(m => m.Id));
            _confirmationPresenter.SetKeys(keys);
            View.EnableConfirmationView();
            _confirmationPresenter.SetViewingStateToNormal();
            _confirmationPresenter.SetNamingConventions(_dataImporterSettings.NamingConventions.ToList(), selectedNamingConvention);
        }
        public bool SetSourceFile(string path)
        {
            _dataSourceFile = _importerDataPresenter.SetDataSource(path);

            if (_dataSourceFile == null)
            {
                return(false);
            }

            _sourceFilePresenter.SetFilePath(path);
            _columnMappingPresenter.ValidateMapping();
            _configuration.FileName = path;

            return(true);
        }
 public override void GlobalContext()
 {
     base.GlobalContext();
     _dataSourceFile = A.Fake <IDataSourceFile>();
     _importer       = A.Fake <IImporter>();
     _view           = A.Fake <IImporterDataView>();
     _dataSheet      = new DataSheet {
         SheetName = "sheet1"
     };
     _dataSheet.AddColumn("test_column", 0);
     _dataSheet.AddRow(new List <string>()
     {
         "1"
     });
     _dataSheet2 = new DataSheet {
         SheetName = "sheet2"
     };
     _dataSheet2.AddColumn("test_column", 0);
     _dataSheet2.AddRow(new List <string>()
     {
         "1"
     });
     _dataSheet3 = new DataSheet {
         SheetName = "sheet3"
     };
     _dataSheet3.AddColumn("test_column", 0);
     _dataSheet3.AddRow(new List <string>()
     {
         "1"
     });
     _sheetsCollection = new DataSheetCollection();
     _sheetsCollection.AddSheet(_dataSheet);
     _sheetsCollection.AddSheet(_dataSheet2);
     _sheetsCollection.AddSheet(_dataSheet3);
     A.CallTo(() => _importer.LoadFile(A <ColumnInfoCache> ._, A <string> ._, A <IReadOnlyList <MetaDataCategory> > ._)).Returns(_dataSourceFile);
     A.CallTo(() => _view.GetActiveFilterCriteria()).Returns("active_filter_criteria");
     A.CallTo(() => _dataSourceFile.DataSheets).Returns(_sheetsCollection);
 }
Beispiel #5
0
        protected override void Context()
        {
            _dataImporterSettings = new DataImporterSettings();
            base.Context();
            _mapper = A.Fake <IDataSetToDataRepositoryMapper>();
            var cache   = new Cache <string, IDataSet>();
            var dataSet = new DataSet();

            dataSet.AddData(new List <ParsedDataSet>()
            {
                new ParsedDataSet(new List <string>(), A.Fake <DataSheet>(), new List <UnformattedRow>(), new Dictionary <ExtendedColumn, IList <SimulationPoint> >())
            });
            _dataSource = A.Fake <IDataSource>();
            A.CallTo(() => _dataSource.DataSets).Returns(cache);
            cache.Add("sheet1", dataSet);
            var dataRepository = new DataRepository {
                Name = "name"
            };

            dataRepository.ExtendedProperties.Add(new ExtendedProperty <string>()
            {
                Name = "Molecule", Value = "Molecule1"
            });
            dataRepository.ExtendedProperties.Add(new ExtendedProperty <string>()
            {
                Name = "Mol weight", Value = 22.0.ToString()
            });

            var dataColumn = new BaseGrid("Time", A.Fake <IDimension>());
            var dataInfo   = new DataInfo(ColumnOrigins.Undefined);

            dataColumn.DataInfo = dataInfo;
            dataRepository.Add(dataColumn);

            var moleculeDataColumn = new DataColumn("Measurement", A.Fake <IDimension>(), dataColumn);

            dataColumn.DataInfo = dataInfo;
            dataRepository.Add(moleculeDataColumn);
            A.CallTo(() => _mapper.ConvertImportDataSet(A <ImportedDataSet> .Ignored)).Returns(new DataSetToDataRepositoryMappingResult(dataRepository));

            var moleculeMetaDataCategory = createMetaDataCategory <string>("Molecule", isMandatory: true);

            moleculeMetaDataCategory.IsListOfValuesFixed = true;
            moleculeMetaDataCategory.DefaultValue        = "Molecule1";
            moleculeMetaDataCategory.ListOfValues.Add("Molecule1", 6.0.ToString());
            moleculeMetaDataCategory.ShouldListOfValuesBeIncluded = true;
            moleculeMetaDataCategory.SelectDefaultValue           = true;

            _metaDataCategories = new List <MetaDataCategory>()
            {
                moleculeMetaDataCategory,
                createMetaDataCategory <string>("Mol weight", isMandatory: false)
            };
            var dataFormat = A.Fake <IDataFormat>();

            A.CallTo(() => dataFormat.Parameters).Returns(new List <DataFormatParameter>());
            _dataSourceFile = A.Fake <IDataSourceFile>();
            A.CallTo(() => _dataSourceFile.Format).Returns(dataFormat);
            _importerDataPresenter = A.Fake <IImporterDataPresenter>();
            A.CallTo(() => _importerDataPresenter.SetDataSource(A <string> .Ignored)).Returns(_dataSourceFile);
            _importerView = A.Fake <IImporterView>();
            _importer     = A.Fake <IImporter>();
            _nanPresenter = A.Fake <INanPresenter>();
            _importConfirmationPresenter = A.Fake <IImportConfirmationPresenter>();
            _columnMappingPresenter      = A.Fake <IColumnMappingPresenter>();
            _sourceFilePresenter         = A.Fake <ISourceFilePresenter>();
            _dialogCreator = A.Fake <IDialogCreator>();
            _pkmlPeristor  = A.Fake <IPKMLPersistor>();

            sut = new ImporterPresenterForTest(
                _importerView,
                _mapper,
                _importer,
                _nanPresenter,
                _importerDataPresenter,
                _importConfirmationPresenter,
                _columnMappingPresenter,
                _sourceFilePresenter,
                _dialogCreator,
                _pkmlPeristor,
                _dataSource);
            _importerConfiguration = A.Fake <ImporterConfiguration>();
            sut.LoadConfiguration(_importerConfiguration, "");
            sut.SetSettings(_metaDataCategories, new ColumnInfoCache(), _dataImporterSettings);
        }
 private void openFile(string configurationFileName)
 {
     _sourceFilePresenter.SetFilePath(configurationFileName);
     _dataSourceFile = _importerDataPresenter.SetDataSource(configurationFileName);
 }