public static IDictionary<IDataImportJob, IDataImportResult> Run(IDataImport dataImport) { IDictionary<IDataImportJob, IDataImportResult> dico = null; try { // Check context first CheckContext(dataImport); // Analyze Analyze(dataImport); // Run dico = dataImport.Run(); } catch(DataImportException) { throw; } catch (Exception ex) { throw new DataImportException(dataImport, "An unknow error occured.", ex); } return dico; }
/// <summary> /// Check that <see cref="IDataImport"/> context are properly set and reachable. /// Throw <see cref="DataImportException"/> if problems occurs. /// </summary> private static void CheckContext(IDataImport dataImport) { if (dataImport == null) throw new DataImportException(dataImport, "The importer can't be null", new ArgumentNullException(nameof(dataImport))); if (dataImport.SourceContext == null) throw new DataImportException(dataImport, "SourceContext can't be null."); if (dataImport.DestinationContext == null) throw new DataImportException(dataImport, "DestinationContext can't be null."); using (var sourceUow = dataImport.SourceContext.CreateUnitOfWork()) { if (sourceUow == null) { throw new DataImportException(dataImport, "Unable to create an IUnitOfWork from SourceContext."); } } using (var destUow = dataImport.DestinationContext.CreateUnitOfWork()) { if (destUow == null) { throw new DataImportException(dataImport, "Unable to create an IUnitOfWork from DestinationContext."); } } }
private void ImportExcelData(ExcelSettings excelSettings) { dataImport = new ExcelDataImport(excelSettings); Headers = dataImport.GetHeaders(); rows = dataImport.LoadAll(); RowsView = CreateDataView(); }
private void ImportAsciiData(AsciiSettings asciiSettings) { dataImport = new AsciiDataImport(asciiSettings); Headers = dataImport.GetHeaders(); rows = dataImport.LoadAll(); RowsView = CreateDataView(); }
public IndexModel(ITweetBrowserData dbContext, IDataImport remoteDataSrc, IConfiguration configuration, ILogger <IndexModel> logger) { _dbContext = dbContext; _remoteDataSrc = remoteDataSrc; _configuration = configuration; _logger = logger; }
private void ImportHeaders(IDataImport importer) { var headers = importer.GetHeaders().Skip(1); importerIndexPosition[importer] = mergedHeaders.Count - 1; mergedHeaders.AddRange(headers); }
private void btnImport_Click(object sender, EventArgs e) { ztinfo zt = (ztinfo)cmbZTList.SelectedItem; int ztid = zt.ID; string ztname = zt.Name; ztname = ztname.Replace(zt.DbType.ToUpper(), "").Trim(); switch (zt.DbType.ToUpper()) { case "CPRS": import = new CPRSImport(txtFileName.Text.Trim(), ztname, ztid); break; case "WPI": import = new WPIImport(txtFileName.Text.Trim(), ztname, ztid); break; case "EPODOC": import = new EPODOCImport(txtFileName.Text.Trim(), ztname, ztid); break; } import.SetMaxProcess += new SetMaxValueEventHander(SetMax); import.ShowProcess += new ValueChangedEventHandler(ShowProcess); //import.Import(); ac = new Func <bool>(import.Import); ar = ac.BeginInvoke(CallBack, ac); //MessageBox.Show("开始导入"); btnCen.Enabled = true; this.btnImport.Enabled = false; }
private ExtendTask GetTaskFromDataRow(DataRow rowTask) { if (rowTask == null) { return(null); } // Task本身 ExtendTask task = new ExtendTask(); task.DatasourceType = (enumDataType)rowTask["DataType"]; task.MapScale = (int)rowTask["MapScale"]; task.Name = rowTask["TaskName"] as string; task.Path = rowTask["TaskPath"] as string; task.SourcePath = rowTask["Datasource"] as string; task.StandardName = cmbStandard.SelectedItem as string; task.SchemaID = ((KeyValuePair <string, string>)cmbSchema.SelectedItem).Key; task.TopoTolerance = Convert.ToDouble(rowTask["TopoTolerance"]); task.UseSourceDirectly = (bool)rowTask["UseSourceDirectly"]; task.Messager = this.MessageHandler; // DataImport IDataImport dataImporter = null; if (task.DatasourceType == enumDataType.VCT) { dataImporter = new VCTDataImport(); } else { NoReferenceDataImport noRefDataImport = new NoReferenceDataImport(); noRefDataImport.ReferenceLayer = ((KeyValuePair <string, string>)cmbSpatialRefLayer.SelectedItem).Key; dataImporter = noRefDataImport; } dataImporter.ImportingObjectChanged += new ImportingObjectChangedHandler(dataImporter_ImportingObjectChanged); task.DataImporter = dataImporter; string strCheckMode = rowTask["CheckMode"] as string; enumCheckMode checkMode = enumCheckMode.CreateOnly; if (strCheckMode == Text_CheckMode_CheckPartly) { checkMode = enumCheckMode.CheckPartly; } if (strCheckMode == Text_CheckMode_CheckAll) { checkMode = enumCheckMode.CheckAll; task.ReadyForCheck(true); } task.CheckMode = checkMode; task.RuleInfos = rowTask["Hy.Check.Rules"] as List <SchemaRuleEx>; return(task); }
private void CreateAndRunDataImport(IDataSource dataSource) { if (this.CancellationToken.IsCancellationRequested) { this.OnDataImportPrevented(dataSource); return; } IDataImport dataImport = null; try { try { dataImport = this.CreateDataImport(dataSource); } catch (Exception exception) { this.OnCreateDataImportError(dataSource, exception); return; } this.OnDataImportStarted(dataImport); bool wasSuccessful; IEnumerable <RecordFailure> failures; try { wasSuccessful = this.TryRunDataImport(dataImport, out failures); } catch (OperationCanceledException) { this.OnDataImportCanceled(dataImport); return; } catch (Exception exception) { this.OnDataImportError(dataImport, exception); return; } this.OnDataImportCompleted(dataImport, wasSuccessful, failures); } catch (Exception exception) { this.OnError(exception, dataSource, dataImport); } }
private void SetData(IDataImport importer) { _tableItems = importer.GetData(); var tableDataPairs = _tableItems as TableDataPair[] ?? _tableItems.ToArray(); if (!tableDataPairs.Any()) { return; } string[] tableNames = tableDataPairs.Select(t => t.TableName).ToArray(); listBox1.Items.AddRange(tableNames); }
private void btnImport_Click(object sender, EventArgs e) { if (txtFileName.Text.Trim() == "") { MessageBox.Show("请选择数据源!", "提示"); return; } if (this.txtTemplate.Text.Trim() == "") { MessageBox.Show("请选择模板!", "提示"); return; } ztinfo zt = (ztinfo)cmbZTList.SelectedItem; ztid = zt.ID; strname = zt.Name; type = zt.DbType; string ztname = zt.Name; ztname = ztname.Replace(zt.DbType.ToUpper(), "").Trim(); if (Path.GetExtension(this.txtFileName.Text.Trim()).IndexOf(".xls") >= 0) { import = new ExcelImport(txtFileName.Text.Trim(), ztname, ztid, type, tmplate); } else { switch (zt.DbType.ToUpper()) { case "CPRS": import = new CPRSImport(txtFileName.Text.Trim(), ztname, ztid); break; case "WPI": import = new WPIImport(txtFileName.Text.Trim(), ztname, ztid); break; case "EPODOC": import = new EPODOCImport(txtFileName.Text.Trim(), ztname, ztid); break; } } import.Skip = this.rbSkip.Checked; import.SetMaxProcess += new SetMaxValueEventHander(SetMax); import.ShowProcess += new ValueChangedEventHandler(ShowProcess); //import.Import(); ac = new Func <bool>(import.Import); ar = ac.BeginInvoke(CallBack, ac); //MessageBox.Show("开始导入"); //btnCen.Enabled = true; this.btnImport.Enabled = false; }
public static bool TryRun(IDataImport dataImport, out IDictionary<IDataImportJob, IDataImportResult> results) { var fail = false; results = null; try { results = Run(dataImport); } catch(Exception) { fail = true; } return !fail; }
private void btnImport_Click(object sender, EventArgs e) { if (txtFileName.Text.Trim() == "") { MessageBox.Show("请选择数据源!", "提示"); return; } if (this.txtTemplate.Text.Trim() == "") { MessageBox.Show("请选择模板!", "提示"); return; } ztinfo zt = (ztinfo)cmbZTList.SelectedItem; ztid = zt.ID; strname = zt.Name; type = zt.DbType; string ztname = zt.Name; ztname = ztname.Replace(zt.DbType.ToUpper(), "").Trim(); if (Path.GetExtension(this.txtFileName.Text.Trim()).IndexOf(".xls") >= 0) { import = new ExcelImport(txtFileName.Text.Trim(), ztname, ztid, type, tmplate); } else { switch (zt.DbType.ToUpper()) { case "CPRS": import = new CPRSImport(txtFileName.Text.Trim(), ztname, ztid); break; case "WPI": import = new WPIImport(txtFileName.Text.Trim(), ztname, ztid); break; case "EPODOC": import = new EPODOCImport(txtFileName.Text.Trim(), ztname, ztid); break; } } import.Skip = this.rbSkip.Checked; import.SetMaxProcess += new SetMaxValueEventHander(SetMax); import.ShowProcess += new ValueChangedEventHandler(ShowProcess); //import.Import(); ac = new Func<bool>(import.Import); ar = ac.BeginInvoke(CallBack, ac); //MessageBox.Show("开始导入"); //btnCen.Enabled = true; this.btnImport.Enabled = false; }
private void ImportSingleFile(IDataImport importer, int startingIndex) { try { foreach (var row in importer.LoadAll()) { var array = GetValuesArray(row); var samples = row.Samples.ToArray(); for (int sampleIndex = 0; sampleIndex < samples.Length; sampleIndex++) { array[startingIndex + sampleIndex] = samples[sampleIndex]; } } } catch (Exception) { return; } }
public DataImportCompletedEventArgs(IDataImport dataImport, bool wasSuccessful, IEnumerable <RecordFailure> failures) : base(dataImport) { this.WasSuccessful = wasSuccessful; this.Failures = failures; }
public MessageExportResultTransmitter(IDataImport destination, bool clientIsDownlevel) { this.destination = destination; this.clientIsDownlevel = clientIsDownlevel; }
public DataImportOrchestrationErrorEventArgs(Exception exception, IDataSource dataSource = null, IDataImport dataImport = null) : base(exception) { this.DataSource = dataSource; this.DataImport = dataImport; }
public static void ExportRoutine(IMailboxReplicationProxyService mrsProxy, long dataExportHandle, IDataImport destProxy, DataExportBatch firstBatch, bool useCompression) { try { DataExportBatch dataExportBatch; do { if (firstBatch != null) { dataExportBatch = firstBatch; firstBatch = null; } else { if (TestIntegration.Instance.AbortConnectionDuringFX) { MailboxReplicationProxyClient mailboxReplicationProxyClient = (MailboxReplicationProxyClient)mrsProxy; mailboxReplicationProxyClient.Abort(); } dataExportBatch = mrsProxy.DataExport_ExportData2(dataExportHandle); if (dataExportBatch.IsLastBatch) { dataExportHandle = 0L; } } bool flag = false; try { if (dataExportBatch.Opcode != 0) { IDataMessage message = DataMessageSerializer.Deserialize(dataExportBatch.Opcode, dataExportBatch.Data, useCompression); destProxy.SendMessage(message); } if (dataExportBatch.FlushAfterImport) { destProxy.SendMessageAndWaitForReply(FlushMessage.Instance); } flag = true; } finally { if (!flag && dataExportHandle != 0L) { MrsTracer.ProxyClient.Error("Exception was thrown during import/flush, canceling export.", new object[0]); mrsProxy.DataExport_CancelExport(dataExportHandle); dataExportHandle = 0L; } } }while (!dataExportBatch.IsLastBatch); } finally { if (dataExportHandle != 0L) { mrsProxy.CloseHandle(dataExportHandle); } } }
public DataImportErrorEventArgs(Exception exception, IDataImport dataImport) : base(exception) { this.DataImport = dataImport; }
protected virtual void OnError(Exception exception, IDataSource dataSource, IDataImport dataImport) { this.Error?.Invoke(this, new DataImportOrchestrationErrorEventArgs(exception, dataSource, dataImport)); }
protected virtual void OnDataImportError(IDataImport dataImport, Exception exception) { this.DataImportError?.Invoke(this, new DataImportErrorEventArgs(exception, dataImport)); }
protected virtual void OnDataImportCompleted(IDataImport dataImport, bool wasSuccessful, IEnumerable <RecordFailure> failures) { this.DataImportCompleted?.Invoke(this, new DataImportCompletedEventArgs(dataImport, wasSuccessful, failures)); }
/// <summary> /// Check that <see cref="IDataImport"/> can run properly. /// </summary> /// <param name="dataImport"></param> private static void Analyze(IDataImport dataImport) { var analysisFail = false; var analysisResults = dataImport.Analyze(); var message = new StringBuilder("The data import job can't be run for the following reasons:"); foreach (var result in analysisResults) { if(!result.Value.Succeed) { analysisFail = true; message.AppendLine(string.Format("Job: {0} - {1}", result.Key.ToString(), result.Value.Message)); } } if(analysisFail) throw new DataImportException(dataImport, message.ToString()); }
public DataImportException(IDataImport dataImport, string message, Exception innerException = null) : base(message, innerException) { Occured = DateTime.Now; DataImport = dataImport; }
public DataImportEventArgs(IDataImport dataImport) { this.DataImport = dataImport; }
protected virtual bool TryRunDataImport(IDataImport dataImport, out IEnumerable <RecordFailure> failures) { return(dataImport.TryRun(this.CancellationToken, out failures)); }
protected virtual void OnDataImportCanceled(IDataImport dataImport) { this.DataImportCanceled?.Invoke(this, new DataImportEventArgs(dataImport)); }
/// <summary> /// 构建Task对象,进行创建 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void wizardControl_FinishClick(object sender, CancelEventArgs e) { this.m_Task = GenerateTask(); IDataImport dataImporter = null; switch (this.m_DataType) { case enumDataType.FileGDB: dataImporter = new FileGDBDataImport(); break; case enumDataType.PGDB: dataImporter = new MDBDataImport(); break; case enumDataType.SHP: dataImporter = new SHPDataImport(); break; case enumDataType.VCT: VCTDataImport vctDataImport = new VCTDataImport(); // vctDataImport.ConvertStepping += new VCTConvertStepHandler(vctDataImport_ConvertStepping); dataImporter = vctDataImport; break; } this.m_Task.DataImporter = dataImporter; this.m_Task.Messager = MessageHandler; //#if !DEBUG this.Hide(); //#endif #region 后台线程导入方式 //Hy.Common.UI.frmProgress frmProgress = new Hy.Common.UI.frmProgress(); //dataImporter.ImportingObjectChanged += new ImportingObjectChangedHandler(frmProgress.ShowDoing); //System.Threading.Thread newThread = new System.Threading.Thread(new System.Threading.ThreadStart(RunTaskCreate)); //newThread.Start(); //frmProgress.ShowGifProgress(); //frmProgress.ShowDialog(); #endregion // 线程显示进度方式 dataImporter.ImportingObjectChanged += new ImportingObjectChangedHandler(dataImporter_ImportingObjectChanged); try { bool isSucceed = m_Task.Create(); isSucceed = isSucceed && m_Task.CreateMXD(); if (isSucceed) { //MessageBoxApi.ShowFinishedMessageBox("任务创建成功!"); BolFinished = true; this.DialogResult = DialogResult.OK; } else { MessageBoxApi.ShowFinishedMessageBox("任务创建失败!"); this.DialogResult = DialogResult.Cancel; } } catch (Exception exp) { MessageHandler(enumMessageType.Exception, exp.ToString()); } finally { m_GifProgress.Hide(); //m_Progress.Hide(); } }
void ISourceMailbox.ExportMessages(List <MessageRec> messages, IFxProxyPool proxyPool, ExportMessagesFlags flags, PropTag[] propsToCopyExplicitly, PropTag[] excludeProps) { MrsTracer.ProxyClient.Function("RemoteSourceMailbox.ExportMessages({0} messages)", new object[] { messages.Count }); if (propsToCopyExplicitly != null) { throw new UnsupportedRemoteServerVersionWithOperationPermanentException(base.MrsProxyClient.ServerName, base.ServerVersion.ToString(), "ISourceMailbox_ExportMessages"); } base.VerifyMailboxConnection(); using (IDataImport dataImport = new FxProxyPoolReceiver(proxyPool, false)) { IDataMessage dataMessage = new FxProxyPoolGetFolderDataResponseMessage(proxyPool.GetFolderData()); DataMessageOpcode dataMessageOpcode; byte[] targetObjectData; dataMessage.Serialize(base.MrsProxyClient.UseCompression, out dataMessageOpcode, out targetObjectData); DataExportBatch dataExportBatch; if (!base.ServerVersion[8]) { if ((flags & ExportMessagesFlags.OneByOne) != ExportMessagesFlags.None || excludeProps != null) { throw new UnsupportedRemoteServerVersionWithOperationPermanentException(base.MrsProxyClient.ServerName, base.ServerVersion.ToString(), "ISourceMailbox_ExportMessages"); } dataExportBatch = base.MrsProxy.ISourceMailbox_ExportMessageBatch2(base.Handle, messages, targetObjectData); } else { int[] data = DataConverter <PropTagConverter, PropTag, int> .GetData(excludeProps); dataExportBatch = base.MrsProxy.ISourceMailbox_ExportMessages(base.Handle, messages, (int)flags, data, targetObjectData); } MessageExportResultReceiver messageExportResultReceiver = null; IDataImport destination = dataImport; if (!base.ServerVersion[16]) { messageExportResultReceiver = new MessageExportResultReceiver(destination, false); destination = messageExportResultReceiver; } using (messageExportResultReceiver) { using (BufferedReceiver bufferedReceiver = new BufferedReceiver(destination, false, base.MrsProxyClient.UseBuffering, base.MrsProxyClient.UseCompression)) { RemoteDataExport.ExportRoutine(base.MrsProxy, dataExportBatch.DataExportHandle, bufferedReceiver, dataExportBatch, base.MrsProxyClient.UseCompression); if (messageExportResultReceiver != null) { List <BadMessageRec> badMessages = messageExportResultReceiver.BadMessages; if (messageExportResultReceiver.MissingMessages != null) { foreach (MessageRec msg in messageExportResultReceiver.MissingMessages) { badMessages.Add(BadMessageRec.MissingItem(msg)); } } if (badMessages != null && badMessages.Count > 0) { throw new DownlevelBadItemsPermanentException(badMessages); } } } } } }