public async Task SetStatusAndResetLastTestCycleIntervalAsync(
            MonitorStatus oldStatus,
            MonitorStatus newStatus)
        {
            // Arrange
            var monitor = new NcMonitor
            {
                StatusId = (int)oldStatus,
                LastTestCycleInterval = new TimeSpan(2, 3, 4),
            };

            var monitorRepo = new Mock <IMonitorRepository>();

            IMonitorManager monitorManager = new MonitorManager(
                It.IsAny <IChannelRepository>(),
                monitorRepo.Object,
                It.IsAny <IRecordRepository>(),
                It.IsAny <IScenarioRepository>());

            // Act
            await monitorManager.SetStatusAndResetLastTestCycleIntervalAsync(
                monitor,
                newStatus);

            // Assert
            monitorRepo.Verify(x => x.UpdateAsync(monitor), Times.Once());
            Assert.Equal(new TimeSpan?(), monitor.LastTestCycleInterval);
            Assert.Equal(newStatus, monitor.StatusEnum());
        }
Example #2
0
        public void Step(MonitoredState state)
        {
            if (currentNegative == null | currentPositive == null)
                return;

            var successors = positiveNFA.Post (currentPositive, (l, t) => state.Evaluate (l.LiteralSet));
            if (successors.Count () == 1) {
                currentPositive = successors.Single ();

            } else if (successors.Count () == 0) {
                // There is no way to satisfy the formula
                currentPositive = null;
                Status = MonitorStatus.False;
                return;

            } else {
                throw new NotImplementedException ("Non deterministic automaton not supported.");
            }

            successors = negativeNFA.Post (currentNegative,(l, t) => state.Evaluate (l.LiteralSet));
            if (successors.Count () == 1) {
                currentNegative = successors.Single ();

            } else if (successors.Count () == 0) {
                // There is no way to dissatisfy the formula
                currentNegative = null;
                Status = MonitorStatus.True;
                return;

            } else {
                throw new NotImplementedException ("Non deterministic automaton not supported.");
            }

            UpdateStatus ();
        }
Example #3
0
        public void Capture(IStatistics statistics, MonitorStatus status)
        {
            try
            {
                switch (status)
                {
                case MonitorStatus.None:
                    break;

                case MonitorStatus.Stopped:
                    _currentStatistics = Get(statistics);
                    break;

                case MonitorStatus.Running:
                    _previousStatistics = Get(statistics);
                    break;

                default:
                    break;
                }
            }
            catch (Exception e)
            {
                _log.Error($"{_nameOfThis} - Failed to Capture Statistics for {_nameOfThis}: {e.Message}");
                _log.Debug($"{_nameOfThis} - Failed to Capture Statistics for {_nameOfThis}: {e.StackTrace}");
                if (!ContinueOnError)
                {
                    throw;
                }
            }
        }
Example #4
0
        public List <MonitorStatus> dataBarChart()
        {
            List <MonitorStatus> lstMonSt   = new List <MonitorStatus>();
            OraManager           oraManager = new OraManager();
            DataTable            dt         = new DataTable();
            MonitorStatus        monSt;

            try {
                string strQuery = string.Empty;
                strQuery = " select batch_name,c_sla ,est_hours from  monitor_edw where c_sla in ('Miss' ,'Meet') order by batch_name ";
                dt       = oraManager.GetDataEDW(strQuery);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    monSt            = new MonitorStatus();
                    monSt.Batch_name = dt.Rows[i]["batch_name"].ToString();
                    if (dt.Rows[i]["c_sla"].ToString() == "Miss")
                    {
                        monSt.C_sla = "#E04B4A";// "#dc3545"
                    }
                    else  // Meet
                    {
                        monSt.C_sla = "#1caf9a"; // "#28a745";
                    }
                    monSt.Est_hours = dt.Rows[i]["est_hours"].ToString();
                    lstMonSt.Add(monSt);
                }
            } catch (Exception e) {
                Console.WriteLine(e.Message.ToString());
            }


            return(lstMonSt);
        }
Example #5
0
 public HttpMonitorUp(HttpMonitorId httpMonitorId, MonitorStatus previousStatus, DateTime startTime, DateTime created)
 {
     HttpMonitorId  = httpMonitorId ?? throw new ArgumentNullException(nameof(httpMonitorId));
     PreviousStatus = previousStatus;
     StartTime      = startTime;
     Created        = created;
 }
