public override ProfileInfoCollection GetAllProfiles(ProfileAuthenticationOption authenticationOption, int pageIndex, int pageSize, out int totalRecords)
        {
            ProfileInfoCollection pc = new ProfileInfoCollection();

            totalRecords = 0;

            switch (authenticationOption)
            {
            case ProfileAuthenticationOption.All:
            {
                PageQueryParams pageQueryParams = new PageQueryParams();
                pageQueryParams.PageIndex = pageIndex;
                pageQueryParams.PageSize  = pageSize;

                List <SystemUserWrapper> users = SystemUserWrapper.FindAllByPage(pageQueryParams);

                totalRecords = pageQueryParams.RecordCount;

                foreach (SystemUserWrapper user in users)
                {
                    pc.Add(new ProfileInfo(user.UserLoginID, false, user.LastActivityDate, user.LastLoginDate, 0));
                }

                return(pc);
            };

            case ProfileAuthenticationOption.Anonymous:
            {
                return(pc);
            };

            case ProfileAuthenticationOption.Authenticated:
            {
                List <SystemUserWrapper> users = SystemUserWrapper.FindAuthenticatedUserAll(((pageIndex - 1) * pageSize), pageSize, out totalRecords);
                foreach (SystemUserWrapper user in users)
                {
                    pc.Add(new ProfileInfo(user.UserLoginID, false, user.LastActivityDate, user.LastLoginDate, 0));
                }
                return(pc);
            };

            default: return(pc);
            }
        }