using TINK.Model.Connector; using System; namespace TINK.Services.BluetoothLock.Tdo { /// Data required to connect to a blutooth lock. public class LockInfoAuthTdo { /// Identification number of bluetooth lock, 6-digits, second part of advertisement name. public int Id { get; private set; } /// GUID to the device. public Guid Guid { get; private set; } /// Seed used to generate key for connecting to bluetooth lock. public byte[] K_seed { get; private set; } /// Key for connect to bluetooth lock as user. public byte[] K_u { get; private set; } /// Key for connect to bluetooth lock as admin. public byte[] K_a { get; private set; } public bool IsIdValid => Id != TextToLockItTypeHelper.INVALIDLOCKID; public bool IsGuidValid => Guid != TextToLockItTypeHelper.INVALIDLOCKGUID; public class Builder { private LockInfoAuthTdo lockInfoTdo = new LockInfoAuthTdo(); public Builder() { } /// Identification number of bluetooth lock, 6-digits, second part of advertisement name. public int Id { get => lockInfoTdo.Id; set { lockInfoTdo.Id = value; } } /// GUID to the device. public Guid Guid { get => lockInfoTdo.Guid; set { lockInfoTdo.Guid = value; } } /// Seed used to generate key for connecting to bluetooth lock. public byte[] K_seed { get => lockInfoTdo.K_seed; set { lockInfoTdo.K_seed = value; } } /// Key for connect to bluetooth lock as user. public byte[] K_u { get => lockInfoTdo.K_u; set { lockInfoTdo.K_u = value; } } /// Key for connect to bluetooth lock as admin. public byte[] K_a { get => lockInfoTdo.K_a; set { lockInfoTdo.K_a = value; } } public LockInfoAuthTdo Build() { if (K_seed == null) K_seed = new byte[0]; if (K_u == null) K_u = new byte[0]; if (K_a == null) K_a = new byte[0]; return lockInfoTdo; } } } }