Skip to content

Commit 63645f7

Browse files
CODE RUB: Implement TryCatch for RetrieveReaderByIdAsync
1 parent 9c7ea26 commit 63645f7

File tree

2 files changed

+12
-54
lines changed

2 files changed

+12
-54
lines changed

LibraryManagement.Api/Services/Foundations/Readers/ReaderService.Exceptions.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ private async ValueTask<Reader> TryCatch(ReturningReaderFunction returningReader
3030
{
3131
throw CreateAndLogValidationException(invalidReaderException);
3232
}
33+
catch (NotFoundReaderException notFoundReaderException)
34+
{
35+
throw CreateAndLogValidationException(notFoundReaderException);
36+
}
3337
catch (SqlException sqlException)
3438
{
3539
var failedReaderStorageException =

LibraryManagement.Api/Services/Foundations/Readers/ReaderService.cs

Lines changed: 8 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
using LibraryManagement.Api.Brokers.Loggings;
77
using LibraryManagement.Api.Brokers.Storages;
88
using LibraryManagement.Api.Models.Foundations.Readers;
9-
using LibraryManagement.Api.Models.Foundations.Readers.Exceptions;
10-
using Microsoft.Data.SqlClient;
119

1210
namespace LibraryManagement.Api.Services.Foundations.Readers
1311
{
@@ -35,61 +33,17 @@ public ValueTask<Reader> AddReaderAsync(Reader reader) =>
3533
public IQueryable<Reader> RetrieveAllReaders() =>
3634
TryCatch(() => this.storageBroker.SelectAllReaders());
3735

38-
public async ValueTask<Reader> RetrieveReaderByIdAsync(Guid readerId)
36+
public ValueTask<Reader> RetrieveReaderByIdAsync(Guid readerId) =>
37+
TryCatch(async () =>
3938
{
40-
try
41-
{
42-
ValidateReaderId(readerId);
43-
44-
Reader maybeReader =
45-
await this.storageBroker.SelectReaderByIdAsync(readerId);
46-
47-
ValidateStorageReader(maybeReader, readerId);
48-
49-
return maybeReader;
50-
}
51-
catch (InvalidReaderException invalidReaderException)
52-
{
53-
var readerValidationException =
54-
new ReaderValidationException(invalidReaderException);
55-
56-
this.loggingBroker.LogError(readerValidationException);
57-
58-
throw readerValidationException;
59-
}
60-
catch (NotFoundReaderException notFoundReaderException)
61-
{
62-
var readerValidationException =
63-
new ReaderValidationException(notFoundReaderException);
64-
65-
this.loggingBroker.LogError(readerValidationException);
39+
ValidateReaderId(readerId);
6640

67-
throw readerValidationException;
68-
}
69-
catch (SqlException sqlException)
70-
{
71-
var failedReaderStorageException =
72-
new FailedReaderStorageException(sqlException);
41+
Reader maybeReader =
42+
await this.storageBroker.SelectReaderByIdAsync(readerId);
7343

74-
var readerDependencyException =
75-
new ReaderDependencyException(failedReaderStorageException);
44+
ValidateStorageReader(maybeReader, readerId);
7645

77-
this.loggingBroker.LogCritical(readerDependencyException);
78-
79-
throw readerDependencyException;
80-
}
81-
catch (Exception exception)
82-
{
83-
var failedReaderServiceException =
84-
new FailedReaderServiceException(exception);
85-
86-
var readerServiceException =
87-
new ReaderServiceException(failedReaderServiceException);
88-
89-
this.loggingBroker.LogError(readerServiceException);
90-
91-
throw readerServiceException;
92-
}
93-
}
46+
return maybeReader;
47+
});
9448
}
9549
}

0 commit comments

Comments
 (0)