Exemplo n.º 1
0
        public async Task <User> CreateUser(Consent consent, string?jobId, CancellationToken cancellationToken)
        {
            Ref[] devices;

            try
            {
                devices = await vendorClient.FetchDevices(consent.UserId, cancellationToken);
            }
            catch (H3Exception ex)
            {
                log.LogWarning("Ignoring exception {exception} when fetching devices for user {userId}", ex, consent.UserId);
                devices = Array.Empty <Ref>();
            }

            var connectedDevices    = new List <Ref>();
            var disconnectedDevices = new List <Ref>();
            var consentedDevices    = consent?.Devices;

            foreach (var device in devices)
            {
                if (consentedDevices != null && consentedDevices.Contains(device.Identifier))
                {
                    connectedDevices.Add(device);
                }
                else
                {
                    disconnectedDevices.Add(device);
                }
            }

            return(new User
            {
                ConnectedDevices = connectedDevices.ToArray(),
                DisconnectedDevices = disconnectedDevices.ToArray(),
                JobId = jobId,
            });
        }