From 44eea3195703506ed173f4aa648961edd31514e9 Mon Sep 17 00:00:00 2001 From: Eduard Keilholz Date: Fri, 16 Feb 2024 14:59:00 +0100 Subject: [PATCH] Catching a user not found exception --- src/Wam.Users/Repositories/UsersRepository.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/Wam.Users/Repositories/UsersRepository.cs b/src/Wam.Users/Repositories/UsersRepository.cs index de6bb50..30d931e 100644 --- a/src/Wam.Users/Repositories/UsersRepository.cs +++ b/src/Wam.Users/Repositories/UsersRepository.cs @@ -1,4 +1,5 @@ -using Azure.Data.Tables; +using Azure; +using Azure.Data.Tables; using HexMaster.RedisCache.Abstractions; using Microsoft.Extensions.Options; using Wam.Core.Configuration; @@ -46,14 +47,20 @@ public async Task Get(Guid userId, CancellationToken cancellationToken) private async Task GetFromTableStorage(Guid userId, CancellationToken cancellationToken) { - var cloudResponse = await _tableClient.GetEntityAsync(PartitionKey, userId.ToString(), - cancellationToken: cancellationToken); + try + { + var cloudResponse = await _tableClient.GetEntityAsync(PartitionKey, userId.ToString(), + cancellationToken: cancellationToken); - if (cloudResponse.HasValue) + if (cloudResponse.HasValue) + { + return cloudResponse.Value; + } + } + catch (RequestFailedException ex) when (ex.Status == 404) { - return cloudResponse.Value; + throw new WamUserException(UserErrorCode.UserNotFound, $"The user with GUID {userId} could not be found"); } - throw new WamUserException(UserErrorCode.UserNotFound, $"The user with GUID {userId} could not be found"); }