public ActionResult GetBoardMembers() { var englishPositons = from position in OutlookConstants.EnglishPositions orderby position select position; var arabicPositons = from position in OutlookConstants.ArabicPositions orderby position select position; var nonBoardMembers = new List <OutlookConstants.Position> { OutlookConstants.Position.Staff_Writer, OutlookConstants.Position.Former_Member, OutlookConstants.Position.كاتب_صحفي, OutlookConstants.Position.عضو_سابق }; //var boardMembers = context.Member // .Include(m => m.Category) // .AsEnumerable() // .Where(m => !nonBoardMembers.Any(n => n == m.Position)) // .Select(m => mapper.Map<MemberDto>(m)) // .GroupBy(m => m.Language) // .Select(g => g.GroupBy(m => m.Position, g => g)); var boardMembers = context.Member .Include(m => m.Category) .AsEnumerable() .Where(m => !nonBoardMembers.Any(n => n == m.Position)) .Select(m => mapper.Map <MemberDto>(m)); // TODO: Improvement required var englishBoardMembers = new Dictionary <string, IEnumerable <MemberDto> >(); MemberService.AddBoardMembers(englishBoardMembers, englishPositons, boardMembers); var arabicBoardMembers = new Dictionary <string, IEnumerable <MemberDto> >(); MemberService.AddBoardMembers(arabicBoardMembers, arabicPositons, boardMembers); return(Ok(new { ArabicBoard = arabicBoardMembers, EnglishBoard = englishBoardMembers })); }