Exemplo n.º 1
0
        // The return type can be changed to IEnumerable, however to support
        // paging and sorting, the following parameters must be added:
        //     int maximumRows
        //     int startRowIndex
        //     out int totalRowCount
        //     string sortByExpression
        public IQueryable gvAllUsers_GetData()
        {
            using (WebUsersController wuc = new WebUsersController())
            using(WebUserInfosController wuic = new WebUserInfosController())
            {
                var allInfo = wuic.Get().Select(i=> new {
                    UserID = i.UserID,
                    FirstName = i.FName,
                    LastName = i.LName
                });
                var allUsers = wuc.Get();

                var joined = allUsers.GroupJoin(allInfo, i => i.UserID, j => j.UserID, (i, j) => new { Login = i, Info = j.FirstOrDefault() });

                return joined.Select(i => new UserResult()
                {
                    Email = i.Login.Email,
                    FirstName = i.Info == null ? null : i.Info.FirstName,
                    LastName = i.Info == null ? null : i.Info.LastName,
                    UserID = i.Login.UserID
                }).OrderBy(i => i.LastName).ThenBy(i => i.FirstName).AsQueryable<UserResult>();
            }
        }
Exemplo n.º 2
0
        public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
        {
            MembershipUserCollection users = new MembershipUserCollection();

            // Retrieve all users for the current application name from the database
            using (WebUsersController swuc = new WebUsersController())
            {
                IEnumerable<WebUser> usersInApplication = swuc.Get();

                totalRecords = usersInApplication.Distinct().Count();
                if (totalRecords <= 0)
                {
                    return users;
                }

                IEnumerable<WebUser> userEntities = usersInApplication.OrderBy(u => u.Email).Skip(pageIndex * pageSize).Take(pageSize);
                foreach (WebUser user in userEntities)
                {
                    users.Add(GetMembershipUserFromPersistedEntity(user));
                }

                return users;
            }
        }