Ejemplo n.º 1
0
		public ListUsersResponse ListUsers(ListUsersRequest request)
		{
			var criteria = new UserSearchCriteria();
			criteria.UserName.SortAsc(0);
			criteria.AccountType.EqualTo(UserAccountType.U); // only regular user accounts are visible through this service

			// create the criteria, depending on whether matches should be "exact" or "like"
			if (request.ExactMatchOnly)
			{
				if (!string.IsNullOrEmpty(request.UserName))
					criteria.UserName.EqualTo(request.UserName);
				if (!string.IsNullOrEmpty(request.DisplayName))
					criteria.DisplayName.EqualTo(request.DisplayName);
			}
			else
			{
				if (!string.IsNullOrEmpty(request.UserName))
					criteria.UserName.StartsWith(request.UserName);
				if (!string.IsNullOrEmpty(request.DisplayName))
					criteria.DisplayName.Like(string.Format("%{0}%", request.DisplayName));
			}

			var assembler = new UserAssembler();
			var broker = PersistenceContext.GetBroker<IUserBroker>();
			var userSummaries = CollectionUtils.Map(
				broker.Find(criteria, request.Page),
				(User user) => assembler.GetUserSummaryMinimal(user));
			var total = broker.Count(criteria);

			return new ListUsersResponse(userSummaries, (int)total);
		}
Ejemplo n.º 2
0
        public ListUsersResponse ListUsers(ListUsersRequest request)
        {
            var criteria = new UserSearchCriteria();

            criteria.UserName.SortAsc(0);
            criteria.AccountType.EqualTo(UserAccountType.U);             // only regular user accounts are visible through this service

            // create the criteria, depending on whether matches should be "exact" or "like"
            if (request.ExactMatchOnly)
            {
                if (!string.IsNullOrEmpty(request.UserName))
                {
                    criteria.UserName.EqualTo(request.UserName);
                }
                if (!string.IsNullOrEmpty(request.DisplayName))
                {
                    criteria.DisplayName.EqualTo(request.DisplayName);
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(request.UserName))
                {
                    criteria.UserName.StartsWith(request.UserName);
                }
                if (!string.IsNullOrEmpty(request.DisplayName))
                {
                    criteria.DisplayName.Like(string.Format("%{0}%", request.DisplayName));
                }
            }

            var assembler     = new UserAssembler();
            var broker        = PersistenceContext.GetBroker <IUserBroker>();
            var userSummaries = CollectionUtils.Map(
                broker.Find(criteria, request.Page),
                (User user) => assembler.GetUserSummaryMinimal(user));
            var total = broker.Count(criteria);

            return(new ListUsersResponse(userSummaries, (int)total));
        }