Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        /// <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.");
                }
            }
        }
Esempio n. 3
0
 private void ImportExcelData(ExcelSettings excelSettings)
 {
     dataImport = new ExcelDataImport(excelSettings);
     Headers    = dataImport.GetHeaders();
     rows       = dataImport.LoadAll();
     RowsView   = CreateDataView();
 }
Esempio n. 4
0
 private void ImportAsciiData(AsciiSettings asciiSettings)
 {
     dataImport = new AsciiDataImport(asciiSettings);
     Headers    = dataImport.GetHeaders();
     rows       = dataImport.LoadAll();
     RowsView   = CreateDataView();
 }
Esempio n. 5
0
 public IndexModel(ITweetBrowserData dbContext, IDataImport remoteDataSrc, IConfiguration configuration, ILogger <IndexModel> logger)
 {
     _dbContext     = dbContext;
     _remoteDataSrc = remoteDataSrc;
     _configuration = configuration;
     _logger        = logger;
 }
Esempio n. 6
0
        private void ImportHeaders(IDataImport importer)
        {
            var headers = importer.GetHeaders().Skip(1);

            importerIndexPosition[importer] = mergedHeaders.Count - 1;
            mergedHeaders.AddRange(headers);
        }
Esempio n. 7
0
        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;
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
            }
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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;
        }
Esempio n. 12
0
        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;
        }
Esempio n. 13
0
 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;
 }
Esempio n. 14
0
 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;
     }
 }
Esempio n. 15
0
 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;
 }
Esempio n. 17
0
 public DataImportOrchestrationErrorEventArgs(Exception exception, IDataSource dataSource = null, IDataImport dataImport = null)
     : base(exception)
 {
     this.DataSource = dataSource;
     this.DataImport = dataImport;
 }
Esempio n. 18
0
 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);
         }
     }
 }
Esempio n. 19
0
 public DataImportErrorEventArgs(Exception exception, IDataImport dataImport)
     : base(exception)
 {
     this.DataImport = dataImport;
 }
Esempio n. 20
0
 protected virtual void OnError(Exception exception, IDataSource dataSource, IDataImport dataImport)
 {
     this.Error?.Invoke(this, new DataImportOrchestrationErrorEventArgs(exception, dataSource, dataImport));
 }
Esempio n. 21
0
 protected virtual void OnDataImportError(IDataImport dataImport, Exception exception)
 {
     this.DataImportError?.Invoke(this, new DataImportErrorEventArgs(exception, dataImport));
 }
Esempio n. 22
0
 protected virtual void OnDataImportCompleted(IDataImport dataImport, bool wasSuccessful, IEnumerable <RecordFailure> failures)
 {
     this.DataImportCompleted?.Invoke(this, new DataImportCompletedEventArgs(dataImport, wasSuccessful, failures));
 }
Esempio n. 23
0
        /// <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());
        }
Esempio n. 24
0
 public DataImportException(IDataImport dataImport, string message, Exception innerException = null) : base(message, innerException)
 {
     Occured = DateTime.Now;
     DataImport = dataImport;
 }
Esempio n. 25
0
 public DataImportEventArgs(IDataImport dataImport)
 {
     this.DataImport = dataImport;
 }
Esempio n. 26
0
 protected virtual bool TryRunDataImport(IDataImport dataImport, out IEnumerable <RecordFailure> failures)
 {
     return(dataImport.TryRun(this.CancellationToken, out failures));
 }
Esempio n. 27
0
 protected virtual void OnDataImportCanceled(IDataImport dataImport)
 {
     this.DataImportCanceled?.Invoke(this, new DataImportEventArgs(dataImport));
 }
Esempio n. 28
0
        /// <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);
                            }
                        }
                    }
                }
            }
        }