public void CureStatusCondition()
 {
     Status = null;
     OnStatusChange?.Invoke();
 }
Пример #2
0
        private void EventWatcher_EventArrived(object sender, EventArrivedEventArgs e)
        {
            var newEvent = e.NewEvent;

            if (newEvent == null)
            {
                return;
            }

            if (!(newEvent["ClassName"].ToString().Equals("CCM_Application") || newEvent["ClassName"].ToString().Equals("CCM_SoftwareUpdate")))
            {
                return;
            }

            try
            {
                var eventObject = (IResultObject) new WmiResultObject(newEvent);
                var target      = eventObject["TargetInstancePath"].StringValue;
                var targetparts = target.Split(',');

                switch (eventObject["ActionType"].IntegralValue)
                {
                case 23:

                    OnStatusChange?.Invoke(this, new CcmWmiEventargument
                    {
                        Id              = targetparts[0].Replace("CCM_Application.Id=", string.Empty).Replace("\"", string.Empty),
                        Revision        = targetparts[1].Replace("Revision=", string.Empty).Replace("\"", string.Empty),
                        IsMachineTarget = targetparts[2].Replace("IsMachineTarget=", string.Empty).Equals("1"),
                    });
                    break;

                case 12:

                    if (_dt12 > DateTime.Now)
                    {
                        return;
                    }

                    _dt12 = DateTime.Now.AddMinutes(4);

                    OnNewUpdate?.Invoke(this, new NewUpdateEventArg {
                        ActionId = eventObject["ActionType"].IntegralValue
                    });
                    break;

                case 21:
                case 28:

                    if (_dt21 > DateTime.Now || _isEvaluation)
                    {
                        return;
                    }

                    _isEvaluation = true;

                    if (!string.IsNullOrEmpty(eventObject["TargetInstancePath"].StringValue))
                    {
                        var app = CcmUtils.GetSpecificApp(new ScheduledObject
                        {
                            ObjectId = targetparts[0].Replace("CCM_Application.Id=", string.Empty).Replace("\"", string.Empty),
                            Revision = targetparts[1].Replace("Revision=", string.Empty).Replace("\"", string.Empty),
                        });

                        if (app != null)
                        {
                            if (app.Deadline > DateTime.Now.AddMinutes(30))
                            {
                                _dt21 = DateTime.Now.AddMinutes(4);
                                OnNewApplication?.Invoke(this, new NewApplicationEventArg {
                                    ActionId = eventObject["ActionType"].IntegralValue
                                });
                            }
                        }
                    }

                    _isEvaluation = false;
                    break;
                }

                eventObject.Dispose();
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message);
            }
        }
Пример #3
0
 public void Initialize()
 {
     Status = WindowsService.GetServiceStatus(OpenALPRMilestoneService);
     OnStatusChange?.Invoke(this, new EventArgs());
 }
Пример #4
0
 private void PollAndUpdate()
 {
     Estate = new Estate(gocdService.GetPipelines());
     OnStatusChange?.Invoke();
 }
Пример #5
0
 /// <summary>
 /// Remove status condition.
 /// </summary>
 public void RemoveStatus()
 {
     Status = null;
     OnStatusChange?.Invoke();
 }
Пример #6
0
 private void TriggerStatusChange()
 {
     OnStatusChange?.Invoke(this);
 }