public void SaveNewQuery(CloseableTabItem tabItem, SelectQueryBuilder QueryBulder) { string messageBoxText = "Do you want to save current query?"; string caption = "Current Query"; MessageBoxButton button = MessageBoxButton.YesNoCancel; MessageBoxImage icon = MessageBoxImage.Question; MessageBoxResult result = MessageBox.Show(messageBoxText, caption, button, icon); switch (result) { case MessageBoxResult.Yes: // User pressed Yes button //save save query ResultViewModel rv = (ResultViewModel)this.result; string FileName1 = System.String.Empty; if (rv.isNew == false) { FileName1 = rv.directoryPath + tabItem.Header.ToString() + ".xml"; } else { MainWindow mw = new MainWindow(); FileName1 = mw.OpenSaveDialog(tabItem.Name); } if (FileName1 != System.String.Empty) { XmlSerializer SerializerObj = new XmlSerializer(typeof(SelectQueryBuilder)); StreamWriter swriter = new StreamWriter(FileName1); SerializerObj.Serialize(swriter, QueryBulder); swriter.Flush(); swriter.Close(); string[] splitedArray = FileName1.Split('\\'); string tabItemHeader = splitedArray[splitedArray.Length - 1].Remove((splitedArray[splitedArray.Length - 1]).Length - 4, 4); tabItem.Header = tabItemHeader; //we saved the query change isModified to false rv.isModified = false; tabItem.labelStar.Content = ""; MessageBox.Show("query saved successfully"); /**************************/ this.result.directoryPath = FileName1.Replace(splitedArray[splitedArray.Length - 1], ""); /**************************/ } break; case MessageBoxResult.No: // User pressed No button TabControl tabControl = tabItem.Parent as TabControl; if (tabControl != null) tabControl.Items.Remove(tabItem); break; case MessageBoxResult.Cancel: // User pressed Cancel button break; } }
public void CheckQueryNeededToBeSaved(CloseableTabItem tabItem, String caller) { /*****************To Save Modified Query***********/ string directoryPath = this.result.directoryPath; MainWindow mainWindow = (MainWindow)GetTopLevelControl(this.ShortCutsToolBar); mainWindow.ValidateAllTabCntrls(this); SelectQueryBuilder queryBuilder = mainWindow.LoadSelectQueryBuilderNew(this); MainGirdViewControl mainGridView1 = new MainGirdViewControl(queryBuilder, mainWindow.CurrentDatabaseName); this.result = mainGridView1.result; if (directoryPath != null) { this.result.isModified = true; this.result.isNew = false; this.result.directoryPath = directoryPath; } else { this.result.isModified = true; this.result.isNew = true; } /********************************************/ ResultViewModel rv = (ResultViewModel)this.result; if (this.Content != null) { if (rv.isModified) { if (rv.isNew == false) { switch (caller) { case "Save": string FileName = rv.directoryPath + tabItem.Header.ToString() + ".xml"; if (FileName != System.String.Empty) { XmlSerializer SerializerObj = new XmlSerializer(typeof(SelectQueryBuilder)); StreamWriter swriter = new StreamWriter(FileName); SerializerObj.Serialize(swriter, rv.QueryBulder); swriter.Flush(); swriter.Close(); tabItem.Header = tabItem.Header.ToString(); //we saved the query change isModified to false rv.isModified = false; tabItem.labelStar.Content = ""; MessageBox.Show("query saved successfully"); } break; case "SaveAs": MainWindow mw = new MainWindow(); string FileName1 = mw.OpenSaveDialog(tabItem.Name); if (FileName1 != System.String.Empty) { XmlSerializer SerializerObj = new XmlSerializer(typeof(SelectQueryBuilder)); StreamWriter swriter = new StreamWriter(FileName1); SerializerObj.Serialize(swriter, rv.QueryBulder); swriter.Flush(); swriter.Close(); string[] splitedArray = FileName1.Split('\\'); string tabItemHeader = splitedArray[splitedArray.Length - 1].Remove((splitedArray[splitedArray.Length - 1]).Length - 4, 4); tabItem.Header = tabItemHeader; //we saved the query change isModified to false rv.isModified = false; tabItem.labelStar.Content = ""; MessageBox.Show("query saved successfully"); } break; case "SaveXML": FileName = ConfigurationManager.AppSettings["DerivedTablesPath"].ToString() + flName + ".xml"; if (File.Exists(FileName)) { MessageBox.Show("File already exists...."); } else { if (FileName != System.String.Empty) { XmlSerializer SerializerObj = new XmlSerializer(typeof(SelectQueryBuilder)); StreamWriter swriter = new StreamWriter(FileName); SerializerObj.Serialize(swriter, rv.QueryBulder); swriter.Flush(); swriter.Close(); tabItem.Header = tabItem.Header.ToString(); rv.isModified = false; tabItem.labelStar.Content = ""; MessageBox.Show("query saved successfully"); connectionString = ConfigurationManager.AppSettings["DefaultDBConn"]; CurrentDatabaseName = ConfigurationManager.AppSettings["DefaultDatabase"]; connectionString = connectionString + "Database=" + CurrentDatabaseName + ";"; DependencyObject parent = this.GetTopLevelControl(this); try { List<MySQLData.Schema> schemas = MySQLData.DataAccess.ADODataBridge.getSchemaTree(connectionString, CurrentDatabaseName, ConfigurationManager.AppSettings["DerivedTablesPath"]);//DataAccess.GetDatabases(); MainViewModel viewModel = new MainViewModel(schemas); if (parent != null) { MainWindow m = (MainWindow)parent; m.MainTreeView.DataContext = viewModel; listOfTable = new List<MySQLData.Table>(); foreach (MySQLData.Schema schema in schemas) { listOfTable.AddRange(schema.tables); } if (listOfTable != null) { } } } catch (MySql.Data.MySqlClient.MySqlException ex) { if (isErrorLoggingOn) { LogError.Log_Err("MainWindow Constructor", ex); DisplayErrorMessage(); } } catch (Exception ex) { if (isErrorLoggingOn) { LogError.Log_Err("MainWindow Constructor", ex); DisplayErrorMessage(); } } if (parent != null) { MainWindow m = (MainWindow)parent; var collView = CollectionViewSource.GetDefaultView(m.tabControlCustomQuery.Items); collView.CurrentChanging += this.OnTabItemSelecting; } } } break; } } else { switch (caller) { case "Save": if (rv.TotalIRows != 0) { SaveNewQuery(tabItem, rv.QueryBulder); } break; case "SaveAs": if (rv.TotalIRows != 0) { //save save as the query MainWindow mw = new MainWindow(); string FileName = mw.OpenSaveDialog(tabItem.Name); if (FileName != System.String.Empty) { XmlSerializer SerializerObj = new XmlSerializer(typeof(SelectQueryBuilder)); StreamWriter swriter = new StreamWriter(FileName); SerializerObj.Serialize(swriter, rv.QueryBulder); swriter.Flush(); swriter.Close(); string[] splitedArray = FileName.Split('\\'); string tabItemHeader = splitedArray[splitedArray.Length - 1].Remove((splitedArray[splitedArray.Length - 1]).Length - 4, 4); tabItem.Header = tabItemHeader; //we saved the query change isModified to false rv.isModified = false; tabItem.labelStar.Content = ""; MessageBox.Show("query saved successfully"); } } break; case "SaveXML": string FileNameXML = ConfigurationManager.AppSettings["DerivedTablesPath"].ToString() + flName + ".xml"; if (File.Exists(FileNameXML)) { MessageBox.Show("File already exists...."); } else { if (FileNameXML != System.String.Empty) { XmlSerializer SerializerObj = new XmlSerializer(typeof(SelectQueryBuilder)); StreamWriter swriter = new StreamWriter(FileNameXML); SerializerObj.Serialize(swriter, rv.QueryBulder); swriter.Flush(); swriter.Close(); tabItem.Header = tabItem.Header.ToString(); rv.isModified = false; tabItem.labelStar.Content = ""; MessageBox.Show("query saved successfully"); connectionString = ConfigurationManager.AppSettings["DefaultDBConn"]; CurrentDatabaseName = ConfigurationManager.AppSettings["DefaultDatabase"]; connectionString = connectionString + "Database=" + CurrentDatabaseName + ";"; DependencyObject parent = this.GetTopLevelControl(this); try { List<MySQLData.Schema> schemas = MySQLData.DataAccess.ADODataBridge.getSchemaTree(connectionString, CurrentDatabaseName, ConfigurationManager.AppSettings["DerivedTablesPath"]); MainViewModel viewModel = new MainViewModel(schemas); if (parent != null) { MainWindow m = (MainWindow)parent; m.MainTreeView.DataContext = viewModel; listOfTable = new List<MySQLData.Table>(); foreach (MySQLData.Schema schema in schemas) { listOfTable.AddRange(schema.tables); } if (listOfTable != null) { } } } catch (MySql.Data.MySqlClient.MySqlException ex) { if (isErrorLoggingOn) { LogError.Log_Err("MainWindow Constructor", ex); DisplayErrorMessage(); } } catch (Exception ex) { if (isErrorLoggingOn) { LogError.Log_Err("MainWindow Constructor", ex); DisplayErrorMessage(); } } if (parent != null) { MainWindow m = (MainWindow)parent; var collView = CollectionViewSource.GetDefaultView(m.tabControlCustomQuery.Items); collView.CurrentChanging += this.OnTabItemSelecting; } } } break; } } } else { switch (caller) { case "Save": break; case "SaveAs": break; case "SaveXML": break; case "CloseTab": TabControl tabControl = tabItem.Parent as TabControl; if (tabControl != null) tabControl.Items.Remove(tabItem); break; } } } else { if (caller == "CloseTab") { TabControl tabControl = tabItem.Parent as TabControl; if (tabControl != null) tabControl.Items.Remove(tabItem); } } }