public string GetScreenCodesWithApplicationInfo(ISurfaceUnitOfWork surfaceUnitOfWork) { var applications = surfaceUnitOfWork.SURF_ApplicationRepository.Table().ToList(); var menus = surfaceUnitOfWork.SURF_MenuRepository.Table().ToList(); Dictionary <string, List <string> > applicationWithScreenCodes = new Dictionary <string, List <string> >(); foreach (var app in applications) { List <string> tempList = menus.Where(x => x.ApplicationCode == app.ApplicationCode).Select(y => y.ScreenCode).ToList(); applicationWithScreenCodes.Add(app.ApplicationCode, tempList); } var appJson = JsonConvert.SerializeObject(applicationWithScreenCodes); return(appJson); }