public async Task <IEnumerable <RoleDto> > HandleAsync(RoleListQuery query, CancellationToken cancellationToken = default(CancellationToken)) { var roleDictionary = new Dictionary <Guid, RoleDto>(); using (var conn = new SqlConnection(_configuration.HouseholdConnectionString)) { await conn.OpenAsync(cancellationToken); var permissions = await conn.QueryAsync <RoleDto, Guid, RoleDto>(@" SELECT r.Id, r.Code, r.Name, r.Version FROM Roles r LEFT JOIN RolePermissions p ON (p.RoleId = r.Id) ", (role, permissionId) => { if (!roleDictionary.TryGetValue(role.Id, out RoleDto roleEntry)) { roleEntry = role; roleEntry.PermissionIds = new List <Guid>(); roleDictionary.Add(roleEntry.Id, roleEntry); } roleEntry.PermissionIds.Add(permissionId); return(roleEntry); }, splitOn : "PermissionId"); return(permissions); } }
public async Task <ActionResult <PaginationList <Role> > > GetRolesAsync( [FromServices] RoleListQuery roleQuery, int?page = null, int?itemCount = null) { var items = await roleQuery.Paginate(); return(items); }
public void Retrieve_GivenRoleListQueryAndNoItemsPresent_ContextShouldBeQueriedAndNumberOfRolesReturned() { var set = new TestDbSet <Role>(); A.CallTo(() => _fakeContext.Set <Role>()).Returns(set); var query = new RoleListQuery(); var role = _queryHandler.Retrieve(query); role.Items.Count().Should().Be(0); }
public async Task <IEnumerable <RoleDto> > HandleAsync(RoleListQuery query, CancellationToken cancellationToken = default(CancellationToken)) { var roles = await _db.Roles.Select(e => new RoleDto { Id = e.Id, Code = e.Code, Name = e.Name, PermissionIds = e.RolePermissions.Select(o => o.PermissionId).ToList(), Version = e.Version }).AsNoTracking().ToListAsync(); return(roles); }
/// <summary> /// /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <PageResultDto <RoleDto> > Handle(RoleListQuery request, CancellationToken cancellationToken) { var sql = @" select Id,Name,DisplayName from SystemRole;"; var roles = await _dapper.QueryAsync <RoleDto>(sql); return(new PageResultDto <RoleDto> { State = 1, Result = new ResultPage <RoleDto> { TotalCount = roles.Count(), Data = roles.ToList() } }); }
public void Retrieve_GivenRoleListQuery_ContextShouldBeQueriedAndRolesReturned() { var id = 1; var set = new TestDbSet <Role> { new Role { RoleId = id, Description = "First" } }; A.CallTo(() => _fakeContext.Set <Role>()).Returns(set); var query = new RoleListQuery { RoleId = id }; var role = _queryHandler.Retrieve(query); role.Should().NotBeNull(); role.Items.Count().Should().Be(1); }
public Roles GetRoles() { var roleQuery = new RoleListQuery(); return(_queryDispatcher.Dispatch <RoleListQuery, Roles>(roleQuery)); }