/// <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(); }
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; }
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); } }
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); } } }
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(); } }