Exemple #1
0
        /// <summary>
        /// Update new device state.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public GXDeviceStateUpdateResponse Put(GXDeviceStateUpdateRequest request)
        {
            List <GXEventsItem> events = new List <GXEventsItem>();

            lock (Db)
            {
                foreach (var it in request.States)
                {
#if !SS4
                    GXAmiDevice device = Db.GetById <GXAmiDevice>(it.Key);
#else
                    GXAmiDevice device = Db.SingleById <GXAmiDevice>(it.Key);
#endif
                    device.State = it.Value;
                    Db.UpdateOnly(device, p => p.StatesAsInt, p => p.Id == it.Key);
                    events.Add(new GXEventsItem(ActionTargets.Device, Actions.State, device));
                }
            }
            AppHost host = this.ResolveService <AppHost>();
            host.SetEvents(Db, this.Request, 0, events);
            return(new GXDeviceStateUpdateResponse());
        }
        /// <summary>
        /// Update new device state.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public GXDeviceStateUpdateResponse Put(GXDeviceStateUpdateRequest request)
        {
            List<GXEventsItem> events = new List<GXEventsItem>();
            lock (Db)
            {
                foreach (var it in request.States)
                {
#if !SS4
                    GXAmiDevice device = Db.GetById<GXAmiDevice>(it.Key);
#else
                    GXAmiDevice device = Db.SingleById<GXAmiDevice>(it.Key);
#endif                                                                            
                    device.State = it.Value;
                    Db.UpdateOnly(device, p => p.StatesAsInt, p => p.Id == it.Key);
                    events.Add(new GXEventsItem(ActionTargets.Device, Actions.State, device));
                }
            }
            AppHost host = this.ResolveService<AppHost>();
            host.SetEvents(Db, this.Request, 0, events);
            return new GXDeviceStateUpdateResponse();
        }