コード例 #1
0
        private void SyncServerInfoAndInstanceInfo(SQLInformation.Data.ApplicationDataSet.InstancesRow instance)
        {
            var servers = from s in Common.ApplicationDataSet.Servers
                          where s.NetName == instance.NetName
                          select s;

            try
            {
                SQLInformation.Data.ApplicationDataSet.ServersRow server = servers.First();

                instance.Server_ID = server.ID;

                server.OSVersion      = instance.OSVersion;
                server.PhysicalMemory = instance.PhysicalMemory;
                server.Platform       = instance.Platform;
                server.Processors     = instance.Processors;

                server.EndEdit();
            }
            catch (Exception ex)
            {
                // No matching server.
                MessageBox.Show("No matching server.  Add new entry then continue");
            }
        }
コード例 #2
0
ファイル: Instances.xaml.cs プロジェクト: chrhodes/EyeOnLife
        private void OnTelnetToInstance(object sender, ItemClickEventArgs e)
        {
            //var row = dataGrid.View.FocusedRowData.Row;

            SQLInformation.Data.ApplicationDataSet.InstancesRow instance =
                (SQLInformation.Data.ApplicationDataSet.InstancesRow)
                    ((System.Data.DataRowView)dataGrid.View.FocusedRowData.Row).Row;

            int portNumber = 0;

            if (instance.Port != null)
            {
                int.TryParse(instance.Port.ToString(), out portNumber);

                if (portNumber > 0)
                {
                    var commandWindow = new wndDX_CommandTelnet(instance.Name_Instance, instance.NetName, instance.Port);
                    commandWindow.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Port number must be greater than 0");
                }
            }
        }
コード例 #3
0
        private void btnSyncInstanceToServer_Click(object sender, RoutedEventArgs e)
        {
            SQLInformation.Data.ApplicationDataSet.InstancesRow instance =
                (SQLInformation.Data.ApplicationDataSet.InstancesRow)
                    ((System.Data.DataRowView)instancesDataGrid.SelectedItem).Row;

            SyncServerInfoAndInstanceInfo(instance);
        }
コード例 #4
0
ファイル: Instances.xaml.cs プロジェクト: chrhodes/EyeOnLife
        private void FetchSMOInfo(SQLInformation.Data.ApplicationDataSet.InstancesRow instanceRow)
        {
            SQLInformation.ExpandMask.InstanceExpandSetting  instanceExpandSetting  = new SQLInformation.ExpandMask.InstanceExpandSetting(instanceRow.Server_ID);
            SQLInformation.ExpandMask.JobServerExpandSetting jobServerExpandSetting = new SQLInformation.ExpandMask.JobServerExpandSetting(instanceRow.DefaultJobServerExpandMask);
            SQLInformation.ExpandMask.DatabaseExpandSetting  databaseExpandSetting  = new SQLInformation.ExpandMask.DatabaseExpandSetting(instanceRow.DefaultDatabaseExpandMask);

            SQLInformation.SMO.Instance.GetInfoFromSMO(instanceRow, instanceExpandSetting, jobServerExpandSetting, databaseExpandSetting);
        }
コード例 #5
0
        private void FetchSMOInfo()
        {
            SQLInformation.Data.ApplicationDataSet.InstancesRow instance =
                (SQLInformation.Data.ApplicationDataSet.InstancesRow)
                    ((System.Data.DataRowView)instancesDataGrid.SelectedItem).Row;

            try
            {
                SMO.Server server = SQLInformation.SMO.Server.GetFromSMO(instance.Name_Instance);
                //SMO.Server server = SQLInformation.SMO.Helper.Get_Server(instance.Name_Instance);

                instance.ServiceName    = server.ServiceName;
                instance.Collation      = server.Collation;
                instance.Edition        = server.Edition;
                instance.IsClustered    = server.IsClustered;
                instance.NetName        = server.NetName;
                instance.OSVersion      = server.OSVersion;
                instance.PhysicalMemory = server.PhysicalMemory;
                instance.Platform       = server.Platform;
                instance.Processors     = server.Processors;

                try
                {
                    instance.ServiceAccount = server.ServiceAccount;
                }
                catch (Exception)
                {
                }

                try
                {
                    instance.ServiceInstanceId = server.ServiceInstanceId;
                }
                catch (Exception)
                {
                }

                instance.EngineEdition = server.EngineEdition.ToString();
                instance.Product       = server.Product;
                instance.ProductLevel  = server.ProductLevel;
                instance.Version       = server.VersionString;

                instance.SnapShotDate = DateTime.Now;
                UpdateDatabase();
            }
            catch (Microsoft.SqlServer.Management.Common.ConnectionFailureException)
            {
                instance.NetName      = "Cannot Connect";
                instance.SnapShotDate = DateTime.Now;
                UpdateDatabase();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                PLLog.Error(ex, PLLOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2);
            }
        }
