From 36889df1c00f47d35f486325092282512cfbfec5 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Fri, 19 Apr 2024 14:08:33 +0200 Subject: [PATCH] Funktion: Erweiterung von IServiceMessage mit Methoden zur Nachrichtenverwaltung MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Hinzufügen von Erweiterungsmethoden zu IServiceMessage für das Hinzufügen von Client-, Trace-, Debug-, Informations-, Warn-, Fehler- und kritischen Nachrichten. - Einbeziehung von Methoden für direkte Nachrichten und auf Enum basierende Schlüssel, die Lokalisierung und benutzerdefinierte Formatierung unterstützen. --- .../DesignTimeBuild/.dtbcache.v2 | Bin 294283 -> 294283 bytes .vs/DigitalData.Core/v17/.suo | Bin 270336 -> 282112 bytes .../AutoMapperExtension.cs | 22 +++ DigitalData.Core.Application/CRUDService.cs | 6 +- .../DirectorySearchService.cs | 3 +- .../ResponseService.cs | 39 +++- DigitalData.Core.Application/ServiceBase.cs | 21 +-- .../ServiceMessage.cs | 88 ++++++++- .../ServiceMessageExtensions.cs | 169 ++++++++++++++++++ DigitalData.Core.Application/ServiceResult.cs | 32 +++- .../net7.0/DigitalData.Core.Application.dll | Bin 31232 -> 36352 bytes .../net7.0/DigitalData.Core.Application.pdb | Bin 19420 -> 21520 bytes .../net7.0/DigitalData.Core.Contracts.dll | Bin 9728 -> 10752 bytes .../net7.0/DigitalData.Core.Contracts.pdb | Bin 13420 -> 13484 bytes ...Application.csproj.AssemblyReference.cache | Bin 111410 -> 111492 bytes ...Application.csproj.CoreCompileInputs.cache | 2 +- .../net7.0/DigitalData.Core.Application.dll | Bin 31232 -> 36352 bytes .../net7.0/DigitalData.Core.Application.pdb | Bin 19420 -> 21520 bytes .../ref/DigitalData.Core.Application.dll | Bin 16384 -> 18944 bytes .../refint/DigitalData.Core.Application.dll | Bin 16384 -> 18944 bytes .../Application/IServiceMessage.cs | 48 ++--- .../net7.0/DigitalData.Core.Contracts.dll | Bin 9728 -> 10752 bytes .../net7.0/DigitalData.Core.Contracts.pdb | Bin 13420 -> 13484 bytes .../net7.0/DigitalData.Core.Contracts.dll | Bin 9728 -> 10752 bytes .../net7.0/DigitalData.Core.Contracts.pdb | Bin 13420 -> 13484 bytes .../net7.0/ref/DigitalData.Core.Contracts.dll | Bin 10240 -> 11264 bytes .../refint/DigitalData.Core.Contracts.dll | Bin 10240 -> 11264 bytes .../net7.0/DigitalData.Core.Contracts.dll | Bin 9728 -> 10752 bytes .../net7.0/DigitalData.Core.Contracts.pdb | Bin 13420 -> 13484 bytes .../DigitalData.Core.CultureServices.dll | Bin 9728 -> 9728 bytes .../DigitalData.Core.CultureServices.pdb | Bin 13488 -> 13488 bytes ...ureServices.csproj.AssemblyReference.cache | Bin 110338 -> 110420 bytes .../DigitalData.Core.CultureServices.dll | Bin 9728 -> 9728 bytes .../DigitalData.Core.CultureServices.pdb | Bin 13488 -> 13488 bytes .../net7.0/DigitalData.Core.Contracts.dll | Bin 9728 -> 10752 bytes .../net7.0/DigitalData.Core.Contracts.pdb | Bin 13420 -> 13484 bytes .../DigitalData.Core.Infrastructure.dll | Bin 11776 -> 11776 bytes .../DigitalData.Core.Infrastructure.pdb | Bin 13600 -> 13600 bytes ...rastructure.csproj.AssemblyReference.cache | Bin 111576 -> 111658 bytes .../DigitalData.Core.Infrastructure.dll | Bin 11776 -> 11776 bytes .../DigitalData.Core.Infrastructure.pdb | Bin 13600 -> 13600 bytes 41 files changed, 371 insertions(+), 59 deletions(-) create mode 100644 DigitalData.Core.Application/AutoMapperExtension.cs create mode 100644 DigitalData.Core.Application/ServiceMessageExtensions.cs diff --git a/.vs/DigitalData.Core/DesignTimeBuild/.dtbcache.v2 b/.vs/DigitalData.Core/DesignTimeBuild/.dtbcache.v2 index eded374d76911d328a56894c16fc22d926827e06..d4341515dc6b0868d2f742857abade71d6150e2d 100644 GIT binary patch delta 2634 zcmbW2e{2<17RTq_Gjrj!rKS8TY+<3IP&Lx_wXYOPx{qIqicw?y5mA1%uj;Nsq1M!d zq!_b*Y;@z&suzDCM)*S$e-zp>g({$+(pI4&h#>MyY3sVuIgE-cE&9Fhy}l(c*<`aX z`ON*EbI&<*=FGgAr!Hnbbum-;Ply&FzHgd0Js2rkR!|WN27@z}S5_1RBcV{RAittK zlwVvP3YL`Q2Sbs{qEJC`WpGBYsInlxq`0CeQczMjy`(T$Tw%$A5;wnDoL5<6X4gEr z@|I;)Rgu;6YaflQsD5bWifQH5I;TyvkITLzvih-y$|JW#s;ieh5J?17yWMSK=#jd2 zlw~!7Eg-|PtgTp^Kr?6o+klC2K`Yn}b^sIK2Hpklft`SmzYFVb@IDZ*KZvg;cS5}W z9_YQ`LuJ)jA3=N!_JMX_PHaxv0Xo4a;8S3l*bfeXE?}De3>*Z>&3z8vz@LioC|l%~4(jiA@0+G&S* zg3$J8nlfx3bUTDQhM5Ho6p#Dy+5GMZ}jb@G*^CW>!)|haqc^%^oVrMVxHYPr;M^hk3KL8 zV|uWRt{ld2pO25)*XznCFXPA9aDR#|Kf4FYXw&$dqxMZ0Uc70j<54@_D(sVP!y@`f zO}-GF)MUXIY(`HwVp6|EC-rZee?`|9qLa!wAD`6IvoD|2MKh^>`nH(^#fa7zD5h;%Ejjb2;oa)3z zljiWSxJ-Av!okO9pjf!`E2u7QVv{rY*fcxbggS+>n_+I5&rSN>D#}Z3Nd(Q*^H$Lm zF-!ji%WY+X-Q*NFqCaj;B!vZxq{?u_!nP;Eb~t*+D$1VNmhj+7Zc9#V(?71F{;S&^ z-j}=uN33Q?qQV@Z!_}zSnefaL+?kx%>E2OI-9nyqbZHG`r*$Wy>q!5thOUxNkZ#1z z#NNct^@4ko>-6e9HMDfrIfs8p-hw06TVJBW0>ORBVSReZV|2LUqQk!?Z^03((4VMq zli>d3FgRji1BtMOf(Mer1{^)BmZs^gd*o*Q=USRNNvgpoffP%Xbibr>Z`~_5*puu; z*xQ2bFsi?qf`HmH{F!|@~JUrz%dEo{x2J*5$oWkUUQ*^U%@YuL!siy_X@O^(5!)bKBg}KzYJ_?6wi~e> zqRoglovvw4Mu*WIaCREesh4P~9oubmH=I32^g#3)(X0D3{ZaK9-KR&crx|1WjW*LC zFv86Dk`b5mqV+U2!&1-|E>IdF-F53JQw*_=iyl-M86-I zD!Pn_EhD3g7s4CDE1vI7=Tx1$kwR`{Bh3{l98qDeRAFy{-uf!Nky_TMTP}58K=_M#<0i@) z_Y&mGU<5vL8?e3tMnaF$Cr441KDUXAM!yN)Tflq>-^Q9F!fV&+vim8^eR4AmJ^DLw CeuHiR delta 2531 zcma)7Yj9Q76+U~feRfDpNWv=yjDWQPI#ZI%%@Z_U@BtO7_6L>96r0>6(;szcba?!5 z4C)Vmh>irviiL_Iqs+(UQ{gP^hlB zI$Tm)5h|-LE146ns4S_A*3YRaudJ`BD2|3|YU?YiD;yb`;}y4wPc_foEB1R+Uli(C zJVf zn_G~mzYqLn;1%sOI{yQC6?hGJ9k2`AMfU@pKo@WTuuU8U-T)2(w&^#4ZXmU}w_y8z zgHWBrc-h)-1Gd%?;5pqGbbS=cJHRm@KhdS_@cYf#}aoSU>O)a2EI&kVqN*#~Nfyo&=e^86dE{5=gVu>>i+47M)(K&FA{FYX;QJNt+$V2d+^QDEVlmShh^{~!2*j^NlX%3;#(TKK98|xFnPP$1 zHx!hZDFe5u;DO+;|4Os@w=c^b+&htGc`}b4zHH1vwKyKb1*he_v_n=qq`Z(P*XS#| z)e=A5v?|lBOk4cDjLcig+(zcGGH+v%ZpEfoUco$<#-<%nzH5#u79BE=C*;!Xn>L$w z)Pnf(kHx!)`4eO281mj#=6J$0Gw9QLPQde?GVdomPk)zl5}s3h%{;m`^RzN&)V2O( zbk@TU!y-RWysty%d*|lS9n$?!Ma=(sMHS_VUS3^AGjty;{ff6#QK4&RYxqzV6=i=K zOfeRS&%DfQ=*i2bA5%ACXo+^gPQ>*@lh99k-OK4UedUGtYdQ%Hh%eMoQRcA1Zu%unVuQKJ#Zmf8 z?ueQnGb0Kg`i*7ZD1J6dWjT%u#c^XsSR!2RiBjZd|I#MWWYXPWG8wM9BtbJ>KRkL) zE|v+C<&GYdu`ZOD2?rZsw<%@~@yAM7zE}K012k%}(GkD!v+(=8e%4Ri9>d|wuQy8gJwo_^^>j`9gV$zBo6A{D1=)M7vIo|7OWJt>(}L_y%k5@%S<=NDnbuy_ zYq{N;K1=#Q`Yq`PIcv#TkO4~uK+aoo9%RsxL0;HGl{rI}+X)X_f|2EvP+`u9RYqWS zG>D_UU8iM^NRw8RnoS1H=k=xZaT-|*X5sh9l`_q>nya~|f|}COtdgd=p_0z5xJ26v zHyuA-%q0HCrIM-bg`1_#SWFj=KayEN=5{iFA~Oq@|0X2F|0J??T;v2IH!l2ATnm2L z^?tcY=eliFs>kVw8Lz#TZFIfJ@E1i)9SrrF`yZ!g#`{Yn{_i9Htr34&#B6}0N%PKT zxtz>K&D8_A*Qaf#o5Utwxt$Kn&6=-nks&h8h&m@{@vaF}t{G`9ns2Y7N%@b0{|y+2 zYj+FeR$x5%1RiOTdHU~AAJaU22bE2-H}gNCPZyDO>#*s~cK4h4o-=Z>cmEC=bNpLo ComwCO diff --git a/.vs/DigitalData.Core/v17/.suo b/.vs/DigitalData.Core/v17/.suo index fffeb3a903a04058c3f30e81a4675519f1537004..d9e1be33fdff9184318698458b8d1d9eebffe0c0 100644 GIT binary patch delta 13029 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 CSnHPn diff --git a/DigitalData.Core.Application/AutoMapperExtension.cs b/DigitalData.Core.Application/AutoMapperExtension.cs new file mode 100644 index 0000000..bb61521 --- /dev/null +++ b/DigitalData.Core.Application/AutoMapperExtension.cs @@ -0,0 +1,22 @@ +using AutoMapper; + +namespace DigitalData.Core.Application +{ + public static class AutoMapperExtension + { + /// + /// Maps a source object to a destination object, or throws an exception if the mapping result is null. + /// + /// The source object type. + /// The destination object type. + /// The source object to map from. + /// The mapped destination object. + /// Thrown when the mapping result is null. + public static TDestination MapOrThrow(this IMapper mapper, object source) + { + return mapper.Map(source) ?? throw new AutoMapperMappingException( + $"Mapping to {typeof(TDestination).FullName} resulted in a null object. " + + "Hint: Ensure that the AutoMapper profile configuration for this mapping is correct."); + } + } +} diff --git a/DigitalData.Core.Application/CRUDService.cs b/DigitalData.Core.Application/CRUDService.cs index c9acfd3..06c3074 100644 --- a/DigitalData.Core.Application/CRUDService.cs +++ b/DigitalData.Core.Application/CRUDService.cs @@ -20,7 +20,6 @@ namespace DigitalData.Core.Application { protected readonly TCRUDRepository _repository; protected readonly IMapper _mapper; - protected readonly IKeyTranslationService _translationService; protected readonly PropertyInfo? _keyPropertyInfo; /// @@ -29,10 +28,9 @@ namespace DigitalData.Core.Application /// The CRUD repository for accessing the database. /// The service for translating messages based on culture. /// The AutoMapper instance for mapping between DTOs and entity objects. - public CRUDService(TCRUDRepository repository, IKeyTranslationService translationService, IMapper mapper) + public CRUDService(TCRUDRepository repository, IKeyTranslationService translationService, IMapper mapper) : base(translationService) { _repository = repository; - _translationService = translationService; _mapper = mapper; _keyPropertyInfo = typeof(TEntity).GetProperties() @@ -96,7 +94,7 @@ namespace DigitalData.Core.Application else { var translatedMessage = _translationService.Translate(MessageKey.UpdateFailed); - return Failed(translatedMessage); + return Failed(); } } diff --git a/DigitalData.Core.Application/DirectorySearchService.cs b/DigitalData.Core.Application/DirectorySearchService.cs index f3262b1..86b9f47 100644 --- a/DigitalData.Core.Application/DirectorySearchService.cs +++ b/DigitalData.Core.Application/DirectorySearchService.cs @@ -5,6 +5,7 @@ using System.DirectoryServices; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Configuration; using System.DirectoryServices.AccountManagement; +using DigitalData.Core.Contracts.CultureServices; namespace DigitalData.Core.Application { @@ -18,7 +19,7 @@ namespace DigitalData.Core.Application private readonly DateTimeOffset _userCacheExpiration; public Dictionary CustomSearchFilters { get; } - public DirectorySearchService(IConfiguration configuration, ILogger logger, IMemoryCache memoryCache) + public DirectorySearchService(IConfiguration configuration, ILogger logger, IMemoryCache memoryCache, IKeyTranslationService translationService) : base(translationService) { _memoryCache = memoryCache; diff --git a/DigitalData.Core.Application/ResponseService.cs b/DigitalData.Core.Application/ResponseService.cs index e22b570..126bbba 100644 --- a/DigitalData.Core.Application/ResponseService.cs +++ b/DigitalData.Core.Application/ResponseService.cs @@ -1,13 +1,17 @@ using DigitalData.Core.Contracts.Application; +using DigitalData.Core.Contracts.CultureServices; using static System.Runtime.InteropServices.JavaScript.JSType; namespace DigitalData.Core.Application { - /// - /// Provides a base implementation of , offering basic service messaging and result creation functionalities. - /// public class ResponseService : IResponseService { + protected readonly IKeyTranslationService _translationService; + + public ResponseService(IKeyTranslationService translationService) + { + _translationService = translationService; + } #region WITHOUT_MESSAGE @@ -16,7 +20,11 @@ namespace DigitalData.Core.Application /// /// Indicates if the operation was successful. /// A service message reflecting the operation outcome. - public IServiceMessage CreateMessage(bool isSuccess) => new ServiceMessage(isSuccess); + public IServiceMessage CreateMessage(bool isSuccess = false) => new ServiceMessage() + { + IsSuccess = isSuccess, + KeyTranslator = _translationService.Translate + }; /// /// Creates a service result containing the provided data and a success flag, without additional messages. @@ -25,7 +33,12 @@ namespace DigitalData.Core.Application /// The data to include in the result. /// Indicates if the operation was successful. /// A service result with the specified data and outcome. - public IServiceResult CreateResult(T? data, bool isSuccess) => new ServiceResult(data, isSuccess); + public IServiceResult CreateResult(T? data = default, bool isSuccess = false) => new ServiceResult() + { + IsSuccess = isSuccess, + Data = data, + KeyTranslator = _translationService.Translate + }; /// /// Creates a service message indicating a successful operation without additional messages. @@ -56,9 +69,8 @@ namespace DigitalData.Core.Application public IServiceResult Failed(T? data = default) => CreateResult(data, false); #endregion - #region WITH_STRING_MESSAGE - + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a service message with the specified success flag and messages. /// @@ -67,6 +79,7 @@ namespace DigitalData.Core.Application /// A new instance of reflecting the operation outcome. public virtual IServiceMessage CreateMessage(bool isSuccess, params string[] messages) => new ServiceMessage(isSuccess, messages); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a service result containing the provided data, success flag, and messages. /// @@ -77,6 +90,7 @@ namespace DigitalData.Core.Application /// A new instance of with the specified data and outcome. public virtual IServiceResult CreateResult(T? data = default, bool isSuccess = true, params string[] messages) => new ServiceResult(data, isSuccess, messages); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a successful service message. /// @@ -84,6 +98,7 @@ namespace DigitalData.Core.Application /// A successful service message. public virtual IServiceMessage Successful(params string[] messages) => CreateMessage(true, messages); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a failed service message. /// @@ -91,6 +106,7 @@ namespace DigitalData.Core.Application /// A failed service message. public virtual IServiceMessage Failed(params string[] messages) => CreateMessage(false, messages); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a successful service result with the provided data. /// @@ -100,6 +116,7 @@ namespace DigitalData.Core.Application /// A successful service result containing the specified data. public virtual IServiceResult Successful(T data, params string[] messages) => CreateResult(data, true, messages); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a failed service result, optionally including data. /// @@ -109,6 +126,7 @@ namespace DigitalData.Core.Application /// A failed service result, which may or may not contain the specified data. public virtual IServiceResult Failed(T? data = default, params string[] messages) => CreateResult(data, false, messages); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a failed service result using only failure messages, without explicitly including data. /// @@ -125,6 +143,7 @@ namespace DigitalData.Core.Application #endregion #region WITH_ENUM_MESSAGE + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a service message with the specified success flag and enumeration messages. /// @@ -133,6 +152,7 @@ namespace DigitalData.Core.Application /// A new instance of reflecting the operation outcome with enumeration messages. public IServiceMessage CreateMessage(bool isSuccess, params Enum[] messages) => CreateMessage(isSuccess, messages.Select(m => m.ToString()).ToArray()); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a service result containing the provided data, success flag, and enumeration messages. /// @@ -143,6 +163,7 @@ namespace DigitalData.Core.Application /// A new instance of with the specified data and outcome using enumeration messages. public IServiceResult CreateResult(T? data, bool isSuccess, params Enum[] messages) => CreateResult(data, isSuccess, messages.Select(m => m.ToString()).ToArray()); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a successful service message using enumeration messages. /// @@ -150,6 +171,7 @@ namespace DigitalData.Core.Application /// A successful service message. public IServiceMessage Successful(params Enum[] messages) => CreateMessage(true, messages.Select(m => m.ToString()).ToArray()); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a failed service message using enumeration messages. /// @@ -157,6 +179,7 @@ namespace DigitalData.Core.Application /// A failed service message. public IServiceMessage Failed(params Enum[] messages) => CreateMessage(false, messages.Select(m => m.ToString()).ToArray()); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a successful service result with the provided data using enumeration messages. /// @@ -166,6 +189,7 @@ namespace DigitalData.Core.Application /// A successful service result containing the specified data. public IServiceResult Successful(T data, params Enum[] messages) => CreateResult(data, true, messages.Select(m => m.ToString()).ToArray()); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a failed service result, optionally including data, using enumeration messages. /// @@ -175,6 +199,7 @@ namespace DigitalData.Core.Application /// A failed service result, which may or may not contain the specified data. public IServiceResult Failed(T? data = default, params Enum[] messages) => CreateResult(data, false, messages.Select(m => m.ToString()).ToArray()); + [Obsolete("Deprecated: Use ClientMessages instead.")] /// /// Creates a failed service result using only failure messages, without explicitly including data. /// diff --git a/DigitalData.Core.Application/ServiceBase.cs b/DigitalData.Core.Application/ServiceBase.cs index bcb44ca..0fef1b9 100644 --- a/DigitalData.Core.Application/ServiceBase.cs +++ b/DigitalData.Core.Application/ServiceBase.cs @@ -1,31 +1,16 @@ using AutoMapper; using DigitalData.Core.Contracts.Application; +using DigitalData.Core.Contracts.CultureServices; namespace DigitalData.Core.Application { /// - /// Provides a base implementation of , offering basic service messaging and result creation functionalities. + /// Provides a base implementation of . /// public class ServiceBase : ResponseService, IServiceBase, IResponseService { - - } - - public static class AutoMapperExtension - { - /// - /// Maps a source object to a destination object, or throws an exception if the mapping result is null. - /// - /// The source object type. - /// The destination object type. - /// The source object to map from. - /// The mapped destination object. - /// Thrown when the mapping result is null. - public static TDestination MapOrThrow(this IMapper mapper, object source) + public ServiceBase(IKeyTranslationService translationService) : base(translationService) { - return mapper.Map(source) ?? throw new AutoMapperMappingException( - $"Mapping to {typeof(TDestination).FullName} resulted in a null object. " + - "Hint: Ensure that the AutoMapper profile configuration for this mapping is correct."); } } } \ No newline at end of file diff --git a/DigitalData.Core.Application/ServiceMessage.cs b/DigitalData.Core.Application/ServiceMessage.cs index 6192709..e355044 100644 --- a/DigitalData.Core.Application/ServiceMessage.cs +++ b/DigitalData.Core.Application/ServiceMessage.cs @@ -1,40 +1,113 @@ using DigitalData.Core.Contracts.Application; +using System.Text.Json.Serialization; namespace DigitalData.Core.Application { /// - /// Represents the outcome of a service operation, encapsulating the success or failure status, - /// and any associated messages. + /// Represents the outcome of a service operation, encapsulating the success or failure status, + /// and any associated messages. It also supports optional translation of message keys for localization purposes. /// public class ServiceMessage : IServiceMessage { + /// + /// Initializes a new instance of the ServiceMessage class. + /// + public ServiceMessage() + { + } + + /// + /// Initializes a new instance of the ServiceMessage class, specifying the success status. + /// Optionally, a function for translating message keys can be provided. + /// If a translation function is provided, it will be used for both string and enum message keys. + /// + /// Indicates whether the service operation was successful. + /// If provided, it will also be adapted for translating enum keys by converting them to strings first. + [Obsolete("Deprecated: initialize objects using object initializer.")] + public ServiceMessage(bool isSuccess) + { + IsSuccess = isSuccess; + } + /// /// Initializes a new instance of the ServiceMessage class with specified success status, and messages. /// /// Indicates whether the service operation was successful. - /// The data associated with a successful operation. /// An array of messages related to the operation's outcome. + [Obsolete("Deprecated: initialize objects using object initializer.")] public ServiceMessage(bool isSuccess, params string[] messages) { IsSuccess = isSuccess; Messages = messages.ToList(); } - + /// /// Gets or sets a value indicating whether the service operation was successful. /// - public bool IsSuccess { get; set; } + public bool IsSuccess { get; set; } = false; + + /// + /// [Obsolete("Deprecated: Use ClientMessages instead.")] + /// Gets a collection of messages associated with the service operation. These messages can be error descriptions, + /// success notifications, or other relevant information related to the operation's outcome. + /// + [Obsolete("Deprecated: Use ClientMessages instead.")] + public List Messages { get; init; } = new(); + + /// + /// Gets a collection of messages intended for client display. This replaces the deprecated 'Messages' property. + /// + public List ClientMessages { get; init; } = new(); + + /// + /// Gets a collection of messages used for tracing program execution at a fine-grained level. These are typically voluminous and detailed. + /// + [JsonIgnore] + public List TraceMessages { get; init; } = new(); + + /// + /// Gets a collection of messages helpful for debugging during development. These messages are often diagnostic. + /// + [JsonIgnore] + public List DebugMessages { get; init; } = new(); + + /// + /// Gets a collection of informational messages, less critical than warnings, generally used for non-critical notifications. + /// + [JsonIgnore] + public List InformationMessages { get; init; } = new(); + + /// + /// Gets a collection of messages indicating potential issues that are not necessarily errors, but which may require attention. + /// + [JsonIgnore] + public List WarningMessages { get; init; } = new(); + + /// + /// Gets a collection of error messages indicating failures or problems within the service. + /// + [JsonIgnore] + public List ErrorMessages { get; init; } = new(); + + /// + /// Gets a collection of messages indicating critical issues that require immediate attention. + /// + [JsonIgnore] + public List CriticalMessages { get; init; } = new(); /// - /// Gets or sets a collection of messages associated with the service operation. + /// A function that translates a message key from a string to its localized or transformed representation. + /// This property allows for custom translation logic to be applied based on the application's needs. /// - public List Messages { get; set; } = new List(); + [JsonIgnore] + public Func KeyTranslator { get; init; } = key => key; /// /// Adds a new message to the collection of messages associated with the service operation. /// /// The message to add. /// The current instance of ServiceMessage, allowing for method chaining. + [Obsolete("Deprecated: Use ClientMessages instead.")] public IServiceMessage WithMessage(string message) { Messages.Add(message); @@ -47,6 +120,7 @@ namespace DigitalData.Core.Application /// /// The enum value representing the message key. /// The current instance of ServiceMessage, allowing for method chaining. + [Obsolete("Deprecated: Use ClientMessages instead.")] public IServiceMessage WithMessageKey(Enum messageKey) { Messages.Add(messageKey.ToString()); diff --git a/DigitalData.Core.Application/ServiceMessageExtensions.cs b/DigitalData.Core.Application/ServiceMessageExtensions.cs new file mode 100644 index 0000000..8064a28 --- /dev/null +++ b/DigitalData.Core.Application/ServiceMessageExtensions.cs @@ -0,0 +1,169 @@ +using DigitalData.Core.Contracts.Application; + +namespace DigitalData.Core.Application +{ + /// + /// Provides extension methods for IServiceMessage to enhance the usability of service messages + /// by allowing easy addition of various types of messages including client, trace, debug, information, + /// warning, error, and critical messages. These methods support both direct messages and enum-based keys + /// for messages, facilitating localized or custom-formatted messages. + /// + public static class ServiceMessageExtensions + { + #region ClientMessage + /// + /// Adds a single client message to the service message. + /// + /// The service message to modify. + /// The message to add. + /// The modified service message instance. + public static T WithClientMessage(this T serviceMessage, string message) where T : IServiceMessage + { + serviceMessage.ClientMessages.Add(message); + return serviceMessage; + } + + /// + /// Adds a client message based on an enumeration key to the service message. + /// + /// The service message to modify. + /// The enum key representing the message. + /// The modified service message instance. + public static T WithClientMessageKey(this T serviceMessage, Enum messageKey) where T : IServiceMessage + { + var message = serviceMessage.KeyTranslator(messageKey.ToString()); + return serviceMessage.WithClientMessage(message); + } + #endregion + + #region TraceMessages + /// + /// Adds a trace message to the service message. + /// + /// The service message to modify. + /// The trace message to add. + /// The modified service message instance. + public static T WithTraceMessage(this T serviceMessage, string message) where T : IServiceMessage + { + serviceMessage.TraceMessages.Add(message); + return serviceMessage; + } + + /// + /// Adds a trace message based on an enumeration key to the service message. + /// + /// The service message to modify. + /// The enum key representing the trace message. + /// The modified service message instance. + public static T WithTraceMessageKey(this T serviceMessage, Enum messageKey) where T : IServiceMessage + { + var message = serviceMessage.KeyTranslator(messageKey.ToString()); + return serviceMessage.WithTraceMessage(message); + } + #endregion + + #region DebugMessages + /// + /// Adds a debug message to the service message. + /// + /// The service message to modify. + /// The debug message to add. + /// The modified service message instance. + public static T WithDebugMessage(this T serviceMessage, string message) where T : IServiceMessage + { + serviceMessage.DebugMessages.Add(message); + return serviceMessage; + } + + /// + /// Adds a debug message based on an enumeration key to the service message. + /// + /// The service message to modify. + /// The enum key representing the debug message. + /// The modified service message instance. + public static T WithDebugMessageKey(this T serviceMessage, Enum messageKey) where T : IServiceMessage + { + var message = serviceMessage.KeyTranslator(messageKey.ToString()); + return serviceMessage.WithDebugMessage(message); + } + #endregion + + #region WarningMessages + /// + /// Adds a warning message to the service message. + /// + /// The service message to modify. + /// The warning message to add. + /// The modified service message instance. + public static T WithWarningMessage(this T serviceMessage, string message) where T : IServiceMessage + { + serviceMessage.WarningMessages.Add(message); + return serviceMessage; + } + + /// + /// Adds a warning message based on an enumeration key to the service message. + /// + /// The service message to modify. + /// The enum key representing the warning message. + /// The modified service message instance. + public static T WithWarningMessageKey(this T serviceMessage, Enum messageKey) where T : IServiceMessage + { + var message = serviceMessage.KeyTranslator(messageKey.ToString()); + return serviceMessage.WithWarningMessage(message); + } + #endregion + + #region ErrorMessages + /// + /// Adds an error message to the service message. + /// + /// The service message to modify. + /// The error message to add. + /// The modified service message instance. + public static T WithErrorMessage(this T serviceMessage, string message) where T : IServiceMessage + { + serviceMessage.ErrorMessages.Add(message); + return serviceMessage; + } + + /// + /// Adds an error message based on an enumeration key to the service message. + /// + /// The service message to modify. + /// The enum key representing the error message. + /// The modified service message instance. + public static T WithErrorMessageKey(this T serviceMessage, Enum messageKey) where T : IServiceMessage + { + var message = serviceMessage.KeyTranslator(messageKey.ToString()); + return serviceMessage.WithErrorMessage(message); + } + #endregion + + #region CriticalMessages + /// + /// Adds a critical message to the service message. + /// + /// The service message to modify. + /// The critical message to add. + /// The modified service message instance. + public static T WithCriticalMessage(this T serviceMessage, string message) where T : IServiceMessage + { + serviceMessage.CriticalMessages.Add(message); + return serviceMessage; + } + + /// + /// Adds a critical message based on an enumeration key to the service message. + /// + /// The service message to modify. + /// The enum key representing the critical message. + /// The modified service message instance. + public static T WithCriticalMessageKey(this T serviceMessage, Enum messageKey) where T : IServiceMessage + { + var message = serviceMessage.KeyTranslator(messageKey.ToString()); + return serviceMessage.WithCriticalMessage(message); + } + #endregion + } +} \ No newline at end of file diff --git a/DigitalData.Core.Application/ServiceResult.cs b/DigitalData.Core.Application/ServiceResult.cs index bc1ddd4..1f3ad81 100644 --- a/DigitalData.Core.Application/ServiceResult.cs +++ b/DigitalData.Core.Application/ServiceResult.cs @@ -9,17 +9,47 @@ namespace DigitalData.Core.Application /// The type of data returned by the service operation, if any. public class ServiceResult : ServiceMessage, IServiceResult { + /// + /// Initializes a new instance of the ServiceResult class. + public ServiceResult() + { + } + + /// + /// Initializes a new instance of the ServiceResult class, specifying the success status is false and data. + /// Optionally, a function for translating message keys can be provided. + /// If a translation function is provided, it will be used for both string and enum message keys. + /// + /// The data associated with a successful operation. + /// A function that translates a string key into its localized representation. + /// If provided, it will also be adapted for translating enum keys by converting them to strings first. + [Obsolete("Deprecated: initialize objects using object initializers instead.")] + public ServiceResult(T? data) + { + Data = data; + IsSuccess = false; + } + + /// + /// Initializes a new instance of the ServiceResult class with specified success status and data. + /// + /// The data associated with a successful operation. + /// Indicates whether the service operation was successful. + [Obsolete("Deprecated: initialize objects using object initializers instead.")] + public ServiceResult(T? data, bool isSuccess) : base(isSuccess) => Data = data; + /// /// Initializes a new instance of the ServiceResult class with specified success status, data, and messages. /// /// The data associated with a successful operation. /// Indicates whether the service operation was successful. /// An array of messages related to the operation's outcome. + [Obsolete("Deprecated: Use ClientMessages instead.")] public ServiceResult(T? data, bool isSuccess, params string[] messages) : base(isSuccess, messages) => Data = data; /// /// Gets or sets the data resulting from the service operation. /// - public T? Data { get; set; } + public T? Data { get; set; } = default; } } \ No newline at end of file diff --git a/DigitalData.Core.Application/bin/Debug/net7.0/DigitalData.Core.Application.dll b/DigitalData.Core.Application/bin/Debug/net7.0/DigitalData.Core.Application.dll index 78916dc1867a1be3e25f081d0416aa09b59a375a..4abab971425b11b1ba313bf2bd25df4a0d50f1f6 100644 GIT binary patch literal 36352 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 literal 31232 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 JF)Ht%{{!%t>B#^9 diff --git a/DigitalData.Core.Application/bin/Debug/net7.0/DigitalData.Core.Contracts.dll b/DigitalData.Core.Application/bin/Debug/net7.0/DigitalData.Core.Contracts.dll index 9c30b516dded91227b82aacb698e891923790123..b2f6929366e977765abaa33c25ec72f349fcc6b3 100644 GIT binary patch delta 4515 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 delta 3484 zcmbVPeQ;D)6+h>`uO(qWviXLP?rwrf0}X*tF(gnhP?~=5VNwY&XfSCJ&_>vdmY}?l zgf?ig4R2bVq0^yF9I-{~xD(WZbSiXP)M>{uZKu--LoLxdip@wJY{ZV|ocH#zpnrL0 z-tV5@`JH?2zWeUI?`>aO-`$T5C2Ah{-D&Xb0wiL&SO-u>fq)zQdgJi3pAS_u0<7V{ zGJtA*IG#Vf17JGw*kXV-C$8o?8?Y+pn=?5?SDEu|oP*`gaje2h=R77#*HZ;6NHRIIwUWd)0c#GRd5l^r8O z_XzasUL7F7MlJnR(Jg9oJfCAGT{KrTacpUwV;nu9wVEa@))`+@g=QEY zp;QxcwISVvxNaLJY}FVavZbjMTrT*o;75w(!-`9+)+edkk1fXIYEsXEMS+ABf{%@^ zKorW1Da(XeaD_6%aD;}rBKbkVSEbiajY+)-nn;}i!$#613^2x(oivN!R_WF*9ma8z zCk<#)$&l|IBXB@nFdKaK2l`pe=)Ot&i0-z5eCkGQM3_cP>1pZTXz)`og|$EfFAADp z);3|a2{zG?OQBs-qr$qcW6kJlrJ^nHSVCB*a z?1!~6`VC+|R1&6%L)ajc*(kAHK3h$!-)F2H@)^(0sIVvC?!b?Txt2Dr>d$+tg4TtR zV~olAVKr^M2`6ZFyiD6T0cqfc#g;ZM!S7}Hx$G>Q&tmTpP!9Qag6#MLtRyKQ1&t`45wI2OcBV=`Cu~Yi}$lHr8ZH(d`EO!a9-{7NI z;j^FP<2c)A{dgFweD;p@G*CZA2{5p|o-LKsoY zd^Vw%sO3HjVTo$aVpVEoh6TT3EmXJrtk?RCvaiv@<`T8a7mu1NuQB5>T&?&O!Im~= z1=>`LOCTLQ0Gkw_nr!LdA?P3$i6HdyfdJd&G+_{TT$b-fW=Ms9Qe_1tQvXA$py2ODB%;ABDiYD*b&JL~;1r$C z2-E0nx>3GSy_pKR=H?>|QPE7~FgZ#h2<)@*Ot9}}Dj1Wo{7jn;1~-(At~_RDI%m4M zIXq-0;urcq>h#c~p}FD);YpdIxiV=z&MUc9cGyIEL-XlaN|*yT6GmXZV1wXt!4|=F zf*S<42yP=ZVIN^3{8Id#g2V72t)5{xYp#X^6rmFqzotxh37(;|AwbV#JK_&IHqe(sd^15s0iLvR`rgfC0voJ8K|hz%DdbwY&8guR-E zoSIJu_ERuhuvsFVf&+pniuY=##Xo~d`sweJ->d10{d~o0t6);l5lji56TB>F=WCo= zFF2}k=M_3*htB0jbyhEkuN!Zn0V^*d;hym@)`n;+Ck+)o8 z{%J@h+aXDZftXD%@6Dv~$Iy`g4;X?eQKGPqxK5A%1%tn_qNMY;YShyUJiP$MMK6FC z4UO^&;8jDH_DFz_-2yMa93GastGxCeX;b2Xvb_YD{ zH0HIWzLWR5O7#`&QO=Cwh0Yg?Z*zWKd@^;Yv=W_{XZ$JBTl>AD7fPyIzMpWKMxsAl z$`2-|?3U1E2fX=+Vu0 oHSz$i-N$}xI9{aIH#+O$zZ$O7Q=!C^p&o2Znu*0QpA@fPAN%{3IYhPxQ^Rvp3KCZAfdh+LqgKJYk*76QD3dxcnkcP7wwMMj%@S zi1~pSsFlGNh=Ujyv=}&n3^5?)0OA-R1}Ow704bD$vO!|(6Yr`s`fg@r%x9eZfYD)d x36n6h!udIO=FQzXb+5CG*ty*5KJ&err)zprpA<|o+P-03>w5pq%UO@=0RWm&H?#l% delta 230 zcmZ3J`6gq6Nxcmd1A}rM1A_`P1A_tskR4o7l$n=a3}iC60L559Vxhqd9zb>ii0vNg z=>nuz0QpA@fPAN%{3IZsZSxMXxOW~7i|($@=;izA#k;NH98j1cTz(NJrw9WBBap2C z#QZ=E)XHEB#9j;xS`3^(22h@X1BgR_7^D!SfE|drplpyB+r+!-jJBIu8S@!8Z($N< tR`{ix6fq_HT~qJf;L4w`lY4U(M4X%1HR=53o@@ruZpPD_pR*p-0|3!!GZz2= diff --git a/DigitalData.Core.Application/obj/Debug/net7.0/DigitalData.Core.Application.csproj.AssemblyReference.cache b/DigitalData.Core.Application/obj/Debug/net7.0/DigitalData.Core.Application.csproj.AssemblyReference.cache index 930a9a675438bd98b2948e0b0621b8ce1823fd64..dbd4edc3a5be1802ff2f34df6742ab3caa7492b9 100644 GIT binary patch delta 61 zcmV-D0K)&W<_3i429SIVL6#L^X<*z40RaITku4gLqWu8}v!DSX0+&8=0VI<-0~`p< TdlUc7E!|Orw*$Ag0|9%lt<@HP delta 43 zcmV+`0M!44=LWLo29SIVfS+=-wO`x_0RaITku4gLqWu8|v!DSX0)rC-w-W>baj$}p B50L-> diff --git a/DigitalData.Core.Application/obj/Debug/net7.0/DigitalData.Core.Application.csproj.CoreCompileInputs.cache b/DigitalData.Core.Application/obj/Debug/net7.0/DigitalData.Core.Application.csproj.CoreCompileInputs.cache index 385b9e1..c0d4346 100644 --- a/DigitalData.Core.Application/obj/Debug/net7.0/DigitalData.Core.Application.csproj.CoreCompileInputs.cache +++ b/DigitalData.Core.Application/obj/Debug/net7.0/DigitalData.Core.Application.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -3640b57401dc921b27e40c7f798bc080351d913f +1204f54a36145ece1945026f8fb6c0371ee8b734 diff --git a/DigitalData.Core.Application/obj/Debug/net7.0/DigitalData.Core.Application.dll b/DigitalData.Core.Application/obj/Debug/net7.0/DigitalData.Core.Application.dll index 78916dc1867a1be3e25f081d0416aa09b59a375a..4abab971425b11b1ba313bf2bd25df4a0d50f1f6 100644 GIT binary patch literal 36352 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 literal 31232 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 JF)Ht%{{!%t>B#^9 diff --git a/DigitalData.Core.Application/obj/Debug/net7.0/ref/DigitalData.Core.Application.dll b/DigitalData.Core.Application/obj/Debug/net7.0/ref/DigitalData.Core.Application.dll index 82887ddd53e48a42564ee2663e5dec9bbf845c3a..2b5900f3ddf316caf2a2f09a632b5fd797862dae 100644 GIT binary patch literal 18944 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%0DucW$B=oqwZp)t`uBFI6ZPf6L1 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%0DucW$B=oqwZp)t`uBFI6ZPf6L1 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 /// Defines a structured format for service messages, categorizing them into success indicators and various types of messages. /// This interface segregates messages into client-facing messages and different levels of logging messages, facilitating targeted communications and diagnostics. + /// Properties are initialized once per instance and cannot be modified afterwards, promoting immutability. /// public interface IServiceMessage { /// - /// Gets or sets a flag indicating whether the service operation was successful. + /// Gets or sets a value indicating whether the service operation was successful. /// bool IsSuccess { get; set; } - /// - /// Gets or sets a collection of messages intended for client display. This is intended to replace the deprecated 'Messages' property. - /// - List ClientMessages { get; set; } - /// /// [Obsolete("Deprecated: Use ClientMessages instead.")] - /// Gets or sets a collection of messages associated with the service operation. These messages can be error descriptions, + /// Gets a collection of messages associated with the service operation. These messages can be error descriptions, /// success notifications, or other relevant information related to the operation's outcome. /// [Obsolete("Deprecated: Use ClientMessages instead.")] - List Messages { get; set; } + List Messages { get; init; } + + /// + /// Gets a collection of messages intended for client display. This replaces the deprecated 'Messages' property. + /// + List ClientMessages { get; init; } + + /// + /// Gets a collection of messages used for tracing program execution at a fine-grained level. These are typically voluminous and detailed. + /// + [JsonIgnore] + List TraceMessages { get; init; } /// - /// Gets or sets a collection of messages used for tracing program execution at a fine-grained level. These are typically voluminous and detailed. + /// Gets a collection of messages helpful for debugging during development. These messages are often diagnostic. /// [JsonIgnore] - List TraceMessages { get; set; } + List DebugMessages { get; init; } /// - /// Gets or sets a collection of messages helpful for debugging during development. These messages are often diagnostic. + /// Gets a collection of informational messages, less critical than warnings, generally used for non-critical notifications. /// [JsonIgnore] - List DebugMessages { get; set; } + List InformationMessages { get; init; } /// - /// Gets or sets a collection of informational messages, less critical than warnings, generally used for non-critical notifications. + /// Gets a collection of messages indicating potential issues that are not necessarily errors, but which may require attention. /// [JsonIgnore] - List InformationMessages { get; set; } + List WarningMessages { get; init; } /// - /// Gets or sets a collection of messages indicating potential issues that are not necessarily errors, but which may require attention. + /// Gets a collection of error messages indicating failures or problems within the service. /// [JsonIgnore] - List WarningMessages { get; set; } + List ErrorMessages { get; init; } /// - /// Gets or sets a collection of error messages indicating failures or problems within the service. + /// Gets a collection of messages indicating critical issues that require immediate attention. /// [JsonIgnore] - List ErrorMessages { get; set; } + List CriticalMessages { get; init; } /// - /// Gets or sets a collection of messages indicating critical issues that require immediate attention. + /// A function that translates a message key from a string to its localized or transformed representation. + /// This property allows for custom translation logic to be applied based on the application's needs. /// [JsonIgnore] - List CriticalMessages { get; set; } + public Func KeyTranslator { get; init; } /// /// Adds a new message to the appropriate collection based on the message type. diff --git a/DigitalData.Core.Contracts/bin/Debug/net7.0/DigitalData.Core.Contracts.dll b/DigitalData.Core.Contracts/bin/Debug/net7.0/DigitalData.Core.Contracts.dll index 9c30b516dded91227b82aacb698e891923790123..b2f6929366e977765abaa33c25ec72f349fcc6b3 100644 GIT binary patch delta 4515 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 delta 3484 zcmbVPeQ;D)6+h>`uO(qWviXLP?rwrf0}X*tF(gnhP?~=5VNwY&XfSCJ&_>vdmY}?l zgf?ig4R2bVq0^yF9I-{~xD(WZbSiXP)M>{uZKu--LoLxdip@wJY{ZV|ocH#zpnrL0 z-tV5@`JH?2zWeUI?`>aO-`$T5C2Ah{-D&Xb0wiL&SO-u>fq)zQdgJi3pAS_u0<7V{ zGJtA*IG#Vf17JGw*kXV-C$8o?8?Y+pn=?5?SDEu|oP*`gaje2h=R77#*HZ;6NHRIIwUWd)0c#GRd5l^r8O z_XzasUL7F7MlJnR(Jg9oJfCAGT{KrTacpUwV;nu9wVEa@))`+@g=QEY zp;QxcwISVvxNaLJY}FVavZbjMTrT*o;75w(!-`9+)+edkk1fXIYEsXEMS+ABf{%@^ zKorW1Da(XeaD_6%aD;}rBKbkVSEbiajY+)-nn;}i!$#613^2x(oivN!R_WF*9ma8z zCk<#)$&l|IBXB@nFdKaK2l`pe=)Ot&i0-z5eCkGQM3_cP>1pZTXz)`og|$EfFAADp z);3|a2{zG?OQBs-qr$qcW6kJlrJ^nHSVCB*a z?1!~6`VC+|R1&6%L)ajc*(kAHK3h$!-)F2H@)^(0sIVvC?!b?Txt2Dr>d$+tg4TtR zV~olAVKr^M2`6ZFyiD6T0cqfc#g;ZM!S7}Hx$G>Q&tmTpP!9Qag6#MLtRyKQ1&t`45wI2OcBV=`Cu~Yi}$lHr8ZH(d`EO!a9-{7NI z;j^FP<2c)A{dgFweD;p@G*CZA2{5p|o-LKsoY zd^Vw%sO3HjVTo$aVpVEoh6TT3EmXJrtk?RCvaiv@<`T8a7mu1NuQB5>T&?&O!Im~= z1=>`LOCTLQ0Gkw_nr!LdA?P3$i6HdyfdJd&G+_{TT$b-fW=Ms9Qe_1tQvXA$py2ODB%;ABDiYD*b&JL~;1r$C z2-E0nx>3GSy_pKR=H?>|QPE7~FgZ#h2<)@*Ot9}}Dj1Wo{7jn;1~-(At~_RDI%m4M zIXq-0;urcq>h#c~p}FD);YpdIxiV=z&MUc9cGyIEL-XlaN|*yT6GmXZV1wXt!4|=F zf*S<42yP=ZVIN^3{8Id#g2V72t)5{xYp#X^6rmFqzotxh37(;|AwbV#JK_&IHqe(sd^15s0iLvR`rgfC0voJ8K|hz%DdbwY&8guR-E zoSIJu_ERuhuvsFVf&+pniuY=##Xo~d`sweJ->d10{d~o0t6);l5lji56TB>F=WCo= zFF2}k=M_3*htB0jbyhEkuN!Zn0V^*d;hym@)`n;+Ck+)o8 z{%J@h+aXDZftXD%@6Dv~$Iy`g4;X?eQKGPqxK5A%1%tn_qNMY;YShyUJiP$MMK6FC z4UO^&;8jDH_DFz_-2yMa93GastGxCeX;b2Xvb_YD{ zH0HIWzLWR5O7#`&QO=Cwh0Yg?Z*zWKd@^;Yv=W_{XZ$JBTl>AD7fPyIzMpWKMxsAl z$`2-|?3U1E2fX=+Vu0 oHSz$i-N$}xI9{aIH#+O$zZ$O7Q=!C^p&o2Znu*0QpA@fPAN%{3IYhPxQ^Rvp3KCZAfdh+LqgKJYk*76QD3dxcnkcP7wwMMj%@S zi1~pSsFlGNh=Ujyv=}&n3^5?)0OA-R1}Ow704bD$vO!|(6Yr`s`fg@r%x9eZfYD)d x36n6h!udIO=FQzXb+5CG*ty*5KJ&err)zprpA<|o+P-03>w5pq%UO@=0RWm&H?#l% delta 230 zcmZ3J`6gq6Nxcmd1A}rM1A_`P1A_tskR4o7l$n=a3}iC60L559Vxhqd9zb>ii0vNg z=>nuz0QpA@fPAN%{3IZsZSxMXxOW~7i|($@=;izA#k;NH98j1cTz(NJrw9WBBap2C z#QZ=E)XHEB#9j;xS`3^(22h@X1BgR_7^D!SfE|drplpyB+r+!-jJBIu8S@!8Z($N< tR`{ix6fq_HT~qJf;L4w`lY4U(M4X%1HR=53o@@ruZpPD_pR*p-0|3!!GZz2= diff --git a/DigitalData.Core.Contracts/obj/Debug/net7.0/DigitalData.Core.Contracts.dll b/DigitalData.Core.Contracts/obj/Debug/net7.0/DigitalData.Core.Contracts.dll index 9c30b516dded91227b82aacb698e891923790123..b2f6929366e977765abaa33c25ec72f349fcc6b3 100644 GIT binary patch delta 4515 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 delta 3484 zcmbVPeQ;D)6+h>`uO(qWviXLP?rwrf0}X*tF(gnhP?~=5VNwY&XfSCJ&_>vdmY}?l zgf?ig4R2bVq0^yF9I-{~xD(WZbSiXP)M>{uZKu--LoLxdip@wJY{ZV|ocH#zpnrL0 z-tV5@`JH?2zWeUI?`>aO-`$T5C2Ah{-D&Xb0wiL&SO-u>fq)zQdgJi3pAS_u0<7V{ zGJtA*IG#Vf17JGw*kXV-C$8o?8?Y+pn=?5?SDEu|oP*`gaje2h=R77#*HZ;6NHRIIwUWd)0c#GRd5l^r8O z_XzasUL7F7MlJnR(Jg9oJfCAGT{KrTacpUwV;nu9wVEa@))`+@g=QEY zp;QxcwISVvxNaLJY}FVavZbjMTrT*o;75w(!-`9+)+edkk1fXIYEsXEMS+ABf{%@^ zKorW1Da(XeaD_6%aD;}rBKbkVSEbiajY+)-nn;}i!$#613^2x(oivN!R_WF*9ma8z zCk<#)$&l|IBXB@nFdKaK2l`pe=)Ot&i0-z5eCkGQM3_cP>1pZTXz)`og|$EfFAADp z);3|a2{zG?OQBs-qr$qcW6kJlrJ^nHSVCB*a z?1!~6`VC+|R1&6%L)ajc*(kAHK3h$!-)F2H@)^(0sIVvC?!b?Txt2Dr>d$+tg4TtR zV~olAVKr^M2`6ZFyiD6T0cqfc#g;ZM!S7}Hx$G>Q&tmTpP!9Qag6#MLtRyKQ1&t`45wI2OcBV=`Cu~Yi}$lHr8ZH(d`EO!a9-{7NI z;j^FP<2c)A{dgFweD;p@G*CZA2{5p|o-LKsoY zd^Vw%sO3HjVTo$aVpVEoh6TT3EmXJrtk?RCvaiv@<`T8a7mu1NuQB5>T&?&O!Im~= z1=>`LOCTLQ0Gkw_nr!LdA?P3$i6HdyfdJd&G+_{TT$b-fW=Ms9Qe_1tQvXA$py2ODB%;ABDiYD*b&JL~;1r$C z2-E0nx>3GSy_pKR=H?>|QPE7~FgZ#h2<)@*Ot9}}Dj1Wo{7jn;1~-(At~_RDI%m4M zIXq-0;urcq>h#c~p}FD);YpdIxiV=z&MUc9cGyIEL-XlaN|*yT6GmXZV1wXt!4|=F zf*S<42yP=ZVIN^3{8Id#g2V72t)5{xYp#X^6rmFqzotxh37(;|AwbV#JK_&IHqe(sd^15s0iLvR`rgfC0voJ8K|hz%DdbwY&8guR-E zoSIJu_ERuhuvsFVf&+pniuY=##Xo~d`sweJ->d10{d~o0t6);l5lji56TB>F=WCo= zFF2}k=M_3*htB0jbyhEkuN!Zn0V^*d;hym@)`n;+Ck+)o8 z{%J@h+aXDZftXD%@6Dv~$Iy`g4;X?eQKGPqxK5A%1%tn_qNMY;YShyUJiP$MMK6FC z4UO^&;8jDH_DFz_-2yMa93GastGxCeX;b2Xvb_YD{ zH0HIWzLWR5O7#`&QO=Cwh0Yg?Z*zWKd@^;Yv=W_{XZ$JBTl>AD7fPyIzMpWKMxsAl z$`2-|?3U1E2fX=+Vu0 oHSz$i-N$}xI9{aIH#+O$zZ$O7Q=!C^p&o2Znu*0QpA@fPAN%{3IYhPxQ^Rvp3KCZAfdh+LqgKJYk*76QD3dxcnkcP7wwMMj%@S zi1~pSsFlGNh=Ujyv=}&n3^5?)0OA-R1}Ow704bD$vO!|(6Yr`s`fg@r%x9eZfYD)d x36n6h!udIO=FQzXb+5CG*ty*5KJ&err)zprpA<|o+P-03>w5pq%UO@=0RWm&H?#l% delta 230 zcmZ3J`6gq6Nxcmd1A}rM1A_`P1A_tskR4o7l$n=a3}iC60L559Vxhqd9zb>ii0vNg z=>nuz0QpA@fPAN%{3IZsZSxMXxOW~7i|($@=;izA#k;NH98j1cTz(NJrw9WBBap2C z#QZ=E)XHEB#9j;xS`3^(22h@X1BgR_7^D!SfE|drplpyB+r+!-jJBIu8S@!8Z($N< tR`{ix6fq_HT~qJf;L4w`lY4U(M4X%1HR=53o@@ruZpPD_pR*p-0|3!!GZz2= diff --git a/DigitalData.Core.Contracts/obj/Debug/net7.0/ref/DigitalData.Core.Contracts.dll b/DigitalData.Core.Contracts/obj/Debug/net7.0/ref/DigitalData.Core.Contracts.dll index cc1d723210fd7f7251facc6acdd60b7bfe2caac6..b6270595edaff26e31c4e9db571fcf9ac95479f1 100644 GIT binary patch delta 4192 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 delta 3484 zcmbVPeQ;D)6+h>`uO(qWviXLP?rwrf0}X*tF(gnhP?~=5VNwY&XfSCJ&_>vdmY}?l zgf?ig4R2bVq0^yF9I-{~xD(WZbSiXP)M>{uZKu--LoLxdip@wJY{ZV|ocH#zpnrL0 z-tV5@`JH?2zWeUI?`>aO-`$T5C2Ah{-D&Xb0wiL&SO-u>fq)zQdgJi3pAS_u0<7V{ zGJtA*IG#Vf17JGw*kXV-C$8o?8?Y+pn=?5?SDEu|oP*`gaje2h=R77#*HZ;6NHRIIwUWd)0c#GRd5l^r8O z_XzasUL7F7MlJnR(Jg9oJfCAGT{KrTacpUwV;nu9wVEa@))`+@g=QEY zp;QxcwISVvxNaLJY}FVavZbjMTrT*o;75w(!-`9+)+edkk1fXIYEsXEMS+ABf{%@^ zKorW1Da(XeaD_6%aD;}rBKbkVSEbiajY+)-nn;}i!$#613^2x(oivN!R_WF*9ma8z zCk<#)$&l|IBXB@nFdKaK2l`pe=)Ot&i0-z5eCkGQM3_cP>1pZTXz)`og|$EfFAADp z);3|a2{zG?OQBs-qr$qcW6kJlrJ^nHSVCB*a z?1!~6`VC+|R1&6%L)ajc*(kAHK3h$!-)F2H@)^(0sIVvC?!b?Txt2Dr>d$+tg4TtR zV~olAVKr^M2`6ZFyiD6T0cqfc#g;ZM!S7}Hx$G>Q&tmTpP!9Qag6#MLtRyKQ1&t`45wI2OcBV=`Cu~Yi}$lHr8ZH(d`EO!a9-{7NI z;j^FP<2c)A{dgFweD;p@G*CZA2{5p|o-LKsoY zd^Vw%sO3HjVTo$aVpVEoh6TT3EmXJrtk?RCvaiv@<`T8a7mu1NuQB5>T&?&O!Im~= z1=>`LOCTLQ0Gkw_nr!LdA?P3$i6HdyfdJd&G+_{TT$b-fW=Ms9Qe_1tQvXA$py2ODB%;ABDiYD*b&JL~;1r$C z2-E0nx>3GSy_pKR=H?>|QPE7~FgZ#h2<)@*Ot9}}Dj1Wo{7jn;1~-(At~_RDI%m4M zIXq-0;urcq>h#c~p}FD);YpdIxiV=z&MUc9cGyIEL-XlaN|*yT6GmXZV1wXt!4|=F zf*S<42yP=ZVIN^3{8Id#g2V72t)5{xYp#X^6rmFqzotxh37(;|AwbV#JK_&IHqe(sd^15s0iLvR`rgfC0voJ8K|hz%DdbwY&8guR-E zoSIJu_ERuhuvsFVf&+pniuY=##Xo~d`sweJ->d10{d~o0t6);l5lji56TB>F=WCo= zFF2}k=M_3*htB0jbyhEkuN!Zn0V^*d;hym@)`n;+Ck+)o8 z{%J@h+aXDZftXD%@6Dv~$Iy`g4;X?eQKGPqxK5A%1%tn_qNMY;YShyUJiP$MMK6FC z4UO^&;8jDH_DFz_-2yMa93GastGxCeX;b2Xvb_YD{ zH0HIWzLWR5O7#`&QO=Cwh0Yg?Z*zWKd@^;Yv=W_{XZ$JBTl>AD7fPyIzMpWKMxsAl z$`2-|?3U1E2fX=+Vu0 oHSz$i-N$}xI9{aIH#+O$zZ$O7Q=!C^p&o2Znu*0QpA@fPAN%{3IYhPxQ^Rvp3KCZAfdh+LqgKJYk*76QD3dxcnkcP7wwMMj%@S zi1~pSsFlGNh=Ujyv=}&n3^5?)0OA-R1}Ow704bD$vO!|(6Yr`s`fg@r%x9eZfYD)d x36n6h!udIO=FQzXb+5CG*ty*5KJ&err)zprpA<|o+P-03>w5pq%UO@=0RWm&H?#l% delta 230 zcmZ3J`6gq6Nxcmd1A}rM1A_`P1A_tskR4o7l$n=a3}iC60L559Vxhqd9zb>ii0vNg z=>nuz0QpA@fPAN%{3IZsZSxMXxOW~7i|($@=;izA#k;NH98j1cTz(NJrw9WBBap2C z#QZ=E)XHEB#9j;xS`3^(22h@X1BgR_7^D!SfE|drplpyB+r+!-jJBIu8S@!8Z($N< tR`{ix6fq_HT~qJf;L4w`lY4U(M4X%1HR=53o@@ruZpPD_pR*p-0|3!!GZz2= diff --git a/DigitalData.Core.CultureServices/bin/Debug/net7.0/DigitalData.Core.CultureServices.dll b/DigitalData.Core.CultureServices/bin/Debug/net7.0/DigitalData.Core.CultureServices.dll index e5d8377fc9fdb13206012a31d2114f4dd48f8a65..abddca66b6474f39d940fa71d55e2bb59dda4e87 100644 GIT binary patch delta 105 zcmZqhY4DlQ!BVF!`EX-Tg}A`sogHTbR+)IT-I>QwxH7zMvxtNXGmD7At|gOWqyq$G z7yQ}G(bDA8{MD?^{@sj($$O;R6`+E9n4y9|)hahH-HT_P{K0JdCYNcOlV#>|0svTz BE|LHM delta 105 zcmZqhY4DlQ!Lsn4^O21`72*Qt8tzpmm`FJ-c>nRrg?Y}mHj7BOFtcn>wA(T{Mmj*? zs(u>d?kzVxW_R=kP3HEnp1eo8T>&bXAq^D-sa}57BtPHr%G}SAYf3gJ%gp5j0Mqj> A*Z=?k diff --git a/DigitalData.Core.CultureServices/bin/Debug/net7.0/DigitalData.Core.CultureServices.pdb b/DigitalData.Core.CultureServices/bin/Debug/net7.0/DigitalData.Core.CultureServices.pdb index 08876e3e95310b02e25d8a0aeed713646e6d4790..83fece5de8fe727c89a26312c1fe584fcbf9bd56 100644 GIT binary patch delta 61 zcmV-D0K)&UX|QRKd=wp^{Idvzf=q+;Hhw?um|zqjx}>p?RtFds1KybL92yn B4{QJc diff --git a/DigitalData.Core.CultureServices/obj/Debug/net7.0/DigitalData.Core.CultureServices.dll b/DigitalData.Core.CultureServices/obj/Debug/net7.0/DigitalData.Core.CultureServices.dll index e5d8377fc9fdb13206012a31d2114f4dd48f8a65..abddca66b6474f39d940fa71d55e2bb59dda4e87 100644 GIT binary patch delta 105 zcmZqhY4DlQ!BVF!`EX-Tg}A`sogHTbR+)IT-I>QwxH7zMvxtNXGmD7At|gOWqyq$G z7yQ}G(bDA8{MD?^{@sj($$O;R6`+E9n4y9|)hahH-HT_P{K0JdCYNcOlV#>|0svTz BE|LHM delta 105 zcmZqhY4DlQ!Lsn4^O21`72*Qt8tzpmm`FJ-c>nRrg?Y}mHj7BOFtcn>wA(T{Mmj*? zs(u>d?kzVxW_R=kP3HEnp1eo8T>&bXAq^D-sa}57BtPHr%G}SAYf3gJ%gp5j0Mqj> A*Z=?k diff --git a/DigitalData.Core.CultureServices/obj/Debug/net7.0/DigitalData.Core.CultureServices.pdb b/DigitalData.Core.CultureServices/obj/Debug/net7.0/DigitalData.Core.CultureServices.pdb index 08876e3e95310b02e25d8a0aeed713646e6d4790..83fece5de8fe727c89a26312c1fe584fcbf9bd56 100644 GIT binary patch delta 61 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 delta 3484 zcmbVPeQ;D)6+h>`uO(qWviXLP?rwrf0}X*tF(gnhP?~=5VNwY&XfSCJ&_>vdmY}?l zgf?ig4R2bVq0^yF9I-{~xD(WZbSiXP)M>{uZKu--LoLxdip@wJY{ZV|ocH#zpnrL0 z-tV5@`JH?2zWeUI?`>aO-`$T5C2Ah{-D&Xb0wiL&SO-u>fq)zQdgJi3pAS_u0<7V{ zGJtA*IG#Vf17JGw*kXV-C$8o?8?Y+pn=?5?SDEu|oP*`gaje2h=R77#*HZ;6NHRIIwUWd)0c#GRd5l^r8O z_XzasUL7F7MlJnR(Jg9oJfCAGT{KrTacpUwV;nu9wVEa@))`+@g=QEY zp;QxcwISVvxNaLJY}FVavZbjMTrT*o;75w(!-`9+)+edkk1fXIYEsXEMS+ABf{%@^ zKorW1Da(XeaD_6%aD;}rBKbkVSEbiajY+)-nn;}i!$#613^2x(oivN!R_WF*9ma8z zCk<#)$&l|IBXB@nFdKaK2l`pe=)Ot&i0-z5eCkGQM3_cP>1pZTXz)`og|$EfFAADp z);3|a2{zG?OQBs-qr$qcW6kJlrJ^nHSVCB*a z?1!~6`VC+|R1&6%L)ajc*(kAHK3h$!-)F2H@)^(0sIVvC?!b?Txt2Dr>d$+tg4TtR zV~olAVKr^M2`6ZFyiD6T0cqfc#g;ZM!S7}Hx$G>Q&tmTpP!9Qag6#MLtRyKQ1&t`45wI2OcBV=`Cu~Yi}$lHr8ZH(d`EO!a9-{7NI z;j^FP<2c)A{dgFweD;p@G*CZA2{5p|o-LKsoY zd^Vw%sO3HjVTo$aVpVEoh6TT3EmXJrtk?RCvaiv@<`T8a7mu1NuQB5>T&?&O!Im~= z1=>`LOCTLQ0Gkw_nr!LdA?P3$i6HdyfdJd&G+_{TT$b-fW=Ms9Qe_1tQvXA$py2ODB%;ABDiYD*b&JL~;1r$C z2-E0nx>3GSy_pKR=H?>|QPE7~FgZ#h2<)@*Ot9}}Dj1Wo{7jn;1~-(At~_RDI%m4M zIXq-0;urcq>h#c~p}FD);YpdIxiV=z&MUc9cGyIEL-XlaN|*yT6GmXZV1wXt!4|=F zf*S<42yP=ZVIN^3{8Id#g2V72t)5{xYp#X^6rmFqzotxh37(;|AwbV#JK_&IHqe(sd^15s0iLvR`rgfC0voJ8K|hz%DdbwY&8guR-E zoSIJu_ERuhuvsFVf&+pniuY=##Xo~d`sweJ->d10{d~o0t6);l5lji56TB>F=WCo= zFF2}k=M_3*htB0jbyhEkuN!Zn0V^*d;hym@)`n;+Ck+)o8 z{%J@h+aXDZftXD%@6Dv~$Iy`g4;X?eQKGPqxK5A%1%tn_qNMY;YShyUJiP$MMK6FC z4UO^&;8jDH_DFz_-2yMa93GastGxCeX;b2Xvb_YD{ zH0HIWzLWR5O7#`&QO=Cwh0Yg?Z*zWKd@^;Yv=W_{XZ$JBTl>AD7fPyIzMpWKMxsAl z$`2-|?3U1E2fX=+Vu0 oHSz$i-N$}xI9{aIH#+O$zZ$O7Q=!C^p&o2Znu*0QpA@fPAN%{3IYhPxQ^Rvp3KCZAfdh+LqgKJYk*76QD3dxcnkcP7wwMMj%@S zi1~pSsFlGNh=Ujyv=}&n3^5?)0OA-R1}Ow704bD$vO!|(6Yr`s`fg@r%x9eZfYD)d x36n6h!udIO=FQzXb+5CG*ty*5KJ&err)zprpA<|o+P-03>w5pq%UO@=0RWm&H?#l% delta 230 zcmZ3J`6gq6Nxcmd1A}rM1A_`P1A_tskR4o7l$n=a3}iC60L559Vxhqd9zb>ii0vNg z=>nuz0QpA@fPAN%{3IZsZSxMXxOW~7i|($@=;izA#k;NH98j1cTz(NJrw9WBBap2C z#QZ=E)XHEB#9j;xS`3^(22h@X1BgR_7^D!SfE|drplpyB+r+!-jJBIu8S@!8Z($N< tR`{ix6fq_HT~qJf;L4w`lY4U(M4X%1HR=53o@@ruZpPD_pR*p-0|3!!GZz2= diff --git a/DigitalData.Core.Infrastructure/bin/Debug/net7.0/DigitalData.Core.Infrastructure.dll b/DigitalData.Core.Infrastructure/bin/Debug/net7.0/DigitalData.Core.Infrastructure.dll index 7e103c97c5ec8719daf6bc1cc2fa233763142114..7fa5d64cf7c252f2896b3c88ca5921656f363aef 100644 GIT binary patch delta 105 zcmZpOX^5H7!LlPf`uE1323di_h6*Vw7bH106bW8FbBQZsvy7Y%JBx{+`_9QZssREO z?rzt)rY-bcBrI?s_4TaDlh3HODnJF#!UTb;E$uH>@bs5u^6gpgzjdmXY&eXYpg#nK3y>H9#QA zS)-?af1`g}vd+8*XI~whd`7iZ0V=qk4Jrsyz0GZ27w1AA%kR6Fd2cRM>t_c5(swMi diff --git a/DigitalData.Core.Infrastructure/bin/Debug/net7.0/DigitalData.Core.Infrastructure.pdb b/DigitalData.Core.Infrastructure/bin/Debug/net7.0/DigitalData.Core.Infrastructure.pdb index c99b3e4b6f99a2047f7dd09881fd7f17fb441cec..de15ccc12d00dc8a06204c92847e3471404ba6b8 100644 GIT binary patch delta 61 zcmV-D0K)&EYM^S6d=z*`M%N0Kp-rL_5Wr>Ynv*mUN4c?(QwJCp1KycLJ2ESRy7QwJC!8E=LFpa1}pa^V delta 43 zcmV+`0M!4g=myy529SIVfS+=-wO`x_0RaITku4gLqWu8|v!DSX0)rC-w-W>b7qE_h B4~75$ diff --git a/DigitalData.Core.Infrastructure/obj/Debug/net7.0/DigitalData.Core.Infrastructure.dll b/DigitalData.Core.Infrastructure/obj/Debug/net7.0/DigitalData.Core.Infrastructure.dll index 7e103c97c5ec8719daf6bc1cc2fa233763142114..7fa5d64cf7c252f2896b3c88ca5921656f363aef 100644 GIT binary patch delta 105 zcmZpOX^5H7!LlPf`uE1323di_h6*Vw7bH106bW8FbBQZsvy7Y%JBx{+`_9QZssREO z?rzt)rY-bcBrI?s_4TaDlh3HODnJF#!UTb;E$uH>@bs5u^6gpgzjdmXY&eXYpg#nK3y>H9#QA zS)-?af1`g}vd+8*XI~whd`7iZ0V=qk4Jrsyz0GZ27w1AA%kR6Fd2cRM>t_c5(swMi diff --git a/DigitalData.Core.Infrastructure/obj/Debug/net7.0/DigitalData.Core.Infrastructure.pdb b/DigitalData.Core.Infrastructure/obj/Debug/net7.0/DigitalData.Core.Infrastructure.pdb index c99b3e4b6f99a2047f7dd09881fd7f17fb441cec..de15ccc12d00dc8a06204c92847e3471404ba6b8 100644 GIT binary patch delta 61 zcmV-D0K)&EYM^S6d=z*`M%N0Kp-rL_5Wr>Ynv*mUN4c?(QwJCp1KycLJ2ESRy7QwJC!8E=LFpa1}p