/// <summary> /// Execute the current stage and return the next import stage. /// If the next stage is null, it means the last stage was executed. /// </summary> private IBaseFileImportStage ProcessStage(IBaseFileImportStage currentImportStage, ImportParameters parameters) { ChangeImportStage(parameters, currentImportStage.StageId); WriteFileImportLog(FileImportLogMessageType.StartStage, parameters); var nextStage = currentImportStage?.ProcessStage(parameters); WriteFileImportLog(FileImportLogMessageType.EndStage, parameters); return(nextStage); }
/// <inheritdoc cref="BaseFileImporter"/> protected override void Import(ImportParameters parameters) { _currentImportStage = ImportStageFactory.CreateImportStage(parameters.ImportStage, UserConnection, ColumnsProcessor); while ((_currentImportStage = _currentImportStage?.ProcessStage(parameters)) != null) { if (ImportParametersRepository.GetIsImportSessionCanceled(parameters.ImportSessionId)) { DeleteImportParameters(parameters.ImportSessionId); throw new OperationCanceledException(); } else { SaveCurrentStage(parameters); } } SaveParametersToCache(parameters); }