Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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);
                }
            }
        }
Пример #6
0
 public ConnectionDialog(FederationInfo federationInfo)
 {
     InitializeComponent();
     m_federationInfo                = federationInfo;
     RadioNoServ.IsChecked           = true;
     WaitForMilliSecondsTextBox.Text = "5000";
     DBDirTextBox.Text               = federationInfo.SystemDbsPath;
 }
Пример #7
0
        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, "");
        }
Пример #8
0
 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();
 }
Пример #9
0
        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;
        }
Пример #10
0
 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();
 }
Пример #11
0
        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();
        }
Пример #12
0
        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);
        }
Пример #14
0
        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();
            }
        }
Пример #15
0
 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();
         }
     }
 }