Example #6
0
        public List <MonitorStatus> dataTimeline(string person)
        {
            List <MonitorStatus> lstMonSt   = new List <MonitorStatus>();
            OraManager           oraManager = new OraManager();
            DataTable            dt         = new DataTable();
            MonitorStatus        monSt;

            try
            {
                string strQuery = string.Empty;
                strQuery  = " select batch_name ,status, timeline from monitor_edw ";
                strQuery += " where business_date is not null ";
                strQuery += " and first_supportor_id ='" + person + "' ";
                strQuery += " order by timeline ,status ";
                dt        = oraManager.GetDataEDW(strQuery);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    monSt                 = new MonitorStatus();
                    monSt.Batch_name      = dt.Rows[i]["batch_name"].ToString();
                    monSt.Status_timeline = dt.Rows[i]["status"].ToString().Substring(0, 1);
                    monSt.Timeline        = dt.Rows[i]["timeline"].ToString();

                    lstMonSt.Add(monSt);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message.ToString());
            }


            return(lstMonSt);
        }
Example #7
0
        public void Subscribe()
        {
            lock (this._Sync)
            {
                if (this.Status != MonitorStatus.Subscribed)
                {
                    this.UpdateQueue();

                    NotificationReciever.NotifyChangeSetId += new NotifyChangeSetIdDelegate(OnNotifyChangeSetId);

                    Uri ServiceUri = this.GetServiceUri();

                    this.StartListener(ServiceUri);

                    bool CurrentlySubscribed = this.Subscribed();

                    if (!CurrentlySubscribed)
                    {
                        DeliveryPreference SubscriptionInfo = this.GetSubscriptionInfo(ServiceUri.ToString());
                        this.State.AlertId = this.EventService.SubscribeEvent(this.Server.AuthenticatedUserName, "CheckinEvent", String.Empty, SubscriptionInfo);
                    }
                    this._Status = MonitorStatus.Subscribed;
                }
            }
        }
Example #8
0
        public void TestMonitorStatus_ReturnsStatusOfMonitor(MonitorStatus monitorStatus)
        {
            var monitor = Substitute.For <IMonitor>();

            monitor.Status.Returns(monitorStatus);
            var systemUnderTest = new TrayIcon(monitor);

            Assert.That(systemUnderTest.MonitorStatus, Is.EqualTo(monitor.Status));
        }
Example #9
0
        protected void OnStatusChange(MonitorStatus status, string message)
        {
            var handler = StatusChange;

            if (handler != null)
            {
                handler(this, new MonitorStatusChangeEventArgs(status, message));
            }
        }
