Selaa lähdekoodia

## 0.0.7.0

- extends IError/Error add AsCodeException
- extends Result add ThrowIfError, ToAggregateException
Dalibor Votruba 1 vuosi sitten
vanhempi
commit
b9f3173725

+ 6 - 0
qdr.fnd.core/Data/Error.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Text;
 using Quadarax.Foundation.Core.Exceptions;
+using static System.Runtime.InteropServices.JavaScript.JSType;
 
 namespace Quadarax.Foundation.Core.Data
 {
@@ -44,6 +45,11 @@ namespace Quadarax.Foundation.Core.Data
             return sb.ToString();
         }
 
+        public CodeException AsCodeException()
+        {
+            return new CodeException(Code, Message);
+        }
+
         #endregion
     }
 }

+ 5 - 1
qdr.fnd.core/Data/IError.cs

@@ -1,4 +1,5 @@
-using System;
+using Quadarax.Foundation.Core.Exceptions;
+using System;
 
 namespace Quadarax.Foundation.Core.Data
 {
@@ -25,6 +26,9 @@ namespace Quadarax.Foundation.Core.Data
         /// Timestamp of the error
         /// </summary>
         public DateTime Timestamp { get; }
+
+
+        CodeException AsCodeException();    
     }
 
     /// <summary>

+ 23 - 0
qdr.fnd.core/Data/Result.cs

@@ -1,5 +1,7 @@
 using System;
 using System.Collections.Generic;
+using Quadarax.Foundation.Core.Exceptions;
+using System.Linq;
 using Quadarax.Foundation.Core.Value.Extensions;
 
 namespace Quadarax.Foundation.Core.Data
@@ -55,6 +57,27 @@ namespace Quadarax.Foundation.Core.Data
         {
             return null;
         }
+
+        public void ThrowIfError()
+        {
+            if (IsSuccess) return;
+
+            throw new AggregateException(Errors.Select(e => e.AsCodeException()));
+
+        }
+
+        public AggregateException? ToAggregateException()
+        {
+            if (IsSuccess)
+                return null;
+            var errors = new List<CodeException>();
+            foreach (var e in Errors)
+            {
+                errors.Add(e.AsCodeException());
+            }
+            return new AggregateException(errors);
+        }
+
         #endregion
     }
 }

+ 6 - 6
qdr.fnd.core/qdr.fnd.core.csproj

@@ -15,12 +15,12 @@
     <Copyright>Copyright © 2023,2024,2025 Quadarax</Copyright>
     <PackageIcon>quadarax_dll.png</PackageIcon>
     <PackageTags>QDR;FND;CORE</PackageTags>
-    <AssemblyVersion>0.0.6.0</AssemblyVersion>
-    <FileVersion>0.0.6.0</FileVersion>
-    <Version>0.0.6.0-alpha</Version>
-    <PackageReleaseNotes>Date:7.1.2025
-		- update to .NET 9.0
-		- update dependencies packages (System.IO.Abstractions)
+    <AssemblyVersion>0.0.7.0</AssemblyVersion>
+    <FileVersion>0.0.7.0</FileVersion>
+    <Version>0.0.7.0-alpha</Version>
+    <PackageReleaseNotes>Date:13.1.2025
+		- extends IError/Error add AsCodeException
+		- extends Result add ThrowIfError, ToAggregateException
     </PackageReleaseNotes>
     <PackageReadmeFile>releasenotes.md</PackageReadmeFile>
     <Nullable>enable</Nullable>

+ 6 - 0
qdr.fnd.core/releasenotes.md

@@ -1,6 +1,12 @@
 # Quadarax.Foundation.Core * Release notes
 Ordered by version descending
 
+## 0.0.7.0
+Date:__13.1.2025__
+- extends IError/Error add AsCodeException
+- extends Result add ThrowIfError, ToAggregateException
+---
+
 ## 0.0.6.0
 Date:__7.1.2025__
 - update to .NET 9.0