/// <summary> /// Unregisters a device. /// </summary> /// <param name="account"></param> /// <param name="device"></param> /// <returns></returns> public IDeviceRegistrationResult UnRegisterDevice(IAccount account, IDevice device) { IDeviceRegistrationResult result = null; if (account != null) { //Validate that the account actually exists. if (!(_accountService.GetItem(account.AccountId) is AccountSuccessResult)) { result = new DeviceRegistrationFailureResult(); result.AddData(new List <string> { "Account does not exist." }); } else { var deleteResult = _deviceRepository.DeleteItem(device); if (deleteResult is DeviceRegistrationSuccessResult) { result = new DeviceRegistrationSuccessResult() { Item = device }; } else { result = new DeviceRegistrationFailureResult() { Data = deleteResult.Data }; } } } return(result); }
/// <summary> /// Registers a new device (or re-registers an existing device). /// </summary> /// <param name="account"></param> /// <param name="device"></param> /// <returns></returns> public IDeviceRegistrationResult RegisterDevice(IAccount account, IDevice device) { IDeviceRegistrationResult result = null; if (account != null) { //Validate that the account actually exists. if (!(_accountService.GetItem(account.AccountId) is AccountSuccessResult)) { result = new DeviceRegistrationFailureResult(); result.AddData(new List <string> { "Account does not exist." }); } else { //Validate the device. var deviceValidationResult = ValidateDevice(device); if (ValidateDevice(device) is DeviceFailureResult) { result = new DeviceRegistrationFailureResult { Item = device, Data = deviceValidationResult.Data }; } else { //Check to see if a device with the same MAC Address is already registered. if (_deviceRepository.DeviceWithMACAddressExists(device.MACAddress)) { result = new DeviceRegistrationFailureResult(); result.AddData(new List <string> { "A device with the same MAC address is already registered." }); } else { device.AccountId = account.AccountId; var createResult = _deviceRepository.CreateItem(device); if (createResult is DeviceRegistrationSuccessResult) { result = new DeviceRegistrationSuccessResult() { Item = device }; } else { result = new DeviceRegistrationFailureResult() { Data = createResult.Data }; } } } } } return(result); }