예제 #1
0
파일: Job.cs 프로젝트: chrhodes/EyeOnLife
        public static void LoadFromSMO(MSMOA.JobServer jobServer, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace3("Enter", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 0);
#endif

            foreach (MSMOA.Job job in jobServer.Jobs)
            {
                SQLInformation.Data.ApplicationDataSet.JSJobsRow jobRow = GetInfoFromSMO(job, jobServerRow);

                try
                {
                    if (jobRow.ExpandJobSteps)
                    {
                        JobStep.LoadFromSMO(job, jobRow.ID);
                    }
                }
                catch (Exception ex)
                {
                    VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 1);
                }
            }
#if TRACE
            VNC.AppLog.Trace3("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 1, startTicks);
#endif
        }
예제 #2
0
        public static void LoadFromSMO(MSMOA.JobServer jobServer, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace3("Enter", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 0);
#endif
            foreach (MSMOA.AlertCategory alertCategory in jobServer.AlertCategories)
            {
                GetInfoFromSMO(alertCategory, jobServerRow);
            }
#if TRACE
            VNC.AppLog.Trace3("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 1, startTicks);
#endif
        }
예제 #3
0
        public static void LoadFromSMO(MSMOA.JobServer jobServer, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace2("Enter", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 0);
#endif

            foreach (MSMOA.TargetServerGroup targetServerGroup in jobServer.TargetServerGroups)
            {
                GetInfoFromSMO(targetServerGroup, jobServerRow);
            }
#if TRACE
            VNC.AppLog.Trace2("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 1, startTicks);
#endif
        }
예제 #4
0
        public static void LoadFromSMO(MSMOA.JobServer jobServer, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace3("Enter", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 0);
#endif

            foreach (MSMOA.JobSchedule jobSchedule in jobServer.SharedSchedules)
            {
                GetInfoFromSMO(jobSchedule, jobServerRow);

                // Perhaps this is where to get Steps
            }
#if TRACE
            VNC.AppLog.Trace3("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 1, startTicks);
#endif
        }
예제 #5
0
        private static void Update(MSMOA.JobServer jobServer, SQLInformation.Data.ApplicationDataSet.JobServersRow dataRow)
        {
            try
            {
                if (dataRow.IsMonitored)
                {
                    jobServer.UpdateDataSet(dataRow);

                    UpdateDatabaseWithSnapShot(dataRow, "");
                }
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 8);

                UpdateDatabaseWithSnapShot(dataRow, ex.ToString().Substring(0, 256));
            }
        }
예제 #6
0
        public static SQLInformation.Data.ApplicationDataSet.JobServersRow GetInfoFromSMO(Guid instanceID, string instanceName, MSMOA.JobServer jobServer)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace4(string.Format("Enter ({0})", jobServer.Name), LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 3);
#endif

            SQLInformation.Data.ApplicationDataSet.JobServersRow dataRow = null;

            try
            {
                var dbs = from db in Common.ApplicationDataSet.JobServers
                          where db.Instance_ID == instanceID
                          select db;

                var dbs2 = from db2 in dbs
                           where db2.Name_JobServer == jobServer.Name
                           select db2;

                if (dbs2.Count() > 0)
                {
                    dataRow = dbs2.First();
                    Update(jobServer, dataRow);
                }
                else
                {
                    dataRow = Add(instanceID, instanceName, jobServer);
                }
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 4);
            }

#if TRACE
            VNC.AppLog.Trace4("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 5, startTicks);
#endif
            return dataRow;
        }
예제 #7
0
        private static SQLInformation.Data.ApplicationDataSet.JSOperatorCategoriesRow Add(MSMOA.OperatorCategory operatorCategory, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
            SQLInformation.Data.ApplicationDataSet.JSOperatorCategoriesRow dataRow = null;

            try
            {
                dataRow    = Common.ApplicationDataSet.JSOperatorCategories.NewJSOperatorCategoriesRow();
                dataRow.ID = Guid.NewGuid();

                dataRow.Name_JSOperatorCategory = operatorCategory.Name;
                dataRow.JobServer_ID            = jobServerRow.ID;

                dataRow.SnapShotDate  = DateTime.Now;
                dataRow.SnapShotError = "";

                Common.ApplicationDataSet.JSOperatorCategories.AddJSOperatorCategoriesRow(dataRow);
                Common.ApplicationDataSet.JSOperatorCategoriesTA.Update(Common.ApplicationDataSet.JSOperatorCategories);
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 5);
                // TODO(crhodes):
                // Wrap anything above that throws an exception that we want to ignore,
                // e.g. property not available because of SQL Edition.

                UpdateDatabaseWithSnapShot(dataRow, ex.ToString().Substring(0, 256));
            }

            return(dataRow);
        }
