예제 #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());
        }
예제 #2
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();
        }