From 83a04db2114657b1238f7a9ec93ca3b4c4c88210 Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Fri, 9 Dec 2022 12:13:28 +0100 Subject: [PATCH] better conversion to IdentityResult from zero Result --- zero.Raven/Identity/RavenRoleStore(TRole).cs | 14 +++++++++++--- zero.Raven/Identity/RavenUserStore(TUser).cs | 13 ++++++++++--- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/zero.Raven/Identity/RavenRoleStore(TRole).cs b/zero.Raven/Identity/RavenRoleStore(TRole).cs index 89c11852..4faa8b26 100644 --- a/zero.Raven/Identity/RavenRoleStore(TRole).cs +++ b/zero.Raven/Identity/RavenRoleStore(TRole).cs @@ -3,6 +3,7 @@ using Raven.Client.Documents; using Raven.Client.Documents.Linq; using Raven.Client.Exceptions; using System.Security.Claims; +using Microsoft.AspNetCore.Mvc.ApplicationModels; using zero.Raven; namespace zero.Identity; @@ -26,9 +27,16 @@ public class RavenRoleStore : private IdentityResult Fail(Result result) { - ResultError error = result.Errors.FirstOrDefault() ?? new("unknown", "Unknown error"); - string message = error.Message + "(key: " + error.Property + ")"; - return IdentityResult.Failed(new IdentityError { Description = message }); + IdentityError[] errors = new IdentityError[result.Errors.Count]; + + int index = 0; + foreach (ResultError error in result.Errors) + { + string message = error.Message + "(key: " + error.Property + ")"; + errors[index++] = new() { Code = "zero/raven/500", Description = message }; + } + + return IdentityResult.Failed(errors); } diff --git a/zero.Raven/Identity/RavenUserStore(TUser).cs b/zero.Raven/Identity/RavenUserStore(TUser).cs index 5719f42f..9c27a825 100644 --- a/zero.Raven/Identity/RavenUserStore(TUser).cs +++ b/zero.Raven/Identity/RavenUserStore(TUser).cs @@ -42,9 +42,16 @@ public partial class RavenUserStore : private IdentityResult Fail(Result result) { - ResultError error = result.Errors.FirstOrDefault() ?? new("unknown", "Unknown error"); - string message = error.Message + "(key: " + error.Property + ")"; - return IdentityResult.Failed(new IdentityError { Description = message }); + IdentityError[] errors = new IdentityError[result.Errors.Count]; + + int index = 0; + foreach (ResultError error in result.Errors) + { + string message = error.Message + "(key: " + error.Property + ")"; + errors[index++] = new() { Code = "zero/raven/500", Description = message }; + } + + return IdentityResult.Failed(errors); } ///