public async Task Process(DataSource.Entities.DataSource dataSource)
        {
            var uploadProcess = DataSourceUploadProcess.Create(dataSource.Id);

            uploadProcess.Id = await _uploadProcessRepository.Create(uploadProcess);

            await _dataSourceRepository.Create(dataSource);

            await _dataSourceRepository.Save(dataSource.Id, dataSource.Value);

            uploadProcess.State = DataSourceUploadProcess.DataSourceUploadProcessState.FileStored;
            await _uploadProcessRepository.Update(uploadProcess);

            dataSource.Schema = _schemaGenerator.Generate(dataSource);

            uploadProcess.State = DataSourceUploadProcess.DataSourceUploadProcessState.SchemaGenerated;
            await _uploadProcessRepository.Update(uploadProcess);

            await _dataSourceRepository.Update(dataSource);

            uploadProcess.State = DataSourceUploadProcess.DataSourceUploadProcessState.Done;
            await _uploadProcessRepository.Update(uploadProcess);
        }
예제 #2
0
 /// <summary>
 /// Create a new data source for the provided projectId
 /// </summary>
 public void Create(int projectId, DataSource dataSource)
 {
     _dataSourceRepository.Create(projectId, dataSource.Name, dataSource.Description, dataSource.DataConnectionInfoId);
 }