/// <summary> /// Stop listen events. /// </summary> /// <param name="request"></param> /// <returns></returns> public GXEventsUnregisterResponse Put(GXEventsUnregisterRequest request) { if (request.Instance.Equals(Guid.Empty)) { throw new Exception("Guid is empty."); } Guid guid = Guid.Empty; IAuthSession s = this.GetSession(false); long id; if (!long.TryParse(s.Id, out id)) { if (!GXBasicAuthProvider.IsGuid(s.UserAuthName, out guid)) { throw new ArgumentException("Access denied."); } } AppHost host = this.ResolveService<AppHost>(); host.RemoveEvent(request.Instance, request.DataCollectorGuid); if (guid != Guid.Empty) { //Notify that DC is disconnected. List<GXEventsItem> events = new List<GXEventsItem>(); lock (Db) { GXAmiDataCollector dc = Db.Select<GXAmiDataCollector>(q => q.Guid == guid)[0]; dc.State = Gurux.Device.DeviceStates.None; Db.UpdateOnly(dc, p => p.StatesAsInt, p => p.Id == dc.Id); events.Add(new GXEventsItem(ActionTargets.DataCollector, Actions.State, dc)); } host.SetEvents(Db, this.Request, 0, events); } return new GXEventsUnregisterResponse(); }
/// <summary> /// Stop listen events. /// </summary> /// <param name="request"></param> /// <returns></returns> public GXEventsUnregisterResponse Put(GXEventsUnregisterRequest request) { if (request.Instance.Equals(Guid.Empty)) { throw new Exception("Guid is empty."); } Guid guid = Guid.Empty; IAuthSession s = this.GetSession(false); long id; if (!long.TryParse(s.Id, out id)) { if (!GXBasicAuthProvider.IsGuid(s.UserAuthName, out guid)) { throw new ArgumentException("Access denied."); } } AppHost host = this.ResolveService <AppHost>(); host.RemoveEvent(request.Instance, request.DataCollectorGuid); if (guid != Guid.Empty) { //Notify that DC is disconnected. List <GXEventsItem> events = new List <GXEventsItem>(); lock (Db) { GXAmiDataCollector dc = Db.Select <GXAmiDataCollector>(q => q.Guid == guid)[0]; dc.State = Gurux.Device.DeviceStates.None; Db.UpdateOnly(dc, p => p.StatesAsInt, p => p.Id == dc.Id); events.Add(new GXEventsItem(ActionTargets.DataCollector, Actions.State, dc)); } host.SetEvents(Db, this.Request, 0, events); } return(new GXEventsUnregisterResponse()); }