Esempio n. 1
0
        /// <summary>
        /// DC notifies from new error.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public GXErrorUpdateResponse Post(GXErrorUpdateRequest request)
        {
            List <GXEventsItem> events = new List <GXEventsItem>();

            lock (Db)
            {
                GXAmiDeviceError err = new GXAmiDeviceError();
                err.TaskID         = request.TaskID;
                err.TargetDeviceID = request.DeviceID;
                err.TimeStamp      = DateTime.Now;
                err.Message        = request.Message;
                err.Source         = request.Source;
                int len = request.StackTrace.Length;
                if (len > 255)
                {
                    len = 255;
                }
                err.StackTrace = request.StackTrace.Substring(0, len);
                err.Severity   = request.Severity;
                events.Add(new GXEventsItem(ActionTargets.DeviceError, Actions.Add, err));
                using (var trans = Db.OpenTransaction(IsolationLevel.ReadCommitted))
                {
                    Db.Insert(err);
                    trans.Commit();
                }
            }
            AppHost host = this.ResolveService <AppHost>();

            host.SetEvents(Db, this.Request, 0, events);
            return(new GXErrorUpdateResponse());
        }
        /// <summary>
        /// DC notifies from new error.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
		public GXErrorUpdateResponse Post(GXErrorUpdateRequest request)
		{
            List<GXEventsItem> events = new List<GXEventsItem>();
            lock (Db)
            {
                GXAmiDeviceError err = new GXAmiDeviceError();
                err.TaskID = request.TaskID;
                err.TargetDeviceID = request.DeviceID;
                err.TimeStamp = DateTime.Now;
                err.Message = request.Message;
                err.Source = request.Source;
                int len = request.StackTrace.Length;
                if (len > 255)
                {
                    len = 255;
                }
                err.StackTrace = request.StackTrace.Substring(0, len);
                err.Severity = request.Severity;
                events.Add(new GXEventsItem(ActionTargets.DeviceError, Actions.Add, err));
                using (var trans = Db.OpenTransaction(IsolationLevel.ReadCommitted))
                {
                    Db.Insert(err);
                    trans.Commit();
                }
            }
            AppHost host = this.ResolveService<AppHost>();
            host.SetEvents(Db, this.Request, 0, events);
            return new GXErrorUpdateResponse();
        }
Esempio n. 3
0
        void HandleDeviceErrors(IDbConnection Db, GXAmiDeviceError error, GXEventsItem e)
        {
            ulong mask = (ulong)((int)e.Target << 16 | (int)e.Action);

            //Find is anyone interested from this data collector event.
            lock (Db)
            {
                foreach (GXSession it in Sessions)
                {
                    foreach (GXEvent e1 in it.NotifyClients)
                    {
                        if (e1.UserID != 0 && (mask & e1.Mask) != 0)
                        {
                            //Notify only super admin or if user has access to this data collector.
                            if (e1.SuperAdmin || GXDeviceService.CanUserAccessDevice(Db, e1.UserID, error.TargetDeviceID.Value))
                            {
                                e1.Rows.Add(e);
                                it.Received.Set();
                            }
                        }
                    }
                }
            }
        }
		public GXErrorsResponse(GXAmiDeviceError[] errors)
		{
			this.DeviceErrors = errors;
		}
Esempio n. 5
0
 void Client_OnDeviceErrorsAdded(object sender, GXAmiDeviceError[] errors)
 {
     // Update UI if window has created.
     if (this.InvokeRequired)
     {
         this.BeginInvoke(new DeviceErrorsAddedEventHandler(OnDeviceErrorsAdded), sender, errors);
     }
     else
     {
         OnDeviceErrorsAdded(sender, errors);
     }
 }
Esempio n. 6
0
        void OnDeviceErrorsAdded(object sender, GXAmiDeviceError[] errors)
        {
            //If pause is checked or component has destroied.
            if (this.IsDisposed || EventPauseMenu.Checked)
            {
                return;
            }
            /*
			//If information messages are not shown...
			if (severity == -2 && !m_ShowInformationMessages)
			{
				return;
			}
             * */

            //string errorInfo = ex.Message.Replace("\n", " ");
            foreach (GXAmiDeviceError err in errors)
            {
                //Remove first item if maximum item count is reached.
                if (Gurux.DeviceSuite.Properties.Settings.Default.ErrorMaximumCount > 0 &&
                    EventsList.Items.Count == Gurux.DeviceSuite.Properties.Settings.Default.ErrorMaximumCount)
                {
                    EventsList.Items[0].Remove();
                }
                string name = "";
                if (err.TargetDeviceID != null)
                {
                    GuruxAMI.Common.GXAmiDevice device = Client.GetDevice(err.TargetDeviceID.Value);
                    name = device.Name;
                }
                ListViewItem it = new ListViewItem(new string[]{err.TimeStamp.ToString(), name, err.Message});
                EventsList.Items.Add(it);
                if (EventFollowLast)
                {
                    EventsList.EnsureVisible(it.Index);
                }
            }
        }
Esempio n. 7
0
 void Client_OnDeviceErrorsRemoved(object sender, GXAmiDeviceError[] errors)
 {
     throw new NotImplementedException();
 }
 void Client_OnDeviceErrorsAdded(object sender, GXAmiDeviceError[] errors)
 {
     if (ParentDlg.InvokeRequired)
     {
         this.BeginInvoke(new DeviceErrorsAddedEventHandler(Client_OnDeviceErrorsAdded), sender, errors);
     }
     else 
     {
         Client_OnDeviceErrorsAdded(sender, errors);
     }
 }
 /// <summary>
 /// Show occurred errors on command prompth.
 /// </summary>
 void OnDeviceErrorsAdded(object sender, GXAmiDeviceError[] errors)
 {
     foreach (GXAmiDeviceError it in errors)
     {
         CommandPromptTB.AppendText(it.Message + Environment.NewLine);
         CommandPromptTB.SelectionStart = CommandPromptTB.Text.Length;
         CommandPromptTB.ScrollToCaret();
     }
 }