Example #10
0
        public List <MonitorStatus> getReportSASStatus(string status)
        {
            List <MonitorStatus> lstMonSt   = new List <MonitorStatus>();
            OraManager           oraManager = new OraManager();
            DataTable            dt         = new DataTable();
            MonitorStatus        monSt;

            try
            {
                string strQuery = string.Empty;

                strQuery  = " select status ,sla ,c_sla ,work_name ,batch_name ,business_date ";
                strQuery += "  ,job_start_date  ,job_end_date   ";
                strQuery += " , frequency , stream , est_hours ,avg_ ,avg_c ,min_ ,max_ ,first_supportor_id";
                strQuery += " ,wait_appl ,impact ";
                strQuery += " from monitor_sas ";
                if (status != "")
                {
                    strQuery += " where status like '%" + status + "%' ";
                }

                dt = oraManager.GetDataEDW(strQuery);

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    monSt                    = new MonitorStatus();
                    monSt.Status             = dt.Rows[i]["status"].ToString().Substring(0, 1);
                    monSt.Status_name        = dt.Rows[i]["status"].ToString().Substring(2);
                    monSt.Sla                = dt.Rows[i]["sla"].ToString();
                    monSt.C_sla              = dt.Rows[i]["c_sla"].ToString();
                    monSt.Work_name          = dt.Rows[i]["work_name"].ToString();
                    monSt.Batch_name         = dt.Rows[i]["batch_name"].ToString();
                    monSt.Business_date      = dt.Rows[i]["business_date"].ToString();
                    monSt.Job_start_date     = dt.Rows[i]["job_start_date"].ToString();
                    monSt.Job_end_date       = dt.Rows[i]["job_end_date"].ToString();
                    monSt.Frequency          = dt.Rows[i]["frequency"].ToString();
                    monSt.Est_hours          = dt.Rows[i]["est_hours"].ToString();
                    monSt.Avg_c              = dt.Rows[i]["avg_c"].ToString();
                    monSt.Avg                = dt.Rows[i]["avg_"].ToString();
                    monSt.Min                = dt.Rows[i]["min_"].ToString();
                    monSt.Max                = dt.Rows[i]["max_"].ToString();
                    monSt.First_supportor_id = dt.Rows[i]["first_supportor_id"].ToString();
                    monSt.Wait_appl          = dt.Rows[i]["wait_appl"].ToString();
                    monSt.Impact_appl        = dt.Rows[i]["impact"].ToString();

                    lstMonSt.Add(monSt);
                }
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.Message.ToString());
            }

            return(lstMonSt);
        }
        public override int GetHashCode()
        {
            int result = DomainName != null?DomainName.GetHashCode() : 0;

            result = (result * 397) ^ (Location != null ? Location.GetHashCode() : 0);
            result = (result * 397) ^ Type.GetHashCode();
            result = (result * 397) ^ Status.GetHashCode();
            result = (result * 397) ^ MonitorStatus.GetHashCode();
            result = (result * 397) ^ Weight.GetHashCode();
            return(result);
        }
        public virtual async Task <bool> HasStatusChanged()
        {
            PreviousStatus = Status;
            Status         = await GetCurrentStatus();

            if (Status == PreviousStatus)
            {
                return(false);
            }
            LastStatusChange = DateTime.Now;
            return(true);
        }
Example #13
0
        public HttpMonitorDown(HttpMonitorId httpMonitorId, MonitorStatus previousStatus, DateTime startTime, DateTime created)
        {
            if (!Enum.IsDefined(typeof(MonitorStatus), previousStatus))
            {
                throw new InvalidEnumArgumentException(nameof(previousStatus), (int)previousStatus,
                                                       typeof(MonitorStatus));
            }

            HttpMonitorId  = httpMonitorId ?? throw new ArgumentNullException(nameof(httpMonitorId));
            PreviousStatus = previousStatus;
            StartTime      = startTime;
            Created        = created;
        }
Example #14
0
        public async void Update(object stateInfo)
        {
            var updateStarted = TryBeginUpdate(out var currentUpdateNumber);

            if (!updateStarted)
            {
                _logger.Info($"{nameof(Monitor)}: postponing update #{currentUpdateNumber + 1} as update {currentUpdateNumber} is still running.");
                return;
            }

            var projects = stateInfo as IEnumerable <MonitoredProjectSettings>;

            _logger.Info($"{nameof(Monitor)}: beginning update #{currentUpdateNumber}...");
            var updateStartTime = DateTime.Now;

            Status = await DoUpdate(projects);

            var updateDuration       = DateTime.Now.Subtract(updateStartTime);
            var updateDurationString = $"{updateDuration.Seconds:D2}.{updateDuration.Milliseconds:D3} s";

            if (Status == MonitorStatus.CouldNotReachServer)
            {
                _logger.Info(
                    $"{nameof(Monitor)}: update #{currentUpdateNumber} failed in {updateDurationString} because the server hosting one or more projects could not be contacted");
            }
            else if (Status == MonitorStatus.AuthorisationError)
            {
                _logger.Info(
                    $"{nameof(Monitor)}: update #{currentUpdateNumber} failed in {updateDurationString} due to an authorisation problem with one or more projects");
            }
            else if (Status == MonitorStatus.UnrecognisedError)
            {
                _logger.Error(
                    $"{nameof(Monitor)}: update #{currentUpdateNumber} failed in {updateDurationString} due to one or more exceptions (logged above).");
            }
            else if (Status == MonitorStatus.NoProjects)
            {
                _logger.Warn(
                    $"{nameof(Monitor)}: update #{currentUpdateNumber} should not have been started as no projects are configured");
            }
            else if (Status == MonitorStatus.UpdateSuccessful)
            {
                _logger.Info(
                    $"{nameof(Monitor)}: update #{currentUpdateNumber} completed successfully in {updateDuration.Seconds}.{updateDuration.Milliseconds:D3}" +
                    $" s; pull request count is {ApprovedPullRequestCount + UnapprovedPullRequestCount}.");
            }

            CompleteUpdate();
            OnUpdateCompleted();
        }