コード例 #6
0
        private void btnUpdateInfo_Click(object sender, RoutedEventArgs e)
        {
            var row = dataGrid.View.FocusedRowData.Row;

            SQLInformation.Data.ApplicationDataSet.InstancesRow instance =
                (SQLInformation.Data.ApplicationDataSet.InstancesRow)
                    ((System.Data.DataRowView)dataGrid.View.FocusedRowData.Row).Row;

            FetchSMOInfo(instance);
        }
コード例 #7
0
        private void OnSave(object sender, RoutedEventArgs e)
        {
            int instanceExpandMask  = 0;
            int databaseExpandMask  = 0;
            int jobServerExpandMask = 0;

            try
            {
                foreach (var item in cbe_IsMonitored.SelectedItems)
                {
                    instanceExpandMask += ((KeyValuePair <string, int>)item).Value;
                }

                foreach (var item in cbe_DefaultDatabaseExpandMask.SelectedItems)
                {
                    databaseExpandMask += ((KeyValuePair <string, int>)item).Value;
                }

                foreach (var item in cbe_DefaultJobServerExpandMask.SelectedItems)
                {
                    jobServerExpandMask += ((KeyValuePair <string, int>)item).Value;
                }

                ExpandMask.InstanceExpandSetting instanceExpandSetting = new ExpandMask.InstanceExpandSetting(instanceExpandMask);

                SQLInformation.Data.ApplicationDataSet.InstancesRow newInstance = Common.ApplicationDataSet.Instances.NewInstancesRow();

                newInstance.ID            = Guid.Parse(textEdit_ID.Text);
                newInstance.Name_Instance = txtEdit_Name_Instance.Text;
                newInstance.Port          = int.Parse(tePortNumber.Text);
                newInstance.NetName       = cbe_NetName.Text;
                newInstance.ADDomain      = cbe_ADDomain.Text;
                newInstance.Environment   = cbe_Environment.Text;
                newInstance.SecurityZone  = cbe_SecurityZone.Text;

                newInstance.IsMonitored = instanceExpandSetting.IsMonitored;

                newInstance.ExpandContent     = instanceExpandSetting.ExpandContent;
                newInstance.ExpandJobServer   = instanceExpandSetting.ExpandJobServer;
                newInstance.ExpandStorage     = instanceExpandSetting.ExpandStorage;
                newInstance.ExpandLogins      = instanceExpandSetting.ExpandLogins;
                newInstance.ExpandServerRoles = instanceExpandSetting.ExpandServerRoles;
                newInstance.ExpandTriggers    = instanceExpandSetting.ExpandTriggers;

                newInstance.DefaultDatabaseExpandMask  = databaseExpandMask;
                newInstance.DefaultJobServerExpandMask = jobServerExpandMask;

                Common.ApplicationDataSet.Instances.AddInstancesRow(newInstance);
                Common.ApplicationDataSet.InstancesTA.Update(Common.ApplicationDataSet.Instances);
            }
            catch (Exception ex)
            {
                PLLog.Error(ex, PLLOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2);
            }
        }
コード例 #8
0
        private void btnLoadFromXML_Click(object sender, RoutedEventArgs e)
        {
            Test_Data.InstanceData.LoadNewInstancesInfoFromFile();

            foreach (var instance in Test_Data.InstanceData.DBInstances)
            {
                SQLInformation.Data.ApplicationDataSet.InstancesRow newInstance = Common.ApplicationDataSet.Instances.NewInstancesRow();
                newInstance.ID            = Guid.NewGuid();
                newInstance.Name_Instance = instance.FullName;
                Common.ApplicationDataSet.Instances.AddInstancesRow(newInstance);
            }
        }
