private async Task ValidateDevice(dynamic device)
        {
            List<string> validationErrors = new List<string>();

            if (ValidateDeviceId(device, validationErrors)) 
            {
                await CheckIfDeviceExists(device, validationErrors);
            }

            if (validationErrors.Count > 0)
            {
                var validationException =
                    new ValidationException(DeviceSchemaHelper.GetDeviceProperties(device) != null ? DeviceSchemaHelper.GetDeviceID(device) : null);

                foreach (string error in validationErrors)
                {
                    validationException.Errors.Add(error);
                }

                throw validationException;
            }
        }
        private async Task ValidateDevice(DeviceModel device)
        {
            List<string> validationErrors = new List<string>();

            if (ValidateDeviceId(device, validationErrors)) 
            {
                await CheckIfDeviceExists(device, validationErrors);
            }

            if (validationErrors.Count > 0)
            {
                var validationException =
                    new ValidationException(device.DeviceProperties != null ? device.DeviceProperties.DeviceID : null);

                foreach (string error in validationErrors)
                {
                    validationException.Errors.Add(error);
                }

                throw validationException;
            }
        }