From df1eab861b891cfb33b8d2f71da421ec5526ac99 Mon Sep 17 00:00:00 2001 From: HamidMolareza Date: Sat, 21 Dec 2024 19:27:18 +0330 Subject: [PATCH 1/2] fix: minor updates --- src/OnRails/Extensions/Bind/BindExtensions.cs | 4 +- .../ForEach/ForEachExtensions.Async.cs | 4 +- .../Extensions/Map/MapExtensions.Async.cs | 46 +++++++++---------- .../Extensions/OnFail/OnFailExtensions.Tee.cs | 2 +- .../OperateWhenExtensions.Async.cs | 16 +++---- .../SelectResultsExtensions.Async.cs | 8 ++-- 6 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/OnRails/Extensions/Bind/BindExtensions.cs b/src/OnRails/Extensions/Bind/BindExtensions.cs index e371365..2f4280d 100644 --- a/src/OnRails/Extensions/Bind/BindExtensions.cs +++ b/src/OnRails/Extensions/Bind/BindExtensions.cs @@ -12,7 +12,7 @@ public static async Task Bind( int numOfTry = 1 ) { foreach (var task in tasks) { - var result = await TryExtensions.Try(task, numOfTry); + var result = await task.Try(numOfTry); if (!result.Success) return result; } @@ -28,7 +28,7 @@ public static Task>> Bind( var result = new List(items.Count); foreach (var task in items) { - var taskResult = await TryExtensions.Try(task, numOfTry); + var taskResult = await task.Try(numOfTry); if (!taskResult.Success) return Result>.Fail(taskResult.Detail as ErrorDetail); result.Add(taskResult.Value!); diff --git a/src/OnRails/Extensions/ForEach/ForEachExtensions.Async.cs b/src/OnRails/Extensions/ForEach/ForEachExtensions.Async.cs index 1cd2e5b..11d4701 100644 --- a/src/OnRails/Extensions/ForEach/ForEachExtensions.Async.cs +++ b/src/OnRails/Extensions/ForEach/ForEachExtensions.Async.cs @@ -41,7 +41,7 @@ public static Task ForEachUntilIsSuccess( this Task> source, Func> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(async items => { foreach (var item in items) { var result = await item.Try(function, numOfTry) @@ -58,7 +58,7 @@ public static Task ForEachUntilIsSuccess( Func> function, int numOfTry = 1 ) => - TryExtensions.Try(source, numOfTry) + source.Try(numOfTry) .OnSuccess(async items => { foreach (var item in items) { var result = await item.OnSuccess(function, numOfTry) diff --git a/src/OnRails/Extensions/Map/MapExtensions.Async.cs b/src/OnRails/Extensions/Map/MapExtensions.Async.cs index 17afe5f..77b6ac0 100644 --- a/src/OnRails/Extensions/Map/MapExtensions.Async.cs +++ b/src/OnRails/Extensions/Map/MapExtensions.Async.cs @@ -10,7 +10,7 @@ public static Task> Map( Func onSuccessFunction, Func, Result> onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessFunction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -19,7 +19,7 @@ public static Task> Map( Func onSuccessFunction, Func> onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessFunction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -27,7 +27,7 @@ public static Task> Map( this Task source, Func function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(function, numOfTry); public static Task Map( @@ -35,7 +35,7 @@ public static Task Map( Action onSuccessAction, Func onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessAction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -44,7 +44,7 @@ public static Task Map( Action onSuccessAction, Func onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessAction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -53,7 +53,7 @@ public static Task Map( Action onSuccessFunction, Func onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessFunction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -62,7 +62,7 @@ public static Task> Map( Func onSuccessFunction, Func, Result> onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessFunction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -71,7 +71,7 @@ public static Task> Map( Func onSuccessFunction, Func> onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessFunction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -79,14 +79,14 @@ public static Task> Map( this Task source, Func function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(function, numOfTry); public static Task> Map( this Task source, Func> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(function, numOfTry); public static Task> Map( @@ -99,14 +99,14 @@ public static Task> Map( this Task source, Func> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(function, numOfTry); public static Task> Map( this Task source, Func>> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(function, numOfTry); public static Task> Map( @@ -121,7 +121,7 @@ public static Task Map( Action onSuccessAction, Func onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessAction) .OnFail(onFailFunction); @@ -130,7 +130,7 @@ public static Task Map( Action onSuccessAction, Func onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessAction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -139,7 +139,7 @@ public static Task> Map( Func> onSuccessFunction, Func, Result> onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessFunction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -148,7 +148,7 @@ public static Task> Map( Func> onSuccessFunction, Func, Result> onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessFunction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -157,7 +157,7 @@ public static Task> Map( Func> onSuccessFunction, Func> onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessFunction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -166,7 +166,7 @@ public static Task Map( Func onSuccessFunction, Func onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessFunction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -175,7 +175,7 @@ public static Task> Map( Func> onSuccessFunction, Func, Result> onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessFunction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -184,7 +184,7 @@ public static Task> Map( Func> onSuccessFunction, Func> onFailFunction, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(onSuccessFunction, numOfTry) .OnFail(onFailFunction, numOfTry); @@ -204,7 +204,7 @@ public static Task> Map( this Task source, Func> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(result => result.Try(function, numOfTry)); public static Task> Map( @@ -217,14 +217,14 @@ public static Task> Map( this Task source, Func>> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(result => result.Try(function, numOfTry)); public static Task> Map( this Task source, Func> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(result => result.Try(function, numOfTry)); public static Task> Map( diff --git a/src/OnRails/Extensions/OnFail/OnFailExtensions.Tee.cs b/src/OnRails/Extensions/OnFail/OnFailExtensions.Tee.cs index 9a3c5a8..2e3af77 100644 --- a/src/OnRails/Extensions/OnFail/OnFailExtensions.Tee.cs +++ b/src/OnRails/Extensions/OnFail/OnFailExtensions.Tee.cs @@ -69,7 +69,7 @@ public static async Task OnFailTee( var result = await TryExtensions.Try(source, numOfTry); return result.Success ? result - : await TryExtensions.Try(task, numOfTry); + : await task.Try(numOfTry); } public static Task OnFailTee( diff --git a/src/OnRails/Extensions/OperateWhen/OperateWhenExtensions.Async.cs b/src/OnRails/Extensions/OperateWhen/OperateWhenExtensions.Async.cs index 71cce59..a948b88 100644 --- a/src/OnRails/Extensions/OperateWhen/OperateWhenExtensions.Async.cs +++ b/src/OnRails/Extensions/OperateWhen/OperateWhenExtensions.Async.cs @@ -46,7 +46,7 @@ public static Task> OperateWhen( bool condition, Func> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(t => t.OperateWhen(condition, function, numOfTry), numOfTry: 1); public static Task> OperateWhen( @@ -62,7 +62,7 @@ public static Task> OperateWhen( bool condition, Func>> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(t => t.OperateWhen(condition, function, numOfTry), numOfTry: 1); public static Task> OperateWhen( @@ -70,7 +70,7 @@ public static Task> OperateWhen( bool condition, Func>> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(t => t.OperateWhen(condition, function, numOfTry), numOfTry: 1); public static Task> OperateWhen( @@ -94,7 +94,7 @@ public static Task> OperateWhen( bool condition, Func> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(t => t.OperateWhen(condition, function, numOfTry), numOfTry: 1); public static Task> OperateWhen( @@ -102,7 +102,7 @@ public static Task> OperateWhen( Func predicate, Func> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(t => t.OperateWhen(predicate, function, numOfTry), numOfTry: 1); public static Task> OperateWhen( @@ -110,7 +110,7 @@ public static Task> OperateWhen( Func predicate, Func> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(t => t.OperateWhen(predicate, function, numOfTry), numOfTry: 1); public static async Task> OperateWhen( @@ -178,7 +178,7 @@ public static Task> OperateWhen( Func predicate, Func>> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(t => t.OperateWhen(predicate, function, numOfTry), numOfTry: 1); public static Task> OperateWhen( @@ -186,7 +186,7 @@ public static Task> OperateWhen( Func predicate, Func>> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(t => t.OperateWhen(predicate, function, numOfTry), numOfTry: 1); public static async Task> OperateWhen( diff --git a/src/OnRails/Extensions/SelectResults/SelectResultsExtensions.Async.cs b/src/OnRails/Extensions/SelectResults/SelectResultsExtensions.Async.cs index 964e7ce..0fbf5e4 100644 --- a/src/OnRails/Extensions/SelectResults/SelectResultsExtensions.Async.cs +++ b/src/OnRails/Extensions/SelectResults/SelectResultsExtensions.Async.cs @@ -10,7 +10,7 @@ public static Task>> SelectResults( this Task> source, Func> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(items => { var list = items.ToList(); var selectedResult = new List(list.Count); @@ -50,7 +50,7 @@ public static Task>> SelectResults( this Task> source, Func>> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(async items => { var list = items.ToList(); var selectedResult = new List(list.Count); @@ -70,7 +70,7 @@ public static Task>> SelectResults( this Task> source, Func function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(items => { var list = items.ToList(); var selectedResult = new List(list.Count); @@ -110,7 +110,7 @@ public static Task>> SelectResults( this Task> source, Func> function, int numOfTry = 1 - ) => TryExtensions.Try(source, numOfTry) + ) => source.Try(numOfTry) .OnSuccess(async items => { var list = items.ToList(); var selectedResult = new List(list.Count); From 2b8a6752c092318c82b9e308066f2f48042e3358 Mon Sep 17 00:00:00 2001 From: HamidMolareza Date: Sat, 21 Dec 2024 22:10:49 +0330 Subject: [PATCH 2/2] feat(ResultDetail): add `ToStringViewModel` --- src/OnRails/ResultDetails/ResultDetail.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/OnRails/ResultDetails/ResultDetail.cs b/src/OnRails/ResultDetails/ResultDetail.cs index d9449a5..0eccec0 100644 --- a/src/OnRails/ResultDetails/ResultDetail.cs +++ b/src/OnRails/ResultDetails/ResultDetail.cs @@ -50,6 +50,17 @@ public List GetMoreDetailProperties(string? name = null) { { nameof(Message), Message } }; + public virtual string ToStringViewModel() { + var sb = new StringBuilder(); + sb.AppendLine(Message is null ? Title : $"{Title}: {Message}"); + + var customFields = CustomFieldsToString(); + if (!string.IsNullOrEmpty(customFields)) + sb.AppendLine(customFields); + + return sb.ToString(); + } + public override string ToString() { var sb = new StringBuilder();