public async Task <IActionResult> GetUserDeviceIds([FromRoute] string address) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (Client.WalletAddress.Decode58Check(address) == null) { return(NotFound()); } var user = await _context.GetUserAsync(address, users => users.Include(u => u.DeviceIds)); if (user == null || string.IsNullOrEmpty(user.PublicKey)) { return(NotFound()); } var publicKey = user.PublicKey.DecodeBase64(); var encrypter = new ECKey(); var deviceIds = user.DeviceIds.Select(deviceId => encrypter.Encrypt(deviceId.DeviceId.Select(c => (byte)c).ToArray(), publicKey).EncodeBase64()); return(Content(JsonConvert.SerializeObject(deviceIds, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore, DateTimeZoneHandling = DateTimeZoneHandling.Utc }))); }