private void Create1000TestObjectsMenuItem_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = (MenuItem)sender; FederationViewModel view = (FederationViewModel)menuItem.DataContext; FederationInfo info = view.Federationinfo; SessionBase session = view.Session; if (session.InTransaction) { session.Commit(); } session.BeginUpdate(); //session.EnableSyncByTrackingChanges = true; try { for (int i = 0; i < 1000; i++) { VelocityDbList <OptimizedPersistable> list = new VelocityDbList <OptimizedPersistable>(); //for (int j = 0; j < 10; j++) // list.Add(new OptimizedPersistable()); session.Persist(list); } session.Commit(); m_viewModel = new AllFederationsViewModel(); base.DataContext = m_viewModel; } catch (Exception ex) { session.Abort(); MessageBox.Show(ex.Message); } }
private void CopyFederationMenuItem_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = (MenuItem)sender; FederationViewModel view = (FederationViewModel)menuItem.DataContext; FederationInfo info = view.Federationinfo; SessionBase session = view.Session; var lDialog = new System.Windows.Forms.FolderBrowserDialog() { Description = "Choose Federation Copy Folder", }; if (lDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string copyDir = lDialog.SelectedPath; if (session.InTransaction) { session.Commit(); // must not be in transaction while copying databases } session.CopyAllDatabasesTo(copyDir); session = info.GetSession(); session.BeginUpdate(); FederationCopyInfo copyInfo = new FederationCopyInfo(Dns.GetHostName(), copyDir); session.Persist(copyInfo); info.Update(); info.FederationCopies.Add(copyInfo); session.Commit(); MessageBox.Show("Databases copied to " + copyDir + " at " + DateTime.Now); } }
bool AddFederation(DirectoryInfo dirInfo) { FederationInfo info = new FederationInfo(); if (dirInfo != null) { info.SystemDbsPath = dirInfo.FullName; } ConnectionDialog popup = new ConnectionDialog(info); bool? result = popup.ShowDialog(); if (result != null && result.Value) { if (info.HostName == null || info.HostName.Length == 0) { info.HostName = SessionBase.LocalHost; } SessionBase session = m_viewModel.ActiveSession; if (session.InTransaction) { session.Commit(); } session.BeginUpdate(); session.Persist(info); session.Commit(); m_viewModel = new AllFederationsViewModel(); base.DataContext = m_viewModel; return(true); } return(false); }
private void SyncFederationMenuItem_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = (MenuItem)sender; FederationViewModel view = (FederationViewModel)menuItem.DataContext; FederationInfo info = view.Federationinfo; SessionBase session = view.Session; var lDialog = new System.Windows.Forms.FolderBrowserDialog() { Description = "Choose Federation Sync Destination Folder", }; if (lDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string destdir = lDialog.SelectedPath; if (session.InTransaction) { session.Commit(); // must not be in transaction while copying databases } using (SessionBase sessionDestination = new SessionNoServer(destdir)) { sessionDestination.SyncWith(session); } m_viewModel = new AllFederationsViewModel(); base.DataContext = m_viewModel; MessageBox.Show("Databases synced with " + destdir + " at " + DateTime.Now); } }
private void NewDatabaseLocationMenuItem_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = (MenuItem)sender; FederationViewModel view = (FederationViewModel)menuItem.DataContext; FederationInfo info = view.Federationinfo; SessionBase session = view.Session; DatabaseLocationMutable newLocationMutable = new DatabaseLocationMutable(session); var popup = new NewDatabaseLocationDialog(newLocationMutable, null); bool?result = popup.ShowDialog(); if (result != null && result.Value) { try { DatabaseLocation newLocation = new DatabaseLocation(newLocationMutable.HostName, newLocationMutable.DirectoryPath, newLocationMutable.StartDatabaseNumber, newLocationMutable.EndDatabaseNumber, session, newLocationMutable.CompressPages, newLocationMutable.PageEncryption, newLocationMutable.BackupOfOrForLocation != null, newLocationMutable.BackupOfOrForLocation); if (session.InTransaction) { session.Commit(); } session.BeginUpdate(); session.NewLocation(newLocation); session.Commit(); m_viewModel = new AllFederationsViewModel(); base.DataContext = m_viewModel; } catch (Exception ex) { session.Abort(); MessageBox.Show(ex.Message); } } }
public ConnectionDialog(FederationInfo federationInfo) { InitializeComponent(); m_federationInfo = federationInfo; RadioNoServ.IsChecked = true; WaitForMilliSecondsTextBox.Text = "5000"; DBDirTextBox.Text = federationInfo.SystemDbsPath; }
private void NewDatabaseLocationMenuItem_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = (MenuItem)sender; FederationViewModel view = (FederationViewModel)menuItem.DataContext; FederationInfo info = view.Federationinfo; SessionBase session = view.Session; AddDatabaseLocation(session, ""); }
public FederationSchemaViewModel(FederationInfo federationInfo) : base(null, true) { m_federationInfo = federationInfo; if (m_federationInfo.UsesServerClient || (SessionBase.IsSameHost(m_federationInfo.HostName, SessionBase.LocalHost) == false)) { m_session = new ServerClientSession(m_federationInfo.SystemDbsPath, m_federationInfo.HostName, m_federationInfo.WaitForMilliSeconds, m_federationInfo.UsePessimisticLocking == false); } else { m_session = new SessionNoServer(m_federationInfo.SystemDbsPath, m_federationInfo.WaitForMilliSeconds, m_federationInfo.UsePessimisticLocking == false); } m_session.BeginRead(); }
private void RemoveFederationInfoMenuItem_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = (MenuItem)sender; FederationViewModel view = (FederationViewModel)menuItem.DataContext; FederationInfo info = view.Federationinfo; SessionBase session = info.GetSession(); session.BeginUpdate(); info.Unpersist(session); session.Commit(); m_viewModel = new AllFederationsViewModel(); base.DataContext = m_viewModel; }
public FederationViewModel(FederationInfo federationInfo) : base(null, true) { m_federationInfo = federationInfo; if (m_federationInfo.UsesServerClient || (m_federationInfo.HostName.Length > 0 && m_federationInfo.HostName != Dns.GetHostName())) { m_session = new ServerClientSession(m_federationInfo.SystemDbsPath, m_federationInfo.HostName); } else { m_session = new SessionNoServer(m_federationInfo.SystemDbsPath); } m_session.BeginRead(); }
private void ValidateFederationMenuItem_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = (MenuItem)sender; FederationViewModel view = (FederationViewModel)menuItem.DataContext; FederationInfo info = view.Federationinfo; SessionBase session = view.Session; session.Verify(); session = info.Session; session.BeginUpdate(); info.Update(); info.Validated.Add(DateTime.Now); session.Commit(); }
private void AddMenuItem_Click(object sender, RoutedEventArgs e) { FederationInfo info = new FederationInfo(); ConnectionDialog popup = new ConnectionDialog(info); bool? result = popup.ShowDialog(); if (result != null && result.Value) { SessionBase session = m_viewModel.ActiveSession; session.BeginUpdate(); session.Persist(info); session.Commit(); m_viewModel = new AllFederationsViewModel(); base.DataContext = m_viewModel; } }
public AllFederationsViewModel() { SessionBase.BaseDatabasePath = Properties.Settings.Default.BaseDatabasePath; m_session = new SessionNoServer(Properties.Settings.Default.DatabaseManagerDirectory); m_session.BeginUpdate(); List <FederationViewModel> federationInfos = new List <FederationViewModel>(); foreach (FederationInfo info in m_session.AllObjects <FederationInfo>()) { try { federationInfos.Add(new FederationViewModel(info)); } catch (Exception ex) { MessageBox.Show(ex.Message); } } if (federationInfos.Count() == 0) { string host = Properties.Settings.Default.DatabaseManagerHost; if (host == null || host.Length == 0) { host = Dns.GetHostName(); } FederationInfo info = new FederationInfo(host, Properties.Settings.Default.DatabaseManagerDirectory, Properties.Settings.Default.TcpIpPortNumber, Properties.Settings.Default.DoWindowsAuthentication, null, Properties.Settings.Default.UseClientServer, "Database Manager"); m_session.Persist(info); m_session.Commit(); federationInfos.Add(new FederationViewModel(info)); } if (m_session.InTransaction) { m_session.Commit(); } m_federationViews = new ReadOnlyCollection <FederationViewModel>(federationInfos); }
private void CopyFederationMenuItem_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = (MenuItem)sender; FederationViewModel view = (FederationViewModel)menuItem.DataContext; FederationInfo info = view.Federationinfo; SessionBase session = view.Session; var lDialog = new System.Windows.Forms.FolderBrowserDialog() { Description = "Choose Federation Copy Folder", }; if (lDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string copyDir = lDialog.SelectedPath; session.CopyAllDatabasesTo(copyDir); session = info.Session; session.BeginUpdate(); FederationCopyInfo copyInfo = new FederationCopyInfo(Dns.GetHostName(), copyDir); session.Persist(copyInfo); info.Update(); info.FederationCopies.Add(copyInfo); session.Commit(); } }
public ConnectionDialog(FederationInfo federationInfo) { InitializeComponent(); m_federationInfo = federationInfo; RadioNoServ.IsChecked = true; }
void Initialize() { SessionBase.BaseDatabasePath = Properties.Settings.Default.BaseDatabasePath; m_session = new SessionNoServer(Properties.Settings.Default.DatabaseManagerDirectory); try { m_session.BeginUpdate(); List <FederationSchemaViewModel> federationInfos = new List <FederationSchemaViewModel>(); List <FederationInfo> federationInfosToRemove = new List <FederationInfo>(); foreach (FederationInfo info in m_session.AllObjects <FederationInfo>()) { try { federationInfos.Add(new FederationSchemaViewModel(info)); } catch (Exception ex) { if (MessageBox.Show(ex.Message + " for " + info.HostName + " " + info.SystemDbsPath + " Remove this Database?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { federationInfosToRemove.Add(info); } } } foreach (FederationInfo info in federationInfosToRemove) { info.Unpersist(m_session); } if (federationInfos.Count() == 0) { string host = Properties.Settings.Default.DatabaseManagerHost; if (host == null || host.Length == 0) { host = Dns.GetHostName(); } FederationInfo info = new FederationInfo(host, Properties.Settings.Default.DatabaseManagerDirectory, Properties.Settings.Default.TcpIpPortNumber, Properties.Settings.Default.DoWindowsAuthentication, null, Properties.Settings.Default.WaitForLockMilliseconds, Properties.Settings.Default.UseClientServer, "Database Manager"); m_session.Persist(info); m_session.Commit(); federationInfos.Add(new FederationSchemaViewModel(info)); } if (m_session.InTransaction) { m_session.Commit(); } m_federationViews = federationInfos; } catch (Exception ex) { if (m_session.InTransaction) { m_session.Abort(); } if (MessageBox.Show(ex.Message + " for " + SessionBase.LocalHost + " " + Properties.Settings.Default.DatabaseManagerDirectory + " Remove this Database?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { DirectoryInfo dir = new DirectoryInfo(Properties.Settings.Default.DatabaseManagerDirectory); dir.Delete(true); Initialize(); } } }