public async Task <IEnumerable <AllProjectInfoData> > GetAllProjects() { SqlDefaultDatabase db = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>(); int userId = _authenticationInfo.ActualUser.UserId; using (var ctx = new SqlStandardCallContext()) { ProjectQueries projectQueries = new ProjectQueries(ctx, db); UserQueries userQueries = new UserQueries(ctx, db); GroupQueries groupQueries = new GroupQueries(ctx, db); IEnumerable <AllProjectInfoData> projectData = await projectQueries.GetAllProject(userId); for (var i = 0; i < projectData.Count(); i++) { IEnumerable <UserByProjectData> userByProject = await userQueries.GetUserByProject(projectData.ElementAt( i ).ProjectStudentId); projectData.ElementAt(i).BegDate = userByProject.ElementAt(0).BegDate; projectData.ElementAt(i).EndDate = userByProject.ElementAt(0).EndDate; List <string> listGroups = await projectQueries.GetGroupsOfProject(projectData.ElementAt(i).ProjectStudentId); List <string> semester = listGroups.FindAll(x => x.StartsWith("S0")); projectData.ElementAt(i).Semester = semester[0]; List <string> sector = listGroups.FindAll(x => x.StartsWith("IL") || x.StartsWith("SR")); if (sector.Count() > 0) { projectData.ElementAt(i).Sector = sector[0]; } GroupData data = await groupQueries.GetIdSchoolByPeriodId(projectData.ElementAt( i ).ZoneId); projectData.ElementAt(i).SchoolId = data.ParentZoneId; foreach (var e in userByProject) { //IEnumerable<GroupData> groupDatas = await groupQueries.GetAllGroupByTimedUser( e.TimedUserId ); projectData.ElementAt(i).FirstName.Add(e.FirstName); projectData.ElementAt(i).LastName.Add(e.LastName); projectData.ElementAt(i).TimedUserId.Add(e.TimedUserId); projectData.ElementAt(i).UserId.Add(e.UserId); } } return(projectData); } }