Example #15
0
        public ScheduleDownAlertContact(AlertContactId alertContactId, HttpMonitorId httpMonitorId, MonitorStatus previousStatus, DateTime startTime, DateTime created)
        {
            if (!Enum.IsDefined(typeof(MonitorStatus), previousStatus))
            {
                throw new InvalidEnumArgumentException(nameof(previousStatus), (int)previousStatus,
                                                       typeof(MonitorStatus));
            }

            AlertContactId = alertContactId ?? throw new ArgumentNullException(nameof(alertContactId));
            HttpMonitorId  = httpMonitorId ?? throw new ArgumentNullException(nameof(httpMonitorId));
            PreviousStatus = previousStatus;
            StartTime      = startTime;
            Created        = created;
        }
        public void ReportMonitorsStatus()
        {
            MonitorStatus status = MonitorStatus.Ok;

            _balloonIcon    = ToolTipIcon.None;
            _balloonMessage = string.Empty;

            foreach (MonitorHost host in _hosts.Values.OrderBy(x => x.Name))
            {
                host.GetMonitorStatus();
            }

            _balloonIcon = ConvertTimerStatusToToolTipIcon(status);
            ShowBalloonTip("Monitorer MonitorStatus");
        }
Example #17
0
        protected void FireStatusChangeEvent(MonitorStatus status)
        {
            if (MonitorStatusChange != null)
            {
                var args = new MonitorStatusChangeEventArgs(status);

                if (MonitorStatusChange.Target is Control targetCtrl)
                {
                    targetCtrl.Invoke(MonitorStatusChange, this, args);
                }
                else
                {
                    MonitorStatusChange(this, args);
                }
            }
        }
Example #18
0
        public static IHtmlString Span(this MonitorStatus status, string text, string tooltip = null)
        {
            switch (status)
            {
            case MonitorStatus.Good:
                return(StatusIndicator.UpCustomSpam(text, tooltip));

            case MonitorStatus.Warning:
                return(StatusIndicator.WarningCustomSpam(text, tooltip));

            case MonitorStatus.Critical:
                return(StatusIndicator.DownCustomSpam(text, tooltip));

            default:
                return(StatusIndicator.UnknownCustomSpam(text, tooltip));
            }
        }
        public static string BackgroundClass(this MonitorStatus status, bool showGood = true)
        {
            switch (status)
            {
            case MonitorStatus.Good:
                return(showGood ? "bg-success" : "");

            case MonitorStatus.Warning:
                return("bg-warning");

            case MonitorStatus.Critical:
                return("bg-danger");

            default:
                return("bg-muted");
            }
        }
Example #20
0
        public static string Class(this MonitorStatus status)
        {
            switch (status)
            {
            case MonitorStatus.Good:
                return(StatusIndicator.UpClass);

            case MonitorStatus.Warning:
                return(StatusIndicator.WarningClass);

            case MonitorStatus.Critical:
                return(StatusIndicator.DownClass);

            default:
                return(StatusIndicator.UnknownClass);
            }
        }
Example #21
0
        public static string RowClass(this MonitorStatus status)
        {
            switch (status)
            {
            case MonitorStatus.Good:
                return("good-row");

            case MonitorStatus.Warning:
                return("warning-row");

            case MonitorStatus.Critical:
                return("critical-row");

            default:
                return("unknown-row");
            }
        }
        public static ToolTipIcon ConvertTimerStatusToToolTipIcon(MonitorStatus status)
        {
            switch (status)
            {
            case MonitorStatus.Warning:
                return(ToolTipIcon.Warning);

            case MonitorStatus.Error:
                return(ToolTipIcon.Error);

            case MonitorStatus.Down:
                return(ToolTipIcon.Error);

            default:
                return(ToolTipIcon.None);
            }
        }
