Procházet zdrojové kódy

## 0.0.5.0

- Generalize ResultDto from Result
- Generalize ErrorMessageDto from Error
- Add DtoExt extension method AsResult
- Update dependency to qdr.fnd.core.0.0.7.0-alpha
Dalibor Votruba před 1 rokem
rodič
revize
9a623c08da

+ 4 - 31
qdr.fnd.core.data.itfc/Entity/Dto/ErrorMessageDto.cs

@@ -1,45 +1,18 @@
 using Quadarax.Foundation.Core.Exceptions;
-using Quadarax.Foundation.Core.Data;
 using System;
 
 namespace Quadarax.Foundation.Core.Data.Interface.Entity.Dto
 {
-    public class ErrorMessageDto : IDto, IError
+    public class ErrorMessageDto : Error, IDto
     {
-        /// <summary>
-        /// <inheritdoc cref="IError.Message"/>
-        /// </summary>
-        public string Message { get; set; } = string.Empty;
-        /// <summary>
-        /// <inheritdoc cref="IError.Code"/>
-        /// </summary>
-        public int Code { get; set; }
+        public ErrorMessageDto() : base("Default message", 0, ErrorLevelEnum.Error) { }
 
-        public ErrorLevelEnum Level {get;set; }
-
-        public DateTime Timestamp {get;set; }
-
-        public ErrorMessageDto(){}
-        public ErrorMessageDto(Exception exception, int code)
+        public ErrorMessageDto(Exception exception, int code) : base(exception.Message, code, ErrorLevelEnum.Error)
         {
-            if (exception==null)
-                throw new ArgumentNullException(nameof(exception));
-
-            Message = exception.Message;
-            Code = code;
-            Timestamp = DateTime.Now;
-            Level = ErrorLevelEnum.Error;
         }
 
-        public ErrorMessageDto(CodeException exception)
+        public ErrorMessageDto(CodeException exception) : base(exception)
         {
-            if (exception==null)
-                throw new ArgumentNullException(nameof(exception));
-
-            Message = exception.Message;
-            Code = exception.GetCode();
-            Timestamp = DateTime.Now;
-            Level = ErrorLevelEnum.Error;
         }
     }
 }

+ 21 - 0
qdr.fnd.core.data.itfc/Entity/Dto/Extensions/DtoExt.cs

@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+
+namespace Quadarax.Foundation.Core.Data.Interface.Entity.Dto.Extensions
+{
+    public static class DtoExt
+    {
+        public static ResultValueDto<TDto> AsResult<TDto>(this TDto value) where TDto : IDto, new()
+        {
+            if (value == null)
+                throw new ArgumentNullException(nameof(value));
+            return new ResultValueDto<TDto>(value);
+        }
+        public static ResultsValueDto<TDto> AsResult<TDto>(this IEnumerable<TDto> values) where TDto : IDto
+        {
+            if (values == null)
+                throw new ArgumentNullException(nameof(values));
+            return new ResultsValueDto<TDto>(values);
+        }
+    }
+}

+ 11 - 42
qdr.fnd.core.data.itfc/Entity/Dto/ResultDto.cs

@@ -1,52 +1,21 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Quadarax.Foundation.Core.Exceptions;
+using System.Collections.Generic;
 
 namespace Quadarax.Foundation.Core.Data.Interface.Entity.Dto
 {
-    public abstract class ResultDto : IDto, IResult
+    public abstract class ResultDto : Result, IDto
     {
-        /// <summary>
-        /// <inheritdoc cref="IResult.IsSuccess"/>
-        /// </summary>
-        public bool IsSuccess => !Errors.Any();
-        /// <summary>
-        /// <inheritdoc cref="IResult.Errors"/>
-        /// </summary>
-        public IEnumerable<ErrorMessageDto> Errors { get; set; }
-        //public IEnumerable<IError> Errors { get; set; }
-
-        IEnumerable<IError> IResult.Errors => Errors;
 
+        protected ResultDto() : base() { }
+
+        public ResultDto(IEnumerable<IError> errors) : base(isSuccess: false, errors) { }
+
+        public ResultDto(bool isSuccess, IEnumerable<IError>? errors) : base(isSuccess, errors) { }
+
+
         /// <summary>
         /// <inheritdoc cref="IResult.GetValue()"/>
         /// </summary>
         /// <returns></returns>
-        public abstract object? GetValue();
-
-        protected ResultDto(IEnumerable<IError> errors)
-        {
-             Errors = new List<ErrorMessageDto>(errors.Select(x=>(ErrorMessageDto) x));
-            //Errors = new List<IError>(errors);
-        }
-        protected ResultDto()
-        {
-            Errors = new List<ErrorMessageDto>();
-        }
-        public AggregateException? ToAggregateException()
-        {
-            if (IsSuccess)
-                return null;
-            var errors = new List<Exception>();
-            foreach (var e in Errors)
-            {
-                var addExc = new Exception(e.Message);
-                addExc.SetCode(e.Code);
-                errors.Add(addExc);
-            }
-            return new AggregateException(errors);
-        }
-        
-    }
+        public new abstract object? GetValue();
+    }
 }

+ 3 - 3
qdr.fnd.core.data.itfc/Entity/Dto/ResultValueDto.cs