예제 #8
0
        private static SQLInformation.Data.ApplicationDataSet.JSOperatorCategoriesRow GetInfoFromSMO(MSMOA.OperatorCategory operatorCategory, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace4(string.Format("Enter ({0})", operatorCategory.Name), LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2);
#endif

            SQLInformation.Data.ApplicationDataSet.JSOperatorCategoriesRow dataRow = null;

            try
            {
                var dbs = from db in Common.ApplicationDataSet.JSOperatorCategories
                          where db.JobServer_ID == jobServerRow.ID
                          select db;

                var dbs2 = from db2 in dbs
                           where db2.Name_JSOperatorCategory == operatorCategory.Name
                           select db2;

                if (dbs2.Count() > 0)
                {
                    dataRow = dbs2.First();
                    Update(operatorCategory, dataRow);
                }
                else
                {
                    dataRow = Add(operatorCategory, jobServerRow);
                }
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 3);
            }

#if TRACE
            VNC.AppLog.Trace4("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 4, startTicks);
#endif
            return(dataRow);
        }
예제 #9
0
        private static SQLInformation.Data.ApplicationDataSet.JSTargetServersRow Add(MSMOA.TargetServer targetServer, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
            SQLInformation.Data.ApplicationDataSet.JSTargetServersRow dataRow = null;

            try
            {
                dataRow                     = Common.ApplicationDataSet.JSTargetServers.NewJSTargetServersRow();
                dataRow.ID                  = Guid.NewGuid();
                dataRow.JobServer_ID        = jobServerRow.ID;
                dataRow.Name_JSTargetServer = targetServer.Name;
                dataRow.EnlistDate          = targetServer.EnlistDate;
                dataRow.LastPollDate        = targetServer.LastPollDate;
                dataRow.LocalTime           = targetServer.LocalTime;
                dataRow.Location            = targetServer.Location;
                dataRow.PendingInstructions = targetServer.PendingInstructions;
                dataRow.PollingInterval     = targetServer.PollingInterval;
                dataRow.State               = targetServer.State.ToString();
                dataRow.Status              = targetServer.Status.ToString();

                dataRow.SnapShotDate  = DateTime.Now;
                dataRow.SnapShotError = "";

                Common.ApplicationDataSet.JSTargetServers.AddJSTargetServersRow(dataRow);
                Common.ApplicationDataSet.JSTargetServersTA.Update(Common.ApplicationDataSet.JSTargetServers);
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 5);
                // TODO(crhodes):
                // Wrap anything above that throws an exception that we want to ignore,
                // e.g. property not available because of SQL Edition.

                UpdateDatabaseWithSnapShot(dataRow, ex.ToString().Substring(0, 256));
            }

            return(dataRow);
        }
