From 9ab90078217bba723136b41497328a2c1933a715 Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 19 Jun 2017 18:45:38 +1000 Subject: [PATCH] SQL fix for SQLCE for user states --- .../Repositories/UserRepository.cs | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs index 4f668671a6..380757fed5 100644 --- a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs @@ -79,22 +79,25 @@ namespace Umbraco.Core.Persistence.Repositories public IDictionary GetUserStates() { - var sql = @"SELECT -(SELECT COUNT(id) FROM umbracoUser) AS CountOfAll, -(SELECT COUNT(id) FROM umbracoUser WHERE userDisabled = 0 AND userNoConsole = 0 AND lastLoginDate IS NOT NULL) AS CountOfActive, -(SELECT COUNT(id) FROM umbracoUser WHERE userDisabled = 1) AS CountOfDisabled, -(SELECT COUNT(id) FROM umbracoUser WHERE userNoConsole = 1) AS CountOfLockedOut, -(SELECT COUNT(id) FROM umbracoUser WHERE lastLoginDate IS NULL AND userDisabled = 1 AND invitedDate IS NOT NULL) AS CountOfInvited"; + var sql = @"SELECT 'CountOfAll' AS name, COUNT(id) AS num FROM umbracoUser +UNION +SELECT 'CountOfActive' AS name, COUNT(id) AS num FROM umbracoUser WHERE userDisabled = 0 AND userNoConsole = 0 AND lastLoginDate IS NOT NULL +UNION +SELECT 'CountOfDisabled' AS name, COUNT(id) AS num FROM umbracoUser WHERE userDisabled = 1 +UNION +SELECT 'CountOfLockedOut' AS name, COUNT(id) AS num FROM umbracoUser WHERE userNoConsole = 1 +UNION +SELECT 'CountOfInvited' AS name, COUNT(id) AS num FROM umbracoUser WHERE lastLoginDate IS NULL AND userDisabled = 1 AND invitedDate IS NOT NULL"; - var result = Database.First(sql); + var result = Database.Fetch(sql); return new Dictionary { - {UserState.All, result.CountOfAll}, - {UserState.Active, result.CountOfActive}, - {UserState.Disabled, result.CountOfDisabled}, - {UserState.Invited, result.CountOfInvited}, - {UserState.LockedOut, result.CountOfLockedOut} + {UserState.All, result[0].num}, + {UserState.Active, result[1].num}, + {UserState.Disabled, result[2].num}, + {UserState.LockedOut, result[3].num}, + {UserState.Invited, result[4].num} }; }