/// <summary> /// Updates device authorization, searching by user code. /// </summary> /// <param name="userCode">The user code.</param> /// <param name="data">The data.</param> /// <returns></returns> public Task UpdateByUserCodeAsync(string userCode, DeviceCode data) { var existing = DeviceCodes.FindByUserCode(userCode); if (existing == null) { _logger.LogError("{userCode} not found in database", userCode); throw new InvalidOperationException("Could not update device code"); } var entity = ToEntity(data, existing.DeviceCode, userCode); _logger.LogDebug("{userCode} found in database", userCode); existing.SubjectId = data.Subject?.FindFirst(JwtClaimTypes.Subject).Value; existing.Data = entity.Data; try { existing.Save(); } catch (Exception ex) { _logger.LogWarning("exception updating {userCode} user code in database: {error}", userCode, ex.Message); } return(Task.FromResult(0)); }
/// <summary> /// Finds device authorization by user code. /// </summary> /// <param name="userCode">The user code.</param> /// <returns></returns> public Task <DeviceCode> FindByUserCodeAsync(string userCode) { var deviceFlowCodes = DeviceCodes.FindByUserCode(userCode); var model = ToModel(deviceFlowCodes?.Data); _logger.LogDebug("{userCode} found in database: {userCodeFound}", userCode, model != null); return(Task.FromResult(model)); }