예제 #10
0
        private static SQLInformation.Data.ApplicationDataSet.JSJobSchedulesRow GetInfoFromSMO(MSMOA.JobSchedule jobSchedule, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace4(string.Format("Enter ({0})", jobSchedule.Name), LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2);
#endif

            SQLInformation.Data.ApplicationDataSet.JSJobSchedulesRow dataRow = null;

            //// TODO(crhodes) Needs work.  See TBTrigger for hints
            //var dbs = from db in Common.ApplicationDataSet.JSJobSchedules
            //          where db. == jobServerRow.ID
            //          select db;

            //var dbs2 = from db2 in dbs
            //           where db2.Name_JSJobSchedule == jobSchedule.Name
            //           select db2;

            //if (dbs2.Count() > 0)
            //{
            //    // We have found a JobServer with a matching name.
            //    // TODO(crhodes): There should only be one.

            //    try
            //    {
            //        foreach (var item in dbs2)
            //        {
            //            jobScheduleRow = item;

            //            //if (targetServerRow.IsMonitored)
            //            //{
            //            //    // Update the main entry

            //            jobSchedule.UpdateDataSet(item);
            //            jobScheduleRow.SnapShotDate = DateTime.Now;
            //            jobScheduleRow.SnapShotError = "";
            //            Common.ApplicationDataSet.JSJobSchedulesTA.Update(Common.ApplicationDataSet.JSJobSchedules);

            //            //    // Add add the Snapshot

            //            //    //TakeJobServerSnapShot(jobServerRow);
            //            //}
            //        }
            //    }
            //    catch (Exception ex)
            //    {
            //        jobScheduleRow.SnapShotDate = DateTime.Now;
            //        jobScheduleRow.SnapShotError = ex.ToString().Substring(0, 256);
            //        Common.ApplicationDataSet.JSJobSchedulesTA.Update(Common.ApplicationDataSet.JSJobSchedules);
            //        VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 41);
            //    }
            //}
            //else
            //{
            //    // Add new one
            //    try
            //    {
            //        jobScheduleRow = Common.ApplicationDataSet.JSJobSchedules.NewJSJobSchedulesRow();
            //        jobScheduleRow.ID = Guid.NewGuid();

            //        jobScheduleRow.Name_JSJobSchedule = jobSchedule.Name;
            //        jobScheduleRow.JSJob_ID = jobID;

            //        jobScheduleRow.ActiveEndDate = jobSchedule.ActiveEndDate;
            //        jobScheduleRow.ActiveEndTimeOfDay = jobSchedule.ActiveEndTimeOfDay;
            //        jobScheduleRow.ActiveStartDate = jobSchedule.ActiveStartDate;
            //        jobScheduleRow.ActiveStartTimeOfDay = jobSchedule.ActiveStartTimeOfDay;
            //        jobScheduleRow.DateCreated = jobSchedule.DateCreated;
            //        jobScheduleRow.FrequencyInterval = jobSchedule.FrequencyInterval.ToString();
            //        jobScheduleRow.FrequencyRecurrenceFactor = jobSchedule.FrequencyRecurrenceFactor.ToString();
            //        jobScheduleRow.FrequencyRelativeIntervals = jobSchedule.FrequencyRelativeIntervals.ToString();
            //        jobScheduleRow.FrequencySubDayInterval = jobSchedule.FrequencySubDayInterval.ToString();
            //        jobScheduleRow.FrequencySubDayTypes = jobSchedule.FrequencySubDayTypes.ToString();
            //        jobScheduleRow.FrequencyTypes = jobSchedule.FrequencyTypes.ToString();
            //        jobScheduleRow.ID_JobSchedule = jobSchedule.ID;
            //        jobScheduleRow.IsEnabled = jobSchedule.IsEnabled;
            //        jobScheduleRow.JobCount = jobSchedule.JobCount;

            //        jobScheduleRow.SnapShotDate = DateTime.Now;
            //dataRow.SnapShotError = "";


            //        Common.ApplicationDataSet.JSJobSchedules.AddJSJobSchedulesRow(jobScheduleRow);
            //        Common.ApplicationDataSet.JSJobSchedulesTA.Update(Common.ApplicationDataSet.JSJobSchedules);
            //    }
            //    catch (Exception ex)
            //    {
            //        jobScheduleRow.SnapShotDate = DateTime.Now;
            //        jobScheduleRow.SnapShotError = ex.ToString().Substring(0, 256);
            //        Common.ApplicationDataSet.JSJobSchedulesTA.Update(Common.ApplicationDataSet.JSJobSchedules);
            //        VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 47);
            //    }
            //}

#if TRACE
            VNC.AppLog.Trace4("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 10, startTicks);
#endif
            return(dataRow);
        }
예제 #11
0
        private static void Load_JSSharedSchedules_FromSMO(MSMOA.JobServer jobServer, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace2("Enter", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 0);
#endif

            foreach (MSMOA.JobSchedule jobSchedule in jobServer.SharedSchedules)
            {
                GetInfoFromSMO(jobSchedule, jobServerRow);
            }
#if TRACE
            VNC.AppLog.Trace2("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 1, startTicks);
#endif
        }
예제 #12
0
        private static SQLInformation.Data.ApplicationDataSet.JSOperatorsRow Add(MSMOA.Operator operatorX, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
            SQLInformation.Data.ApplicationDataSet.JSOperatorsRow dataRow = null;

            try
            {
                dataRow                 = Common.ApplicationDataSet.JSOperators.NewJSOperatorsRow();
                dataRow.ID              = Guid.NewGuid();
                dataRow.JobServer_ID    = jobServerRow.ID;
                dataRow.Name_JSOperator = operatorX.Name;
                dataRow.CategoryName    = operatorX.CategoryName;
                dataRow.EmailAddress    = operatorX.EmailAddress;
                dataRow.Enabled         = operatorX.Enabled;
                dataRow.ID_Operator     = operatorX.ID;
                dataRow.LastEmailDate   = operatorX.LastEmailDate;
                dataRow.LastNetSendDate = operatorX.LastNetSendDate;
                dataRow.LastPagerDate   = operatorX.LastPagerDate;
                dataRow.NetSendAddress  = operatorX.NetSendAddress;
                dataRow.PagerAddress    = operatorX.PagerAddress;
                dataRow.PagerDays       = operatorX.PagerDays.ToString();
                // TODO(crhodes): Is there a better datatype/
                dataRow.SaturdayPagerEndTime   = operatorX.SaturdayPagerEndTime.ToString();
                dataRow.SaturdayPagerStartTime = operatorX.SaturdayPagerStartTime.ToString();
                dataRow.SundayPagerEndTime     = operatorX.SaturdayPagerEndTime.ToString();
                dataRow.SundayPagerStartTime   = operatorX.SaturdayPagerStartTime.ToString();
                dataRow.WeekdayPagerEndTime    = operatorX.WeekdayPagerEndTime.ToString();
                dataRow.WeekdayPagerStartTime  = operatorX.WeekdayPagerStartTime.ToString();

                dataRow.SnapShotDate  = DateTime.Now;
                dataRow.SnapShotError = "";

                Common.ApplicationDataSet.JSOperators.AddJSOperatorsRow(dataRow);
                Common.ApplicationDataSet.JSOperatorsTA.Update(Common.ApplicationDataSet.JSOperators);
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 5);
                // TODO(crhodes):
                // Wrap anything above that throws an exception that we want to ignore,
                // e.g. property not available because of SQL Edition.

                UpdateDatabaseWithSnapShot(dataRow, ex.ToString().Substring(0, 256));
            }

            return(dataRow);
        }
예제 #13
0
        public static void LoadFromSMO(MSMOA.JobServer jobServer, Guid instanceID, string instanceName, ExpandMask.JobServerExpandSetting jobServerExpandSetting)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace2("Enter", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 0);
#endif

            SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow = JobServer.GetInfoFromSMO(instanceID, instanceName, jobServer);

            try
            {
                if (jobServerRow.IsMonitored && jobServerExpandSetting.IsMonitored)
                {
                    if (jobServerRow.ExpandAlertCategories && jobServerExpandSetting.ExpandAlertCategories)
                    {
                        AlertCategory.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandAlerts && jobServerExpandSetting.ExpandAlerts)
                    {
                        Alert.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandJobCategories && jobServerExpandSetting.ExpandJobCategories)
                    {
                        JobCategory.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandJobs && jobServerExpandSetting.ExpandJobs)
                    {
                        Job.LoadFromSMO(jobServer, jobServerRow);
                    }

                    //if (jobServerRow.ExpandJobSteps && jobServerExpandSetting.ExpandJobSteps)
                    //{
                    //    Load_JSJobSteps_FromSMO(jobServer, jobServerRow);
                    //}

                    if (jobServerRow.ExpandOperatorCategories && jobServerExpandSetting.ExpandOperatorCategories)
                    {
                        OperatorCategory.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandOperators && jobServerExpandSetting.ExpandOperators)
                    {
                        Operator.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandProxyAccounts && jobServerExpandSetting.ExpandProxyAccounts)
                    {
                        ProxyAccount.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandSharedSchedules && jobServerExpandSetting.ExpandSharedSchedules)
                    {
                        JobSchedule.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandTargetServerGroups && jobServerExpandSetting.ExpandTargetServerGroups)
                    {
                        TargetServerGroup.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandTargetServers && jobServerExpandSetting.ExpandTargetServers)
                    {
                        TargetServer.LoadFromSMO(jobServer, jobServerRow);
                    }

                }
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 1);
            }