@@ -17,15 +17,15 @@ namespace Quadarax.Foundation.Core.Data.Interface.Entity.Dto
             Value = value;
         }
 
-        public ResultValueDto() : base(new List<IError>())
+        public ResultValueDto() : base()
         {
             Value = new TDto();
         }
-        public ResultValueDto(CodeException[] exceptions) : base(exceptions.Select(x => new ErrorMessageDto(x)))
+        public ResultValueDto(CodeException[] exceptions) : base(false, exceptions.Select(x => new ErrorMessageDto(x)))
         {
         }
 
-        public ResultValueDto(Exception exception) : base( new []{ exception is CodeException codeException ? new ErrorMessageDto(codeException) : new ErrorMessageDto(exception, -1)})
+        public ResultValueDto(Exception exception) : base(false, new []{ exception is CodeException codeException ? new ErrorMessageDto(codeException) : new ErrorMessageDto(exception, -1)})
         {
         }
 

+ 9 - 6
qdr.fnd.core.data.itfc/qdr.fnd.core.data.itfc.csproj

@@ -15,14 +15,17 @@
     <Copyright>Copyright © 2023, 2024. 2025 Quadarax</Copyright>
     <PackageIcon>quadarax_dll.png</PackageIcon>
     <PackageTags>QDR;FND;CORE;DATA;INTERFACE</PackageTags>
-    <AssemblyVersion>0.0.4.0</AssemblyVersion>
-    <FileVersion>0.0.4.0</FileVersion>
-    <Version>0.0.4.0-alpha</Version>
+    <AssemblyVersion>0.0.5.0</AssemblyVersion>
+    <FileVersion>0.0.5.0</FileVersion>
+    <Version>0.0.5.0-alpha</Version>
     <Nullable>enable</Nullable>
     <PackageReadmeFile>releasenotes.md</PackageReadmeFile>
     <PackageReleaseNotes>
-      Date:9.1.2025
-		- Remove IError, IResult from assembly, already defined in qdr.fnd.core
+      Date:13.1.2025
+		- Generalize ResultDto from Result
+		- Generalize ErrorMessageDto from Error
+		- Add DtoExt extension method AsResult
+		- Update dependency to qdr.fnd.core.0.0.7.0-alpha
     </PackageReleaseNotes>
   </PropertyGroup>
 
@@ -40,7 +43,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="qdr.fnd.core" Version="0.0.6-alpha" />
+    <PackageReference Include="qdr.fnd.core" Version="0.0.7-alpha" />
   </ItemGroup>
 
   <ItemGroup>

+ 0 - 53
qdr.fnd.core.data.itfc/qdr.fnd.core.data.itfc.csproj.Backup.tmp

@@ -1,53 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <TargetFramework>net9.0</TargetFramework>
-    <SignAssembly>true</SignAssembly>
-    <AssemblyOriginatorKeyFile>..\bo_strong_key_pair.snk</AssemblyOriginatorKeyFile>
-    <DelaySign>false</DelaySign>
-    <RootNamespace>Quadarax.Foundation.Core.Data.Interface</RootNamespace>
-    <ApplicationIcon>..\quadarax_dll.ico</ApplicationIcon>
-    <Title>Quadarax.Foundation.Core.Data.Interface</Title>
-    <Authors>Dalibor Votruba</Authors>
-    <Company>Quadarax</Company>
-    <Product>Quadarax.Foundation</Product>
-    <Description>Quadarax.Foundation.Core.Data.Interfaces - data interface layer foundation library</Description>
-    <Copyright>Copyright © 2023, 2024 Quadarax</Copyright>
-    <PackageIcon>quadarax_dll.png</PackageIcon>
-    <PackageTags>QDR;FND;CORE;DATA;INTERFACE</PackageTags>
-    <AssemblyVersion>0.0.2.0</AssemblyVersion>
-    <FileVersion>0.0.2.0</FileVersion>
-    <Version>0.0.2.0-alpha</Version>
-    <Nullable>enable</Nullable>
-    <PackageReadmeFile>releasenotes.md</PackageReadmeFile>
-    <PackageReleaseNotes>
-      Date:24.3.2024
-      - update dependencies packages (qdr.fnd.core)
-    </PackageReleaseNotes>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Content Include="releasenotes.md">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
-
-  <ItemGroup>
-    <None Include="..\quadarax_dll.png">
-      <Pack>True</Pack>
-      <PackagePath>\</PackagePath>
-    </None>
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="qdr.fnd.core" Version="0.0.6-alpha" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <None Update="releasenotes.md">
-      <Pack>True</Pack>
-      <PackagePath>\</PackagePath>
-    </None>
-  </ItemGroup>
-
-</Project>

+ 8 - 0
qdr.fnd.core.data.itfc/releasenotes.md

@@ -1,6 +1,14 @@
 # Quadarax.Foundation.Core.Data.Itfc * Release notes
 Ordered by version descending
 
+## 0.0.5.0
+Date:__13.1.2025__
+- Generalize ResultDto from Result
+- Generalize ErrorMessageDto from Error
+- Add DtoExt extension method AsResult
+- Update dependency to qdr.fnd.core.0.0.7.0-alpha
+---
+
 ## 0.0.4.0
 Date:__9.1.2025__
 - Remove IError, IResult from assembly, already defined in qdr.fnd.core