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