/// <summary> /// Ctor: Accepts instances via constructor injection /// </summary> /// <param name="aggregateRepository">Instance of the AggregateRepository</param> /// <param name="dataSourceRepository">Instance of the DataSourceRepository</param> /// <param name="dataTypeRepository">Instance of the DataType Repository</param> /// <param name="importServiceResolver">Instance of the ImportServiceResolver</param> /// <param name="dataSourceResolver">Instance of the DataSourceResolver</param> public DataService(IAggregateRepository aggregateRepository, IDataSourceRepository dataSourceRepository, IDataTypeRepository dataTypeRepository, IImportServiceResolver importServiceResolver , IDataSourceResolver dataSourceResolver) { if (aggregateRepository == null) throw new ArgumentNullException("aggregateRepository", "No valid AggregateRepository supplied to DataService."); if (dataSourceRepository == null) throw new ArgumentNullException("dataSourceRepository", "No valid DataSourceRepository supplied to DataService."); if (dataTypeRepository == null) throw new ArgumentNullException("dataTypeRepository", "No valid DataTypeRepository supplied to DataService."); if (importServiceResolver == null) throw new ArgumentNullException("importServiceResolver", "No valid ImportServiceResolver supplied to DataService."); if (dataSourceResolver == null) throw new ArgumentNullException("dataSourceResolver", "No valid DataSourceResolver supplied to DataService."); _aggregateRepository = aggregateRepository; _dataSourceRepository = dataSourceRepository; _dataTypeRepository = dataTypeRepository; _importServiceResolver = importServiceResolver; _dataSourceResolver = dataSourceResolver; }
public void Initialise() { // Data Context and Repositories _db = new AggregateContext(); _repository = new AggregateRepository(_db); _dataSourceRepository = new DataSourceRepository(_db); _dataTypeRepository = new DataTypeRepository(_db); // No parm, currently Enumeration // DataSources and Resolver var renUkHelper = new RenUkHtmlHelper(); _renUkDatasource = new RenUkDataSource(renUkHelper); var snhHelper = new SnhKmlHelper(); _snhDataSource = new SnhDataSource(snhHelper); _dataSourceResolver = new DataSourceResolver(_snhDataSource, _renUkDatasource); // Matching algorithm _coefficientAlgorithm = new DiceCoefficient(); _similarityAlgorithm = new LcSubstr(); _editDistanceAlgorithm = new LevenshteinEditDistance(); _preProcess = new PreProcessor(); _algorithm = new MatchingAlgorithm(_coefficientAlgorithm, 0.9f, _similarityAlgorithm, 0.9f, _editDistanceAlgorithm, 2, _preProcess); // Mapper class _mapper = new ImportAggregateToAggregateMapper(); // Import Services and Resolver _renUkImportService = new RenUkImportService(_repository, _dataSourceRepository, _renUkDatasource, _algorithm, _mapper); _snhImportService = new SnhImportService(_repository, _dataSourceRepository, _snhDataSource, _algorithm, _mapper); _importServiceResolver = new ImportServiceResolver(_snhImportService, _renUkImportService); }