|
6 | 6 | using LibraryManagement.Api.Brokers.Loggings; |
7 | 7 | using LibraryManagement.Api.Brokers.Storages; |
8 | 8 | using LibraryManagement.Api.Models.Foundations.Readers; |
9 | | -using LibraryManagement.Api.Models.Foundations.Readers.Exceptions; |
10 | | -using Microsoft.Data.SqlClient; |
11 | | -using Microsoft.EntityFrameworkCore; |
12 | 9 |
|
13 | 10 | namespace LibraryManagement.Api.Services.Foundations.Readers |
14 | 11 | { |
@@ -49,94 +46,17 @@ public ValueTask<Reader> RetrieveReaderByIdAsync(Guid readerId) => |
49 | 46 | return maybeReader; |
50 | 47 | }); |
51 | 48 |
|
52 | | - public async ValueTask<Reader> ModifyReaderAsync(Reader reader) |
| 49 | + public ValueTask<Reader> ModifyReaderAsync(Reader reader) => |
| 50 | + TryCatch(async () => |
53 | 51 | { |
54 | | - try |
55 | | - { |
56 | | - ValidateReaderOnModify(reader); |
57 | | - |
58 | | - Reader maybeReader = |
59 | | - await this.storageBroker.SelectReaderByIdAsync(reader.ReaderId); |
60 | | - |
61 | | - ValidateAgainstStorageReaderOnModify(reader, maybeReader); |
62 | | - |
63 | | - return await this.storageBroker.UpdateReaderAsync(reader); |
64 | | - } |
65 | | - catch (NullReaderException nullReaderException) |
66 | | - { |
67 | | - var readerValidationException = |
68 | | - new ReaderValidationException(nullReaderException); |
69 | | - |
70 | | - this.loggingBroker.LogError(readerValidationException); |
71 | | - |
72 | | - throw readerValidationException; |
73 | | - } |
74 | | - catch (InvalidReaderException invalidReaderException) |
75 | | - { |
76 | | - var readerValidationException = |
77 | | - new ReaderValidationException(invalidReaderException); |
78 | | - |
79 | | - this.loggingBroker.LogError(readerValidationException); |
80 | | - |
81 | | - throw readerValidationException; |
82 | | - } |
83 | | - catch (NotFoundReaderException notFoundReaderException) |
84 | | - { |
85 | | - var readerValidationException = |
86 | | - new ReaderValidationException(notFoundReaderException); |
87 | | - |
88 | | - this.loggingBroker.LogError(readerValidationException); |
89 | | - |
90 | | - throw readerValidationException; |
91 | | - } |
92 | | - catch (SqlException sqlException) |
93 | | - { |
94 | | - var failedReaderStorageException = |
95 | | - new FailedReaderStorageException(sqlException); |
96 | | - |
97 | | - var readerDependencyException = |
98 | | - new ReaderDependencyException(failedReaderStorageException); |
| 52 | + ValidateReaderOnModify(reader); |
99 | 53 |
|
100 | | - this.loggingBroker.LogCritical(readerDependencyException); |
101 | | - |
102 | | - throw readerDependencyException; |
103 | | - } |
104 | | - catch (DbUpdateConcurrencyException dbUpdateConcurrencyException) |
105 | | - { |
106 | | - var lockedReaderException = |
107 | | - new LockedReaderException(dbUpdateConcurrencyException); |
108 | | - |
109 | | - var readerDependencyValidationException = |
110 | | - new ReaderDependencyValidationException(lockedReaderException); |
111 | | - |
112 | | - this.loggingBroker.LogError(readerDependencyValidationException); |
113 | | - |
114 | | - throw readerDependencyValidationException; |
115 | | - } |
116 | | - catch (DbUpdateException dbUpdateException) |
117 | | - { |
118 | | - var failedReaderStorageException = |
119 | | - new FailedReaderStorageException(dbUpdateException); |
120 | | - |
121 | | - var readerDependencyException = |
122 | | - new ReaderDependencyException(failedReaderStorageException); |
123 | | - |
124 | | - this.loggingBroker.LogError(readerDependencyException); |
125 | | - |
126 | | - throw readerDependencyException; |
127 | | - } |
128 | | - catch (Exception exception) |
129 | | - { |
130 | | - var failedReaderServiceException = |
131 | | - new FailedReaderServiceException(exception); |
132 | | - |
133 | | - var readerServiceException = |
134 | | - new ReaderServiceException(failedReaderServiceException); |
| 54 | + Reader maybeReader = |
| 55 | + await this.storageBroker.SelectReaderByIdAsync(reader.ReaderId); |
135 | 56 |
|
136 | | - this.loggingBroker.LogError(readerServiceException); |
| 57 | + ValidateAgainstStorageReaderOnModify(reader, maybeReader); |
137 | 58 |
|
138 | | - throw readerServiceException; |
139 | | - } |
140 | | - } |
| 59 | + return await this.storageBroker.UpdateReaderAsync(reader); |
| 60 | + }); |
141 | 61 | } |
142 | 62 | } |
0 commit comments