#if TRACE
            VNC.AppLog.Trace2("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2, startTicks);
#endif
        }
예제 #14
0
        private static SQLInformation.Data.ApplicationDataSet.JobServersRow Add(Guid instanceID, string instanceName, MSMOA.JobServer jobServer)
        {
            SQLInformation.Data.ApplicationDataSet.JobServersRow dataRow = null;

            try
            {
                dataRow = Common.ApplicationDataSet.JobServers.NewJobServersRow();
                dataRow.ID = Guid.NewGuid();

                dataRow.Name_JobServer = jobServer.Name;
                dataRow.Instance_ID = instanceID;
                dataRow.Name_Instance = instanceName;

                dataRow.ErrorLogFile = jobServer.ErrorLogFile;
                dataRow.HostLoginName = jobServer.HostLoginName;

                // TODO(crhodes): Change datatype in table to int.
                dataRow.MaximumHistoryRows = jobServer.MaximumHistoryRows.ToString(); ;
                dataRow.MaximumJobHistoryRows = jobServer.MaximumJobHistoryRows.ToString();

                try
                {
                    dataRow.MsxAccountCredentialName = jobServer.MsxAccountCredentialName;
                }
                catch (Exception ex)
                {
#if TRACE
                    VNC.AppLog.Debug(ex.ToString(), LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 6);
#endif                    
                }

                dataRow.MsxAccountName = jobServer.MsxAccountName;
                dataRow.MsxServerName = jobServer.MsxServerName;

                // TODO(crhodes): Think through how to set this.

                ExpandMask.JobServerExpandSetting expandSetting = new ExpandMask.JobServerExpandSetting(instanceID);

                dataRow.IsMonitored = expandSetting.IsMonitored;

                dataRow.ExpandAlertCategories = expandSetting.ExpandAlertCategories;
                dataRow.ExpandAlerts = expandSetting.ExpandAlerts;
                dataRow.ExpandJobCategories = expandSetting.ExpandJobCategories;
                dataRow.ExpandJobs = expandSetting.ExpandJobs;
                dataRow.ExpandOperatorCategories = expandSetting.ExpandOperatorCategories;
                dataRow.ExpandOperators = expandSetting.ExpandOperators;
                dataRow.ExpandProxyAccounts = expandSetting.ExpandProxyAccounts;
                dataRow.ExpandSharedSchedules = expandSetting.ExpandSharedSchedules;
                dataRow.ExpandTargetServerGroups = expandSetting.ExpandTargetServerGroups;
                dataRow.ExpandTargetServers = expandSetting.ExpandTargetServers;

                dataRow.SnapShotDate = DateTime.Now;
                dataRow.SnapShotError = "";

                Common.ApplicationDataSet.JobServers.AddJobServersRow(dataRow);
                Common.ApplicationDataSet.JobServersTA.Update(Common.ApplicationDataSet.JobServers);
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 7);
                // TODO(crhodes):  
                // Wrap anything above that throws an exception that we want to ignore, 
                // e.g. property not available because of SQL Edition.

                UpdateDatabaseWithSnapShot(dataRow, ex.ToString().Substring(0, 256));
            }

            return dataRow;
        }
