From 0a5a48cf1d2e45f94e5f4e2aecf8f34225e13bcb Mon Sep 17 00:00:00 2001 From: Suha Can Date: Mon, 29 Nov 2010 14:13:02 -0800 Subject: [PATCH] PERF: Fixing 16595 Verify User Unicity --HG-- branch : perf --- .../Orchard.Users/Services/UserService.cs | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Users/Services/UserService.cs b/src/Orchard.Web/Modules/Orchard.Users/Services/UserService.cs index ae4951d35..a1ed2f3fc 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Services/UserService.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Services/UserService.cs @@ -38,32 +38,30 @@ namespace Orchard.Users.Services { public ILogger Logger { get; set; } public string VerifyUserUnicity(string userName, string email) { - IEnumerable allUsers = _contentManager.Query().List(); + string normalizedUserName = userName.ToLower(); - foreach (var user in allUsers) { - if (String.Equals(userName.ToLower(), user.NormalizedUserName, StringComparison.OrdinalIgnoreCase)) { - return "A user with that name already exists"; - } - if (String.Equals(email, user.Email, StringComparison.OrdinalIgnoreCase)) { - return "A user with that email already exists"; - } + if (_contentManager.Query() + .Where(user => + user.NormalizedUserName == normalizedUserName || + user.Email == email) + .List().Any()) { + return "User with that username and/or email already exists."; } return null; } public string VerifyUserUnicity(int id, string userName, string email) { - IEnumerable allUsers = _contentManager.Query().List(); - foreach (var user in allUsers) { - if (user.Id == id) - continue; - if (String.Equals(userName.ToLower(), user.NormalizedUserName, StringComparison.OrdinalIgnoreCase)) { - return "A user with that name already exists"; - } - if (String.Equals(email, user.Email, StringComparison.OrdinalIgnoreCase)) { - return "A user with that email already exists"; - } + string normalizedUserName = userName.ToLower(); + + if (_contentManager.Query() + .Where(user => + user.NormalizedUserName == normalizedUserName || + user.Email == email) + .List().Any(user => user.Id != id)) { + return "User with that username and/or email already exists."; } + return null; }