@@ -5,34 +5,54 @@ namespace EasyWay
55 public sealed class QueryResult < TReadModel >
66 where TReadModel : ReadModel
77 {
8- internal TReadModel ReadModel { get ; }
8+ internal TReadModel ? ReadModel { get ; }
99
1010 internal QueryErrorEnum Error { get ; }
1111
1212 internal IDictionary < string , string [ ] > ValidationErrors ;
1313
14+ internal Exception ? Exception { get ; }
15+
1416 private QueryResult ( TReadModel readModel )
1517 {
1618 ReadModel = readModel ;
19+ ValidationErrors = new Dictionary < string , string [ ] > ( ) ;
1720 Error = QueryErrorEnum . None ;
21+ Exception = null ;
1822 }
1923
2024 private QueryResult ( QueryErrorEnum queryError )
2125 {
2226 ReadModel = null ;
27+ ValidationErrors = new Dictionary < string , string [ ] > ( ) ;
2328 Error = queryError ;
29+ Exception = null ;
2430 }
2531
2632 private QueryResult ( IDictionary < string , string [ ] > validationErrors )
2733 {
34+ ReadModel = null ;
2835 ValidationErrors = validationErrors ;
2936 Error = QueryErrorEnum . Validation ;
37+ Exception = null ;
3038 }
3139
32- public static QueryResult < TReadModel > Ok ( TReadModel readModel ) => new QueryResult < TReadModel > ( readModel ) ;
40+ private QueryResult ( Exception exception )
41+ {
42+ ReadModel = null ;
43+ ValidationErrors = new Dictionary < string , string [ ] > ( ) ;
44+ Error = QueryErrorEnum . UnknownException ;
45+ Exception = exception ;
46+ }
3347
3448 internal static QueryResult < TReadModel > Validation ( IDictionary < string , string [ ] > validationErrors ) => new QueryResult < TReadModel > ( validationErrors ) ;
3549
50+ internal static QueryResult < TReadModel > OperationCanceled ( ) => new QueryResult < TReadModel > ( QueryErrorEnum . OperationCanceled ) ;
51+
52+ internal static QueryResult < TReadModel > UnknownException ( Exception exception ) => new QueryResult < TReadModel > ( exception ) ;
53+
54+ public static QueryResult < TReadModel > Ok ( TReadModel readModel ) => new QueryResult < TReadModel > ( readModel ) ;
55+
3656 public static QueryResult < TReadModel > NotFound => new QueryResult < TReadModel > ( QueryErrorEnum . NotFound ) ;
3757
3858 public static QueryResult < TReadModel > Forbidden => new QueryResult < TReadModel > ( QueryErrorEnum . Forbidden ) ;
0 commit comments