示例#1
0
        public async Task <IActionResult> List()
        {
            var query    = new ListUsersQuery();
            var response = await Mediator.Send(query);

            return(Ok(response));
        }
        public async Task <ActionResult <List <UserViewModel> > > ListUsers(CancellationToken ct)
        {
            var usersListQuery = new ListUsersQuery();
            var usersList      = await Mediator.Send(usersListQuery);

            return(Mapper.Map <List <User>, List <UserViewModel> >(usersList));
        }
示例#3
0
 public async Task <List <UserDTO> > Handle(ListUsersQuery request, CancellationToken cancellationToken)
 {
     return(await _context.Usuarios
            .OrderBy(u => u.Username)
            .ProjectTo <UserDTO>(_mapper.ConfigurationProvider)
            .ToListAsync(cancellationToken));
 }
示例#4
0
        public async Task ListUsersQuery_returns_a_list_of_users_when_available()
        {
            //Arrange
            var userId1 = Guid.NewGuid();
            var userId2 = Guid.NewGuid();
            var userId3 = Guid.NewGuid();
            IEnumerable <ListUsersResponse> response;

            using (var db = MockDbContext())
            {
                db.Users.RemoveRange(db.Users);
                db.Users.Add(new User {
                    Id = userId1, Name = "Tester1", Email = "*****@*****.**"
                });
                db.Users.Add(new User {
                    Id = userId2, Name = "Tester2", Email = "*****@*****.**"
                });
                db.Users.Add(new User {
                    Id = userId3, Name = "Tester3", Email = "*****@*****.**"
                });
                db.SaveChanges();
            }

            using (var db = MockDbContext())
            {
                var request = new ListUsersQuery();
                var handler = new ListUsersQueryHandler(db);

                //Act
                response = await handler.Handle(request, CancellationToken.None);
            }

            //Assert
            response.Count().Should().Be(3);
        }
        public async Task <ActionResult <UserData[]> > List([FromQuery] ListUsersQuery model)
        {
            if (model == null)
            {
                return(BadRequest());
            }

            model.EnsurePaging(ListUsersQuery.DefaultPageSize, _settingsProvider.MaxPageSize());

            var result = await _queryDispatcher.DispatchAsync(model, HttpContext.RequestAborted);

            return(result.Items ?? Array.Empty <UserData>());
        }
示例#6
0
        public async Task <IEnumerable <UserDto> > Handle(ListUsersQuery query, CancellationToken cancellationToken = default)
        {
            var users = await _context.Users.AsNoTracking()
                        .ProjectTo <UserDto>(_mapper.ConfigurationProvider)
                        .ToListAsync(cancellationToken);

            var online = _connectionHub.ConnectedIds();

            foreach (var user in users.Where(u => u.Id == _operationContext.Session.UserId || online.Contains(u.Id)))
            {
                user.IsOnline = true;
            }

            return(users);
        }
        public async Task <IEnumerable <ListUsersResponse> > Handle(ListUsersQuery request, CancellationToken cancellationToken)
        {
            var users = await _db.Users
                        .Select(u => new ListUsersResponse {
                Id = u.Id, Name = u.Name, Email = u.Email
            })
                        .ToListAsync();

            if (users.Any())
            {
                return(users);
            }
            else
            {
                return(new List <ListUsersResponse>());
            }
        }
示例#8
0
        public async Task ListUsersQuery_returns_a_blanklist_when_table_is_empty()
        {
            //Arrange
            IEnumerable <ListUsersResponse> response;

            using (var db = MockDbContext())
            {
                db.Users.RemoveRange(db.Users);
                db.SaveChanges();

                var request = new ListUsersQuery();
                var handler = new ListUsersQueryHandler(db);

                //Act
                response = await handler.Handle(request, CancellationToken.None);
            }

            //Assert
            response.Count().Should().Be(0);
        }
示例#9
0
        public void ExtendedValidationAttribute_CustomTextLocalizer()
        {
            var command = new ListUsersQuery
            {
                OrderColumns = new[] { "" }
            };

            var validationEx = Assert.Throws <ValidationException>(() => DataAnnotationsValidator.Validate(command));

            Assert.IsType <ItemsRequiredAttribute>(validationEx.ValidationAttribute);
            Assert.Equal(new[] { nameof(command.OrderColumns) }, validationEx.ValidationResult.MemberNames);

            string?textToLocalize = null;

            var validationAttribute   = (ExtendedValidationAttribute)validationEx.ValidationAttribute;
            var formattedErrorMessage = validationAttribute.FormatErrorMessage(nameof(command.OrderColumns), new DelegatedTextLocalizer((hint, args) =>
            {
                textToLocalize = hint;
                return(args != null ? NullTextLocalizer.Instance[hint, args] : NullTextLocalizer.Instance[hint]);
            }));

            Assert.Equal("The field {0} must contain non-empty strings.", textToLocalize);
            Assert.Equal($"The field {nameof(command.OrderColumns)} must contain non-empty strings.", formattedErrorMessage);
        }
        public async Task <List <User> > Handle(ListUsersQuery request, CancellationToken cancellationToken)
        {
            var users = await _context.Users.ToListAsync();

            return(users);
        }
示例#11
0
 public async Task <IEnumerable <User> > Handle(ListUsersQuery request, CancellationToken cancellationToken)
 {
     return(await _userRepository.ListAsync());
 }