Example #23
0
        public List <MonitorStatus> getReportSASFreqency(string frequency)
        {
            List <MonitorStatus> lstMonSt   = new List <MonitorStatus>();
            OraManager           oraManager = new OraManager();
            DataTable            dt         = new DataTable();
            MonitorStatus        monSt;

            try
            {
                string strQuery = string.Empty;

                strQuery  = " select status ,sla ,work_name ,batch_name , business_date ";
                strQuery += "  , job_start_date , job_end_date";
                strQuery += "  , frequency , stream ";
                strQuery += " from monitor_sas ";
                if (frequency != "")
                {
                    strQuery += " where frequency like '%" + frequency + "%' ";
                }

                dt = oraManager.GetDataEDW(strQuery);

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    monSt                = new MonitorStatus();
                    monSt.Status         = dt.Rows[i]["status"].ToString().Substring(0, 1);
                    monSt.Status_name    = dt.Rows[i]["status"].ToString();
                    monSt.Sla            = dt.Rows[i]["sla"].ToString();
                    monSt.Work_name      = dt.Rows[i]["work_name"].ToString();
                    monSt.Batch_name     = dt.Rows[i]["batch_name"].ToString();
                    monSt.Business_date  = dt.Rows[i]["business_date"].ToString();
                    monSt.Job_start_date = dt.Rows[i]["job_start_date"].ToString();
                    monSt.Job_end_date   = dt.Rows[i]["job_end_date"].ToString();
                    monSt.Frequency      = dt.Rows[i]["frequency"].ToString();
                    monSt.Stream         = dt.Rows[i]["stream"].ToString();
                    lstMonSt.Add(monSt);
                }
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.Message.ToString());
            }

            return(lstMonSt);
        }
Example #24
0
        public override int GetHashCode()
        {
            int result = DomainName != null?DomainName.GetHashCode() : 0;

            result = (result * 397) ^ (Location != null ? Location.GetHashCode() : 0);
            result = (result * 397) ^ Type.GetHashCode();
            result = (result * 397) ^ Status.GetHashCode();
            result = (result * 397) ^ MonitorStatus.GetHashCode();
            if (Weight.HasValue)
            {
                result = (result * 397) ^ Weight.GetHashCode();
            }
            if (MinChildEndpoints.HasValue)
            {
                result = (result * 397) ^ MinChildEndpoints.GetHashCode();
            }
            return(result);
        }
Example #25
0
        protected void OnStatusChange(MonitorStatus status)
        {
            if (_Status == MonitorStatus.IsOk)
            {
                IsOnline = true;
            }
            else
            {
                IsOnline = false;
            }
            IsOnlineFeedback.FireUpdate();
            var handler = StatusChange;

            if (handler != null)
            {
                handler(this, new MonitorStatusChangeEventArgs(status));
            }
        }
Example #26
0
        /// <summary>
        /// Returns an icon span representation of this MonitorStatus
        /// </summary>
        public static IHtmlString IconSpan(this MonitorStatus status)
        {
            switch (status)
            {
            case MonitorStatus.Good:
                return(StatusIndicator.IconSpan(StatusIndicator.UpClass));

            case MonitorStatus.Warning:
            case MonitorStatus.Maintenance:
                return(StatusIndicator.IconSpan(StatusIndicator.WarningClass));

            case MonitorStatus.Critical:
                return(StatusIndicator.IconSpan(StatusIndicator.DownClass));

            default:
                return(StatusIndicator.IconSpan(StatusIndicator.UnknownClass));
            }
        }