예제 #15
0
        private static SQLInformation.Data.ApplicationDataSet.JSJobSchedulesRow GetInfoFromSMO(MSMOA.JobSchedule jobSchedule, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace4(string.Format("Enter ({0})", jobSchedule.Name), LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2);
#endif
            SQLInformation.Data.ApplicationDataSet.JSJobSchedulesRow dataRow = null;

            try
            {
                // TODO(crhodes) Needs work.  See TBTrigger for hints
                // JSJob_ID may be null.
                var jbs = from js in Common.ApplicationDataSet.JSJobSchedules
                          where js.JSJob_ID == jobServerRow.ID
                          select js;

                var dbs2 = from db2 in jbs
                           where db2.Name_JSJobSchedule == jobSchedule.Name
                           select db2;

                if (dbs2.Count() > 0)
                {
                    dataRow = dbs2.First();
                    Update(jobSchedule, dataRow);
                }
                else
                {
                    dataRow = Add(jobSchedule);
                }
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 3);
            }
#if TRACE
            VNC.AppLog.Trace4("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 4, startTicks);
#endif
            return(dataRow);
        }
예제 #16
0
파일: Alert.cs 프로젝트: chrhodes/EyeOnLife
        private static SQLInformation.Data.ApplicationDataSet.JSAlertsRow Add(MSMOA.Alert alert, SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow)
        {
            SQLInformation.Data.ApplicationDataSet.JSAlertsRow dataRow = null;

            try
            {
                dataRow = Common.ApplicationDataSet.JSAlerts.NewJSAlertsRow();

                dataRow.ID                  = Guid.NewGuid();
                dataRow.JobServer_ID        = jobServerRow.ID;
                dataRow.Name_JSAlert        = alert.Name;
                dataRow.AlertType           = alert.AlertType.ToString();
                dataRow.CategoryName        = alert.CategoryName;
                dataRow.CountResetDate      = alert.CountResetDate;
                dataRow.DatabaseName        = alert.DatabaseName;
                dataRow.IsEnabled           = alert.IsEnabled;
                dataRow.JobID               = alert.JobID;
                dataRow.JobName             = alert.JobName;
                dataRow.LastOccurrenceDate  = alert.LastOccurrenceDate;
                dataRow.LastResponseDate    = alert.LastResponseDate;
                dataRow.NotificationMessage = alert.NotificationMessage;
                dataRow.OccurrenceCount     = alert.OccurrenceCount;
                dataRow.Severity            = alert.Severity;

                try
                {
                    dataRow.WmiEventNamespace = alert.WmiEventNamespace;
                }
                catch (Exception ex)
                {
#if TRACE
                    VNC.AppLog.Debug(ex.ToString(), LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 5);
#endif
                    dataRow.WmiEventNamespace = "<Exception>";
                }

                try
                {
                    dataRow.WmiEventQuery = alert.WmiEventQuery;
                }
                catch (Exception ex)
                {
#if TRACE
                    VNC.AppLog.Debug(ex.ToString(), LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 6);
#endif
                    dataRow.WmiEventNamespace = "<Exception>";
                }

                dataRow.SnapShotDate  = DateTime.Now;
                dataRow.SnapShotError = "";

                Common.ApplicationDataSet.JSAlerts_Add(dataRow);
            }
            catch (Exception ex)
            {
                ReportException(ex, dataRow, CLASS_BASE_ERRORNUMBER + 7);
            }

            return(dataRow);
        }