public Device CreateWriteNfcTag(Device device = null, bool makeReadOnly = true) { var createdDevice = this.CreateNfcTag(device); if (createdDevice == null) throw new NullReferenceException("The device must not be null."); try { this.EncodeNfcTag(createdDevice, makeReadOnly); } catch (Exception ex) { if (createdDevice != null) this.PlatformClient.DeleteDevice(createdDevice.Id); throw ex; } return createdDevice; }
/// <summary> /// Searches the server for results matching the values set on the query. /// The query can be null to search for all Device documents. /// </summary> public TypedArray<Device> GetDevices(Device query) { return Request<Device>(query); }
public Device UpdateDevice(Device value) { //value.Validate(); return Request<Device>(value.Id, "PUT", value); }
public Device CreateDevice(Device value) { //value.Validate(); return Request<Device>(null, "POST", value); }
public Device CreateNfcTag(Device device = null) { if (device == null) device = new Device(); if (!string.IsNullOrWhiteSpace(device.Id)) throw new ArgumentException("The device must be a new device."); var nfcTag = this.GetNfcTag(); this.CheckForNfcTag(nfcTag); using (var ndef = NdefTechnology.Get(nfcTag)) { ndef.Connect(); var nfcTagUid = ndef.TagUIDString(); device.Uid = nfcTagUid; if (string.IsNullOrWhiteSpace(device.Identity)) device.Identity = nfcTagUid; device.DeviceType = DeviceType.Tag; device.TagType = TagType.Nfc; // tags can not have these properties device.Browser = null; device.Os = null; device.Hardware = new DeviceHardware() { Name = nfcTag.TagType.GetDescription() }; device = this.PlatformClient.CreateDevice(device); } return device; }
public PlatformNfcTag EncodeNfcTag(Device device, bool makeReadOnly = true) { var nfcTag = this.GetNfcTag(); this.CheckForNfcTag(nfcTag); var platformNfcTag = new PlatformNfcTag(); using (var ndef = NdefTechnology.Get(nfcTag)) { ndef.Connect(); if (!ndef.IsWritable) throw new ApplicationException("The nfc tag is not writable."); platformNfcTag.Uid = ndef.TagUIDString(); var nfcTagRecord = new NfcTagRecord(device); ndef.WriteNdefMessage(nfcTagRecord); platformNfcTag.Record = nfcTagRecord; if (makeReadOnly && ndef.CanMakeReadOnly) { ndef.MakeReadOnly(); platformNfcTag.ReadOnly = true; } else { platformNfcTag.ReadOnly = false; } } return platformNfcTag; }