Example #27
0
        public static async Task Send(this ITethrHeartbeat heartbeat, MonitorStatus monitorStatus)
        {
            var             assembly        = Assembly.GetExecutingAssembly();
            FileVersionInfo fileVersionInfo = null;

            if (assembly.Location != null)
            {
                fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);
            }

            await heartbeat.Send(new MonitorEvent
            {
                Name            = Environment.MachineName,
                Status          = monitorStatus,
                TimeStamp       = DateTimeOffset.UtcNow,
                SoftwareVersion = fileVersionInfo?.ProductVersion
            });
        }
        public static string TextClass(this MonitorStatus status, bool showGood = false)
        {
            switch (status)
            {
            case MonitorStatus.Good:
                return(showGood ? "text-success" : "");

            case MonitorStatus.Warning:
                return("text-warning");

            case MonitorStatus.Critical:
                return("text-danger");

            //case MonitorStatus.Maintenance:
            default:
                return("text-muted");
            }
        }
        /// <summary>
        /// Returns an icon span representation of this MonitorStatus.
        /// </summary>
        /// <param name="status">The status to get an icon for.</param>
        public static IHtmlString IconSpan(this MonitorStatus status)
        {
            switch (status)
            {
            case MonitorStatus.Good:
                return(StatusIndicator.IconSpanGood);

            case MonitorStatus.Warning:
            case MonitorStatus.Maintenance:
                return(StatusIndicator.IconSpanWarning);

            case MonitorStatus.Critical:
                return(StatusIndicator.IconSpanCritical);

            default:
                return(StatusIndicator.IconSpanUnknown);
            }
        }
        }//end ctor()

        public void Capture(IStatistics statistics, MonitorStatus status)
        {
            switch (status)
            {
            case MonitorStatus.None:
                break;

            case MonitorStatus.Stopped:
                _currentStatistics = Get(statistics);
                break;

            case MonitorStatus.Running:
                _previousStatistics = Get(statistics);
                break;

            default:
                break;
            }
        }
        public static string ProgressBarClass(this MonitorStatus status)
        {
            switch (status)
            {
            case MonitorStatus.Good:
                return("progress-bar-success");

            case MonitorStatus.Unknown:
            case MonitorStatus.Maintenance:
            case MonitorStatus.Warning:
                return("progress-bar-warning");

            case MonitorStatus.Critical:
                return("progress-bar-danger");

            default:
                return("");
            }
        }
Example #32
0
        public void Consume(MonitoredState state)
        {
            foreach (var current in currentPositive.ToList ()) {
                var successors = positiveNFA.Post (current, (l, t) => state.Evaluate (l.LiteralSet));
                currentPositive.Remove (current);
                foreach (var nt in successors) {
                    currentPositive.Add (nt);
                }
            }

            foreach (var current in currentNegative.ToList ()) {
                var successors = negativeNFA.Post (current, (l, t) => state.Evaluate (l.LiteralSet));
                currentNegative.Remove (current);
                foreach (var nt in successors) {
                    currentNegative.Add (nt);
                }
            }

            var negativeAcceptance = currentNegative.All (t => !negativeNFA.AcceptingNodes.Contains (t));
            var positiveAcceptance = currentPositive.All (t => !positiveNFA.AcceptingNodes.Contains (t));

            Status = MonitorStatus.Inconclusive;
            if (negativeAcceptance | currentPositive.Count == 0)
                Status = MonitorStatus.False;
            if (positiveAcceptance | currentNegative.Count == 0)
                Status = MonitorStatus.True;
        }
Example #33
0
 static void monitor_MonitorStatusChanged(object sender, MonitorStatusEventArgs e)
 {
     currentStatus = e.Status;
 }
Example #34
0
 void UpdateStatus()
 {
     var negativeAcceptance = negativeNFA.AcceptingNodes.Contains (currentNegative);
     var positiveAcceptance = positiveNFA.AcceptingNodes.Contains (currentPositive);
     if (negativeAcceptance & positiveAcceptance) {
         Status = MonitorStatus.Inconclusive;
     } else if (!negativeAcceptance) {
         Status = MonitorStatus.True;
     } else if (!positiveAcceptance) {
         Status = MonitorStatus.False;
     } else {
         throw new NotImplementedException ();
     }
 }
Example #35
0
        public void Subscribe()
        {
            lock(this._Sync)
            {
                if (this.Status != MonitorStatus.Subscribed)
                {
                    this.UpdateQueue();

                    NotificationReciever.NotifyChangeSetId += new NotifyChangeSetIdDelegate(OnNotifyChangeSetId);

                    Uri ServiceUri = this.GetServiceUri();

                    this.StartListener(ServiceUri);

                    bool CurrentlySubscribed = this.Subscribed();

                    if (!CurrentlySubscribed)
                    {
                        DeliveryPreference SubscriptionInfo = this.GetSubscriptionInfo(ServiceUri.ToString());
                        this.State.AlertId = this.EventService.SubscribeEvent(this.Server.AuthenticatedUserName, "CheckinEvent", String.Empty, SubscriptionInfo);
                    }
                    this._Status = MonitorStatus.Subscribed;
                }
            }
        }