private CoreEA.ICoreEAHander CreateHandler(UIElement curElement) { CoreEA.ICoreEAHander tempHandler = null; ISrcControl srcControl = (ISrcControl)curElement; try { #region Source Control Handler if (curElement.GetType() == typeof(SelectSourceDbFile_OleDB)) { SelectSourceDbFile_OleDB curUI = curElement as SelectSourceDbFile_OleDB; switch (curUI.CurrentDbType) { case UsingOleDbType.Excel: tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.Excel).X_Handler; tempHandler.Open((LoginInfo_Excel)srcControl.X_Result); break; case UsingOleDbType.Access: tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.OleDb).X_Handler; tempHandler.Open((LoginInfo_Oledb)srcControl.X_Result); break; case UsingOleDbType.CSV: tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.CSV).X_Handler; tempHandler.Open((LoginInfo_CSV)srcControl.X_Result); break; } } else if (curElement.GetType() == typeof(SelectSqlServerSource)) { tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.SqlServer).X_Handler; tempHandler.Open((LoginInfo_SqlServer)srcControl.X_Result); } else if (curElement.GetType() == typeof(SelectMySqlSource)) { tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.MySql).X_Handler; tempHandler.Open((LoginInfo_MySql)srcControl.X_Result); } else if (curElement.GetType() == typeof(SelectSqlite3DbFile)) { tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.Sqlite).X_Handler; tempHandler.Open((LoginInfo_Sqlite)srcControl.X_Result); } else if (curElement.GetType() == typeof(SelectSSCEFile)) { tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.SqlCE35).X_Handler; tempHandler.Open((LoginInfo_SSCE)srcControl.X_Result); } else if (curElement.GetType() == typeof(SelectEffiproz)) { tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.Effiproz).X_Handler; tempHandler.Open((LoginInfo_Effiproz)srcControl.X_Result); } #endregion #region TargetControlHandler //Here the type is the class name of TargetUI else if (curElement.GetType() == typeof(SelectTargetDb_SqlCe)) { tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.SqlCE35).X_Handler; LoginInfo_SSCE ceInfo = srcControl.X_Result as LoginInfo_SSCE; ceInfo.MaxDbSize = 3000; tempHandler.Open(ceInfo); } else if (curElement.GetType() == typeof(SelectSqlServerTarget)) { tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.SqlServer).X_Handler; tempHandler.Open((LoginInfo_SqlServer)srcControl.X_Result); } else if (curElement.GetType() == typeof(SelectTargetSqliteDB)) { tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.Sqlite).X_Handler; tempHandler.Open((LoginInfo_Sqlite)srcControl.X_Result); } else if (curElement.GetType() == typeof(SelectTargetMySql)) { tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.MySql).X_Handler; tempHandler.Open((LoginInfo_MySql)srcControl.X_Result); } else if (curElement.GetType() == typeof(SelectTargetCSVFile)) { tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.CSV).X_Handler; LoginInfo_CSV tempLogInfo = srcControl.X_Result as LoginInfo_CSV; tempLogInfo.Database += "1.csv"; tempHandler.Open(tempLogInfo); } #endregion } catch (Exception ee) { ee.HandleMyException(); } Debug.Assert(tempHandler != null, "Handler can't be null"); return(tempHandler); }
private void butNext_Click(object sender, RoutedEventArgs e) { //Do data transfer if finished if (tab1.SelectedIndex == tab1.Items.Count - 1) { if (!"DataTransferConfrimMsg".GetFromResourece().Confirm()) { return; } //Filter system table List <string> tableList = new List <string>(); listTablesList.SelectedItems.Cast <string>().ToList().ForEach(subItem => { tableList.Add(subItem); }); if (tableList.Count < 1) { "DataTransferNoTableMsg".GetFromResourece().Notify(); return; } DoExchangeData(srcHandler, targetHandler, tableList); return; } if (tab1.SelectedIndex == 2) { if (listTablesList.SelectedItems.Count == 0) { "DataTransferSelectTableMsg".GetFromResourece().Notify(); return; } } #region Generate the Handler Debug.WriteLine(((StackPanel)((TabItem)tab1.SelectedItem).Content).Children[0].GetType()); UIElement curElement = ((StackPanel)((TabItem)tab1.SelectedItem).Content).Children[0]; if (curElement.GetType().BaseType == typeof(UserControl)) { ISrcControl tempSrcControl = (ISrcControl)curElement; if (!tempSrcControl.X_CanForwardToNext) { tempSrcControl.X_ShowErrorTips(); return; } else { if (tempSrcControl.X_IsSourceHandler) { if ((srcHandler != null) && (srcHandler.IsOpened)) { srcHandler.Close(); } srcHandler = CreateHandler(curElement); if (!srcHandler.IsOpened) { "ErrorMsg_CannotConnectToSource".GetFromResourece().Warning(); return; } } else { if ((targetHandler != null) && (targetHandler.IsOpened)) { targetHandler.Close(); } targetHandler = CreateHandler(curElement); if (!targetHandler.IsOpened) { "ErrorMsg_CannotConnectToTarget".GetFromResourece().Warning(); return; } } } } #endregion tab1.SelectedIndex = 1 + tab1.SelectedIndex; //Select Source if (tab1.SelectedIndex == 1) { CurSrcDbType = ((DbTypeWrapper)cmbSrcDbType.SelectedItem).MyType; srcDbFileContainer.Children.Clear(); ISrcControl srcControl = SourceControlFactory.GetProcessingControl(CurSrcDbType, true); if (srcControl == null) { "DataTransfer_NotSupportDBType".GetFromResourece().Notify(); return; } srcDbFileContainer.Children.Add((UserControl)srcControl); } if (tab1.SelectedIndex == 2) { listTablesList.DataContext = null; List <string> t = srcHandler.GetTableListInDatabase(); t.Sort(); listTablesList.DataContext = t; } //Select Target Type if (tab1.SelectedIndex == 4) { CurTargetDbType = ((DbTypeWrapper)cmbTargetDbType.SelectedItem).MyType; targetDbFileContainer.Children.Clear(); ISrcControl targetControl = SourceControlFactory.GetProcessingControl(CurTargetDbType, false); if (targetControl == null) { "DataTransfer_NotSupportDBType".GetFromResourece().Notify(); return; } targetDbFileContainer.Children.Add((UserControl)targetControl); } //No next page if (tab1.SelectedIndex == tab1.Items.Count - 1) { resultSrcFile.Text = srcHandler.CurDatabase; resultTargetFile.Text = targetHandler.CurDatabase; butNext.Content = "Start"; } butBack.IsEnabled = true; }