//Search administrators that contain the criteria specified and eturns their names, emails, privileges and user id's
        public AdminPagingQuery searchAdministrators(int index, String criteria)
        {
            AdminPagingQuery page = new AdminPagingQuery();

            try
            {
                using (conferenceadminContext context = new conferenceadminContext())
                {
                    int pageSize = 10;
                    //Gets list of administrators containing the criteria in their: name, email, privilege.
                    var query = context.claims.Where(admin => (admin.deleted != true && admin.privilege.privilegestType != "Master" && admin.privilege.privilegestType != "Evaluator") && ((admin.user.firstName.ToLower() + " " + admin.user.lastName.ToLower()).Contains(criteria.ToLower()) || admin.user.membership.email.ToLower().Contains(criteria.ToLower()))).Select(admin => new AdministratorQuery
                    {
                        userID = (long)admin.userID,
                        firstName = admin.user.firstName,
                        lastName = admin.user.lastName,
                        email = admin.user.membership.email,
                        privilege = admin.privilege.privilegestType == "Admin" ? "Administrator" : admin.privilege.privilegestType == "CommitteEvaluator" ? "Committee Evaluator" : admin.privilege.privilegestType,
                        privilegeID = (int)admin.privilegesID

                    }).OrderBy(x => x.userID);

                    page.rowCount = query.Count();
                    if (page.rowCount > 0)
                    {
                        page.maxIndex = (int)Math.Ceiling(page.rowCount / (double)pageSize);
                        var administrators = query.Skip(pageSize * index).Take(pageSize).ToList(); //Skip past rows and take new elements
                        page.results = administrators;
                    }

                    return page;
                }
            }
            catch (Exception ex)
            {
                Console.Write("AdminManager.searchAdministrators error " + ex);
                return null;
            }
        }
        //Gets the list of administrators of the list with: name, email, privilege and user id
        public AdminPagingQuery getAdministratorList(int index)
        {
            AdminPagingQuery page = new AdminPagingQuery();

            try
            {
                using (conferenceadminContext context = new conferenceadminContext())
                {
                    int pageSize = 10;
                    //Get administrator info
                    var query = context.claims.Where(admin => admin.deleted != true && admin.privilege.privilegestType != "Master" && admin.privilege.privilegestType != "Evaluator").Select(admin => new AdministratorQuery
                    {
                        userID = (long)admin.userID,
                        firstName = admin.user.firstName,
                        lastName = admin.user.lastName,
                        email = admin.user.membership.email,
                        privilege = admin.privilege.privilegestType == "Admin" ? "Administrator" : admin.privilege.privilegestType == "CommitteEvaluator" ? "Committee Evaluator" : admin.privilege.privilegestType,
                        privilegeID = (int)admin.privilegesID

                    }).OrderBy(x => x.userID);

                    //Paging: Depending on the index value (which represents a page number) filters the results to the adequeate pageSize
                    page.rowCount = query.Count();
                    if (page.rowCount > 0)
                    {
                        page.maxIndex = (int)Math.Ceiling(page.rowCount / (double)pageSize);
                        var administrators = query.Skip(pageSize * index).Take(pageSize).ToList(); //Skip past rows and take new elements
                        page.results = administrators;
                    }

                    return page;
                }
            }
            catch (Exception ex)
            {
                Console.Write("AdminManager.getAdministratorList error " + ex);
                return null;
            }
        }