コード例 #9
0
        private void OnCreateSMOLogin(object sender, RoutedEventArgs e)
        {
            foreach (DataRowView s in tableView1.SelectedRows)
            {
                var row = dataGrid.View.FocusedRowData.Row;

                SQLInformation.Data.ApplicationDataSet.InstancesRow instance =
                    (SQLInformation.Data.ApplicationDataSet.InstancesRow)s.Row;

                SQLInformation.SMO.Actions.Instance.CreateSQLMonitorLogin(instance.Name_Instance);
            }
        }
コード例 #10
0
        private void SyncServerInfoAndInstanceInfo(SQLInformation.Data.ApplicationDataSet.InstancesRow instance)
        {
            var servers = from s in Common.ApplicationDataSet.Servers
                          where s.NetName == instance.NetName
                          select s;

            SQLInformation.Data.ApplicationDataSet.ServersRow server = servers.First();

            instance.Server_ID = server.ID;

            server.OSVersion      = instance.OSVersion;
            server.PhysicalMemory = instance.PhysicalMemory;
            server.Platform       = instance.Platform;
            server.Processors     = instance.Processors;

            server.EndEdit();
        }
コード例 #11
0
        private void btnSyncInstanceToServer_Click(object sender, RoutedEventArgs e)
        {
            // This for DataGrid

            //SQLInformation.Data.ApplicationDataSet.InstancesRow instance =
            //    (SQLInformation.Data.ApplicationDataSet.InstancesRow)
            //    ((System.Data.DataRowView)dataGrid.SelectedItem).Row;

            // This for GridControl
            var row = dataGrid.View.FocusedRowData.Row;

            SQLInformation.Data.ApplicationDataSet.InstancesRow instance =
                (SQLInformation.Data.ApplicationDataSet.InstancesRow)
                    ((System.Data.DataRowView)dataGrid.View.FocusedRowData.Row).Row;


            SyncServerInfoAndInstanceInfo(instance);
        }
コード例 #12
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            SQLInformation.Data.ApplicationDataSet.InstancesRow newInstance = Common.ApplicationDataSet.Instances.NewInstancesRow();

            newInstance.ID                        = Guid.Parse(iDTextBox.Text);
            newInstance.Name_Instance             = name_InstanceTextBox.Text;
            newInstance.NetName                   = netNameTextBox.Text;
            newInstance.IsMonitored               = (bool)isMonitoredCheckBox.IsChecked;
            newInstance.ExpandContent             = (bool)expandContentCheckBox.IsChecked;
            newInstance.ExpandStorage             = (bool)expandStorageCheckBox.IsChecked;
            newInstance.ExpandLogins              = (bool)expandLoginsCheckBox.IsChecked;
            newInstance.ExpandServerRoles         = (bool)expandServerRolesCheckBox.IsChecked;
            newInstance.ExpandTriggers            = (bool)expandTriggersCheckBox.IsChecked;
            newInstance.DefaultDatabaseExpandMask = int.Parse(defaultDatabaseExpandMaskTextBox.Text);

            Common.ApplicationDataSet.Instances.AddInstancesRow(newInstance);
            Common.ApplicationDataSet.InstancesTA.Update(Common.ApplicationDataSet.Instances);
        }
コード例 #13
0
        private void btnLoadFromXML_Click(object sender, RoutedEventArgs e)
        {
            Test_Data.InstanceData.LoadNewInstancesInfoFromFile();

            foreach (var instance in Test_Data.InstanceData.DBInstances)
            {
                // TODO(crhodes): Make smarter to only add new instances.
                var existingInstance = from inst in Common.ApplicationDataSet.Instances
                                       where inst.Name_Instance == instance.FullName
                                       select inst.Name_Instance;

                if (existingInstance.Count() == 0)
                {
                    SQLInformation.Data.ApplicationDataSet.InstancesRow newInstance = Common.ApplicationDataSet.GetNewInstancesRow(instance.FullName);
                    Common.ApplicationDataSet.Instances.AddInstancesRow(newInstance);
                }
            }
        }
コード例 #14
0
        public static void TakeInstanceSnapShot(SQLInformation.Data.ApplicationDataSet.InstancesRow instanceRow)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace4("Start", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 0);
