/// <summary> /// Create new device from the device template. /// </summary> /// <param name="request"></param> /// <returns></returns> public GXCreateDeviceResponse Get(GXCreateDeviceRequest request) { lock (Db) { //Create devices from the device templates. List <GXAmiDevice> devices = new List <GXAmiDevice>(); foreach (ulong id in request.Ids) { List <GXAmiDeviceProfile> tmp = Db.Select <GXAmiDeviceProfile>(q => q.Id == id); if (tmp.Count != 1) { throw new ArgumentException("Access denied."); } GXAmiDevice dev = tmp[0] as GXAmiDevice; dev.Guid = Guid.NewGuid(); dev.Id = 0; dev.ProfileId = id; List <GXAmiParameterTemplate> list = Db.Select <GXAmiParameterTemplate>(q => q.ParentID == id << 16); dev.Parameters = list.ConvertAll <GXAmiParameter>(new Converter <GXAmiParameterTemplate, GXAmiParameter>(p => p.ToParameter())).ToArray(); devices.Add(dev); } return(new GXCreateDeviceResponse(devices.ToArray())); } }
/// <summary> /// Create new device from the device template. /// </summary> /// <param name="request"></param> /// <returns></returns> public GXCreateDeviceResponse Get(GXCreateDeviceRequest request) { lock (Db) { //Create devices from the device templates. List<GXAmiDevice> devices = new List<GXAmiDevice>(); foreach (ulong id in request.Ids) { List<GXAmiDeviceProfile> tmp = Db.Select<GXAmiDeviceProfile>(q => q.Id == id); if (tmp.Count != 1) { throw new ArgumentException("Access denied."); } GXAmiDevice dev = tmp[0] as GXAmiDevice; dev.Guid = Guid.NewGuid(); dev.Id = 0; dev.ProfileId = id; List<GXAmiParameterTemplate> list = Db.Select<GXAmiParameterTemplate>(q => q.ParentID == id << 16); dev.Parameters = list.ConvertAll<GXAmiParameter>(new Converter<GXAmiParameterTemplate, GXAmiParameter>(p => p.ToParameter())).ToArray(); devices.Add(dev); } return new GXCreateDeviceResponse(devices.ToArray()); } }