From 6d0b501ce44de3b84eff61aa18a89b80ea33067a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sat, 24 Dec 2016 23:26:54 +0300 Subject: [PATCH] Listed user and roles in console application. --- .../AbpDesk/ConsoleDemo/Program.cs | 10 +++---- .../AbpDesk/ConsoleDemo/UserLister.cs | 26 ++++++++++++++++--- .../Volo/Abp/Identity/IdentityUser.cs | 2 +- src/Volo.Abp/Volo/Abp/Uow/IUnitOfWork.cs | 2 ++ 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/Program.cs b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/Program.cs index fa7d1586da..1b20d9c61b 100644 --- a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/Program.cs +++ b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/Program.cs @@ -17,11 +17,11 @@ namespace AbpDesk.ConsoleDemo .ServiceProvider .GetRequiredService() .List(); - - //application - // .ServiceProvider - // .GetRequiredService() - // .List(); + + application + .ServiceProvider + .GetRequiredService() + .List(); Console.ReadLine(); diff --git a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs index 40170088e4..4ac9e130c5 100644 --- a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs +++ b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs @@ -1,6 +1,9 @@ using System; using System.Linq; +using Volo.Abp.Domain.Repositories; using Volo.Abp.Identity; +using Volo.Abp.Threading; +using Volo.Abp.Uow; using Volo.DependencyInjection; namespace AbpDesk.ConsoleDemo @@ -8,17 +11,34 @@ namespace AbpDesk.ConsoleDemo public class UserLister : ITransientDependency { private readonly IdentityUserManager _userManager; + private readonly IUnitOfWorkManager _unitOfWorkManager; + private readonly IQueryableRepository _userRepository; - public UserLister(IdentityUserManager userManager) + public UserLister( + IdentityUserManager userManager, + IQueryableRepository userRepository, + IUnitOfWorkManager unitOfWorkManager) { _userManager = userManager; + _userRepository = userRepository; + _unitOfWorkManager = unitOfWorkManager; } public void List() { - foreach (var user in _userManager.Users.ToList()) + using (var uow = _unitOfWorkManager.Begin()) { - Console.WriteLine(user); + foreach (var user in _userRepository.ToList()) + { + Console.WriteLine("# " + user); + + foreach (var roleName in AsyncHelper.RunSync(() => _userManager.GetRolesAsync(user))) + { + Console.WriteLine(" - " + roleName); + } + } + + AsyncHelper.RunSync(() => uow.CompleteAsync()); } } } diff --git a/src/Volo.Abp.Identity/Volo/Abp/Identity/IdentityUser.cs b/src/Volo.Abp.Identity/Volo/Abp/Identity/IdentityUser.cs index 4f66d60150..57adc8969d 100644 --- a/src/Volo.Abp.Identity/Volo/Abp/Identity/IdentityUser.cs +++ b/src/Volo.Abp.Identity/Volo/Abp/Identity/IdentityUser.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Security.Claims; -using System.Threading; using JetBrains.Annotations; using Microsoft.AspNetCore.Identity; using Volo.Abp.Domain.Entities; @@ -14,6 +13,7 @@ namespace Volo.Abp.Identity //TODO: Should set Id to a GUID (where? on repository?) //TODO: Properties should not be public! //TODO: Add Name/Surname/FullName? + //TODO: Set max lenght for Id (set a default max lenght by default, like 64) public class IdentityUser : AggregateRoot, IHasConcurrencyStamp { diff --git a/src/Volo.Abp/Volo/Abp/Uow/IUnitOfWork.cs b/src/Volo.Abp/Volo/Abp/Uow/IUnitOfWork.cs index 9b446fc3c0..a919dc6b32 100644 --- a/src/Volo.Abp/Volo/Abp/Uow/IUnitOfWork.cs +++ b/src/Volo.Abp/Volo/Abp/Uow/IUnitOfWork.cs @@ -7,6 +7,8 @@ using Volo.DependencyInjection; namespace Volo.Abp.Uow { + //TODO: Sync versions of methods! + public interface IUnitOfWork : IDisposable, IServiceProviderAccessor, ITransientDependency { [CanBeNull]