#endif
            Data.ApplicationDataSet.InstanceInfoRow instanceInfoRow = null;

            try
            {
                instanceInfoRow = Common.ApplicationDataSet.InstanceInfo.NewInstanceInfoRow();

                instanceInfoRow.SnapShotDate     = instanceRow.SnapShotDate;
                instanceInfoRow.SnapShotDuration = instanceRow.SnapShotDuration;
                instanceInfoRow.SnapShotError    = instanceRow.SnapShotError;

                instanceInfoRow.Instance_ID   = instanceRow.ID;
                instanceInfoRow.Name_Instance = instanceRow.Name_Instance;

                instanceInfoRow.ADDomain     = instanceRow.ADDomain;
                instanceInfoRow.Environment  = instanceRow.Environment;
                instanceInfoRow.SecurityZone = instanceRow.SecurityZone;

                instanceInfoRow.PhysicalMemory = instanceRow.PhysicalMemory;
                instanceInfoRow.Processors     = instanceRow.Processors;

                instanceInfoRow.Total_DataSpaceUsage  = instanceRow.Total_DataSpaceUsage;
                instanceInfoRow.Total_IndexSpaceUsage = instanceRow.Total_IndexSpaceUsage;
                instanceInfoRow.Total_Size            = instanceRow.Total_Size;
                instanceInfoRow.Total_SpaceAvailable  = instanceRow.Total_SpaceAvailable;

                Common.ApplicationDataSet.InstanceInfo.AddInstanceInfoRow(instanceInfoRow);
                Common.ApplicationDataSet.InstanceInfoTA.Update(Common.ApplicationDataSet.InstanceInfo);
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2);
                instanceInfoRow.SnapShotDate  = DateTime.Now;
                instanceInfoRow.SnapShotError = ex.ToString().Substring(0, 256);
                Common.ApplicationDataSet.InstanceInfoTA.Update(Common.ApplicationDataSet.InstanceInfo);
            }
#if TRACE
            VNC.AppLog.Trace4("End", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 3, startTicks);
#endif
        }
コード例 #15
0
        /// <summary>
        /// Store current values in ServerInfo history table.
        /// </summary>
        /// <param name="instance"></param>
        /// <param name="database"></param>
        private void TakeSnapShot(string instanceName, SQLInformation.Data.ApplicationDataSet.InstancesRow instanceRow)
        {
            SMO.Server server = SMOH.SMOD.GetServer(instanceName);

            SQLInformation.Data.ApplicationDataSetTableAdapters.InstanceInfoTableAdapter tableAdapter = new SQLInformation.Data.ApplicationDataSetTableAdapters.InstanceInfoTableAdapter();

            tableAdapter.Connection.ConnectionString = SQLInformation.Data.Config.SQLMonitorDBConnection;

            //int dbID = int.Parse(serverRow.ID_DB);

            //SMO.Database db = server.Databases.ItemById(dbID);

            SQLInformation.Data.ApplicationDataSet.InstanceInfoRow newSnapShot = Common.ApplicationDataSet.InstanceInfo.NewInstanceInfoRow();

            newSnapShot.Instance_ID  = instanceRow.ID;
            newSnapShot.SnapShotDate = DateTime.Now;

            Common.ApplicationDataSet.InstanceInfo.AddInstanceInfoRow(newSnapShot);
            tableAdapter.Update(Common.ApplicationDataSet.InstanceInfo);
        }
