Beispiel #1
0
        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
            }));
        }