コード例 #16
0
ファイル: Instances.xaml.cs プロジェクト: chrhodes/EyeOnLife
        private void OnCreateSMOLogon(object sender, ItemClickEventArgs e)
        {
            SQLInformation.Data.ApplicationDataSet.InstancesRow instance =
                (SQLInformation.Data.ApplicationDataSet.InstancesRow)
                    ((System.Data.DataRowView)dataGrid.View.FocusedRowData.Row).Row;

            try
            {
                string message;

                if (!SQLInformation.SMO.Actions.Instance.CreateSQLMonitorLogin(instance.Name_Instance, out message))
                {
                    MessageBox.Show(string.Format("CreateSQLMonitorLogin Failed: {0}", message));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
コード例 #17
0
        private void UpdateInfo()
        {
            SQLInformation.Data.ApplicationDataSet.InstancesRow instance =
                (SQLInformation.Data.ApplicationDataSet.InstancesRow)
                    ((System.Data.DataRowView)instancesDataGrid.SelectedItem).Row;

            //SMO.Server server = new SMO.Server(instance.InstanceName);
            //server.ConnectionContext.LoginSecure = false;   // SQL Authentication
            //server.ConnectionContext.Login = "******";
            //server.ConnectionContext.Password = "******";
            //server.ConnectionContext.ConnectTimeout = 10;    // Seconds

            try
            {
                SMO.Server server = SQLInformation.SMO.Helper.GetServer(instance.Name_Instance);

                SMOH.Server serverH = new SMOH.Server(server);

                instance.ServiceName       = serverH.ServiceName;
                instance.Collation         = serverH.Collation;
                instance.Edition           = serverH.Edition;
                instance.IsClustered       = bool.Parse(serverH.IsClustered);
                instance.NetName           = serverH.NetName;
                instance.OSVersion         = serverH.OSVersion;
                instance.PhysicalMemory    = int.Parse(serverH.PhysicalMemory);
                instance.Platform          = serverH.Platform;
                instance.Processors        = int.Parse(serverH.Processors);
                instance.ServiceAccount    = serverH.ServiceAccount;
                instance.ServiceInstanceId = serverH.ServiceInstanceId;
                instance.EngineEdition     = serverH.EngineEdition;
                instance.Product           = serverH.Product;
                instance.ProductLevel      = serverH.ProductLevel;
                instance.Version           = serverH.VersionString;
            }
            catch (Exception ex)
            {
                PLLog.Error(ex, PLLOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2);
            }
        }
コード例 #18
0
        private void OnCreateSMOLogin(object sender, RoutedEventArgs e)
        {
            foreach (DataRowView s in targets)
            {
                string message = "";

                try
                {
                    SQLInformation.Data.ApplicationDataSet.InstancesRow instance =
                        (SQLInformation.Data.ApplicationDataSet.InstancesRow)s.Row;

                    ProgressResults.Items.Add(string.Format("Attempting Logon Creation on:{0}", instance.Name_Instance));

                    SQLInformation.SMO.Actions.Instance.CreateSQLMonitorLogin(instance.Name_Instance, out message);

                    ProgressResults.Items.Add(string.Format("   Result:{0}", message));
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }
コード例 #19
0
ファイル: Instances.xaml.cs プロジェクト: chrhodes/EyeOnLife
        private void OnUpdateInfo(object sender, ItemClickEventArgs e)
        {
            var row = dataGrid.View.FocusedRowData.Row;

            SQLInformation.Data.ApplicationDataSet.InstancesRow instance =
                (SQLInformation.Data.ApplicationDataSet.InstancesRow)
                    ((System.Data.DataRowView)dataGrid.View.FocusedRowData.Row).Row;

            // Check to see if have linked to a server yet.  If not, do that.

            try
            {
                Guid serverID;

                Guid.TryParse(instance.Server_ID.ToString(), out serverID);
            }
            catch (Exception)
            {
                SyncServerInfoAndInstanceInfo(instance);
            }

            FetchSMOInfo(instance);
        }
コード例 #20
0
        private void OnSelectFile(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.Filter   = "XML files (*.xml)|*.xml|All files (*.*)|*.*";
            openFileDialog1.FileName = "";

            if (System.Windows.Forms.DialogResult.OK == openFileDialog1.ShowDialog())
            {
                try
                {
                    string fileName = openFileDialog1.FileName;
                    var    xmlData  = XDocument.Load(fileName);

                    // TODO:  Add some more UI and stuff to handle environments.

                    var serverInstances  = xmlData.Descendants("Instance");
                    var serverInstances2 = xmlData.Elements("Instance");

                    foreach (var instance in serverInstances)
                    {
                        string server       = instance.Attribute("Server").Value;
                        string ipv4Address  = instance.Attribute("IPV4Address").Value;
                        string instanceName = instance.Attribute("Name").Value;
                        string port         = instance.Attribute("Port").Value;
                        string adDomain     = instance.Attribute("ADDomain").Value;
                        string environment  = instance.Attribute("Environment").Value;
                        string securityZone = instance.Attribute("SecurityZone").Value;

                        string validName = "";

                        // Prefer HostName over IPs and InstanceNames over Port#s

                        if (instanceName.Length > 0 || port.Length > 0)  // Have Instance Info
                        {
                            validName = string.Format(@"{0}{1}",
                                                      server.Length > 0 ? server : ipv4Address,
                                                      instanceName.Length > 0 ? @"\" + instanceName : "," + port
                                                      );
                        }
                        else
                        {
                            validName = server.Length > 0 ? server : ipv4Address;
                        }

                        // TODO(crhodes): Make smarter to only add new instances.
                        var existingInstance = from inst in Common.ApplicationDataSet.Instances
                                               where inst.Name_Instance == validName
                                               select inst.Name_Instance;

                        int matchCount = existingInstance.Count();

                        if (matchCount == 0)
                        {
                            SQLInformation.Data.ApplicationDataSet.InstancesRow newInstance = Common.ApplicationDataSet.GetNewInstancesRow(validName);
                            newInstance.NetName      = server;
                            newInstance.ADDomain     = adDomain;
                            newInstance.Environment  = environment;
                            newInstance.SecurityZone = securityZone;

                            newInstance.DefaultDatabaseExpandMask  = 2047;
                            newInstance.DefaultJobServerExpandMask = 8191;

                            Common.ApplicationDataSet.Instances.AddInstancesRow(newInstance);
                        }
                    }
                }
                catch (Exception ex)
                {
                    System.Windows.MessageBox.Show(ex.ToString());
                }
            }
        }
コード例 #21
0
        private void OnCreateNewInstance(object sender, RoutedEventArgs e)
        {
            int instanceExpandMask  = 0;
            int databaseExpandMask  = 0;
            int jobServerExpandMask = 0;


            Window parentWindow = Window.GetWindow(this);

            string newInstanceFullName = null;

            newInstanceFullName = string.Format("{0}{1}{2}", cbe_NetName.Text, (te_Name_Instance.Text.Length > 0 ? @"\" : ""), te_Name_Instance.Text);
            string serverName = tb_Name_Server.Text;
            int    portNumber = 0;

            int.TryParse(te_PortNumber.Text, out portNumber);


            if (InstanceIsNotAccessible(newInstanceFullName, serverName, portNumber))
            {
                MessageBox.Show(string.Format("Instance {0} not accessible.", newInstanceFullName));
                return;
            }

            if (InstanceAlreadyExists(newInstanceFullName))
            {
                MessageBox.Show(string.Format("Entry for Instance {0} already exists.", newInstanceFullName));
                InitializeComponent();
                return;
            }

            try
            {
                foreach (var item in cbe_IsMonitored.SelectedItems)
                {
                    instanceExpandMask += ((KeyValuePair <string, int>)item).Value;
                }

                foreach (var item in cbe_DefaultDatabaseExpandMask.SelectedItems)
                {
                    databaseExpandMask += ((KeyValuePair <string, int>)item).Value;
                }

                foreach (var item in cbe_DefaultJobServerExpandMask.SelectedItems)
                {
                    jobServerExpandMask += ((KeyValuePair <string, int>)item).Value;
                }

                ExpandMask.InstanceExpandSetting instanceSetting = new ExpandMask.InstanceExpandSetting(instanceExpandMask);

                SQLInformation.Data.ApplicationDataSet.InstancesRow newInstance = Common.ApplicationDataSet.Instances.NewInstancesRow();

                newInstance.ID            = Guid.NewGuid();
                newInstance.Name_Instance = newInstanceFullName;
                newInstance.Port          = portNumber;

                newInstance.NetName      = cbe_NetName.Text;
                newInstance.ADDomain     = cbe_ADDomain.Text;
                newInstance.Environment  = cbe_Environment.Text;
                newInstance.SecurityZone = cbe_SecurityZone.Text;

                newInstance.IsMonitored = instanceSetting.IsMonitored;

                newInstance.ExpandContent       = instanceSetting.ExpandContent;
                newInstance.ExpandJobServer     = instanceSetting.ExpandJobServer;
                newInstance.ExpandStorage       = instanceSetting.ExpandStorage;
                newInstance.ExpandLinkedServers = instanceSetting.ExpandLinkedServers;
                newInstance.ExpandLogins        = instanceSetting.ExpandLogins;
                newInstance.ExpandServerRoles   = instanceSetting.ExpandServerRoles;
                newInstance.ExpandTriggers      = instanceSetting.ExpandTriggers;

                newInstance.DefaultDatabaseExpandMask  = databaseExpandMask;
                newInstance.DefaultJobServerExpandMask = jobServerExpandMask;

                Common.ApplicationDataSet.Instances.AddInstancesRow(newInstance);
                Common.ApplicationDataSet.Instances_Update();
                //Common.ApplicationDataSet.InstancesTA.Update(Common.ApplicationDataSet.Instances);

                string progressMessage = string.Format("Instance: {0}  Added successfully", newInstance.Name_Instance);

                //StatusMessage1 = progressMessage;
                tb_ProgressStatus1.Text = progressMessage;
                //tb_ProgressStatus1.Dispatcher.BeginInvoke((Action)(() => tb_ProgressStatus1.Text = progressMessage), System.Windows.Threading.DispatcherPriority.Normal);

                //tb_ProgressStatus1.Dispatcher.BeginInvoke(new Action(() => tb_ProgressStatus1.Text = progressMessage), System.Windows.Threading.DispatcherPriority.Normal);

                //parentWindow.Dispatcher.BeginInvoke((Action)(() => tb_ProgressStatus1.Text = progressMessage), System.Windows.Threading.DispatcherPriority.Normal);
                string progressMessage2 = "Attempting to create SMO Crawler Login.  This may take a while";


                tb_ProgressStatus2.Dispatcher.BeginInvoke((Action)(() => tb_ProgressStatus2.Text = progressMessage2), System.Windows.Threading.DispatcherPriority.Normal);

                string message = "";

                if (SQLInformation.SMO.Actions.Instance.CreateSQLMonitorLogin(newInstance.Name_Instance, out message))
                {
                    tb_ProgressStatus2.Dispatcher.InvokeAsync((Action)(() => tb_ProgressStatus2.Text = "SMO Crawler Logon created successfully"), System.Windows.Threading.DispatcherPriority.Normal);
                }
                else
                {
                    MessageBox.Show(string.Format(
                                        "SMO Crawler Logon not created:\n{0}\nVerify current user ({1}) has sufficient permission to create a new Login in instance.",
                                        message, Common.CurrentUser.Identity.Name));
                }

                InitializeControls();
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2);
            }
        }
コード例 #22
0
ファイル: Instances.xaml.cs プロジェクト: chrhodes/EyeOnLife
        private void SyncServerInfoAndInstanceInfo(SQLInformation.Data.ApplicationDataSet.InstancesRow instance)
        {
            var servers = from s in Common.ApplicationDataSet.Servers
                          where s.NetName.ToUpper() == instance.NetName.ToUpper()
                          select s;

            try
            {
                SQLInformation.Data.ApplicationDataSet.ServersRow server = servers.First();

                instance.Server_ID = server.ID;

                // TODO: Verify these are set before trying to SYNC.

                try
                {
                    server.ADDomain     = instance.ADDomain;
                    server.Environment  = instance.Environment;
                    server.SecurityZone = instance.SecurityZone;

                    server.OSVersion      = instance.OSVersion;
                    server.PhysicalMemory = instance.PhysicalMemory;
                    server.Platform       = instance.Platform;
                    server.Processors     = instance.Processors;
                }
                catch (Exception)
                {
                }

                server.EndEdit();
            }
            catch (Exception)
            {
                // No matching server.
                MessageBox.Show("No matching server found.  Adding new server.");

                int instanceExpandMask = 127;

                try
                {
                    SQLInformation.Data.ApplicationDataSet.ServersRow newServer = Common.ApplicationDataSet.Servers.NewServersRow();

                    newServer.ID      = Guid.NewGuid();
                    newServer.NetName = instance.NetName.ToUpper();
                    newServer.DefaultInstanceExpandMask = instanceExpandMask;

                    // Wrap in exception in case not populated

                    try
                    {
                        newServer.OSVersion      = instance.OSVersion;
                        newServer.PhysicalMemory = instance.PhysicalMemory;
                        newServer.Platform       = instance.Platform;
                        newServer.Processors     = instance.Processors;
                    }
                    catch (Exception)
                    {
                    }

                    Common.ApplicationDataSet.Servers.AddServersRow(newServer);
                    Common.ApplicationDataSet.Servers_Update();
                    //Common.ApplicationDataSet.ServersTA.Update(Common.ApplicationDataSet.Servers);

                    instance.Server_ID = newServer.ID;
                    Common.ApplicationDataSet.Instances_Update();
                    //Common.ApplicationDataSet.InstancesTA.Update(Common.ApplicationDataSet.Instances);
                }
                catch (Exception ex)
                {
                    VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2);
                }
            }
        }