Beispiel #1
0
        public IEnumerable <TemplateNodeInfo> GetSubnodesFor(TemplateNodeQueryInfo groupQuery)
        {
            Debug.Assert(IsInstance);
            Debug.Assert(GroupQueries.Contains(groupQuery));

            return(Template.Childs.Where(t => t.GroupSelectId == groupQuery.Id));
        }
        public async Task <bool> CheckPeriodGivenDate(IStObjMap stObjMap, IAuthenticationInfo authenticationInfo, DateTime begDate, DateTime endDate)
        {
            var sqlDatabase = stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            var group       = stObjMap.StObjs.Obtain <CustomGroupTable>();
            int userId      = authenticationInfo.ActualUser.UserId;

            using (var ctx = new SqlStandardCallContext())
            {
                GroupQueries       groupQueries       = new GroupQueries(ctx, sqlDatabase);
                TimedPeriodQueries timedPeriodQueries = new TimedPeriodQueries(ctx, sqlDatabase);

                GroupData groupData = await groupQueries.GetIdSchoolByConnectUser(userId);

                PeriodData periodData = await timedPeriodQueries.GetCurrentPeriod(groupData.ZoneId);

                int shouldBeGreater = begDate.CompareTo(periodData.BegDate);
                int shouldBeLower   = endDate.CompareTo(periodData.EndDate);

                if (shouldBeGreater >= 0 && shouldBeLower <= 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
        public async Task <IActionResult> GetEvents()
        {
            int userId      = _authenticationInfo.ActualUser.UserId;
            var sqlDataBase = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();

            using (var ctx = new SqlStandardCallContext())
            {
                GroupQueries groupQueries = new GroupQueries(ctx, sqlDataBase);
                EventQueries eventQueries = new EventQueries(ctx, sqlDataBase);

                GroupData groupData = await groupQueries.GetIdSchoolByConnectUser(userId);

                AclQueries aclQueries = new AclQueries(ctx, sqlDataBase);

                if (!await aclQueries.VerifyGrantLevelByUserId(112, await aclQueries.GetAclIdBySchoolId(groupData.ParentZoneId), userId, Operator.SuperiorOrEqual))
                {
                    Result result = new Result(Status.Unauthorized, "Vous n'etes pas autorisé à utiliser cette fonctionnalité !");
                    return(this.CreateResult(result));
                }

                List <EventData> events = await eventQueries.GetAllEventsByIdSchool(groupData.ParentZoneId);

                return(Ok(events));
            }
        }
Beispiel #4
0
        public async Task <IActionResult> GetAllGradeProject()
        {
            SqlDefaultDatabase db = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            int userId            = _authenticationInfo.ActualUser.UserId;

            using (var ctx = new SqlStandardCallContext())
            {
                ProjectQueries     projectQueries     = new ProjectQueries(ctx, db);
                TimedPeriodQueries timedPeriodQueries = new TimedPeriodQueries(ctx, db);
                TimedUserQueries   timedUserQueries   = new TimedUserQueries(ctx, db);
                UserQueries        userQueries        = new UserQueries(ctx, db);
                GroupQueries       groupQueries       = new GroupQueries(ctx, db);

                GroupData groupData = await groupQueries.GetIdSchoolByConnectUser(userId);

                AclQueries aclQueries = new AclQueries(ctx, db);

                if (await aclQueries.VerifyGrantLevelByUserId(112, await aclQueries.GetAclIdBySchoolId(groupData.ParentZoneId), userId, Operator.SuperiorOrEqual) == false)
                {
                    Result result = new Result(Status.Unauthorized, "Vous n'etes pas autorisé à utiliser cette fonctionnalité !");
                    return(this.CreateResult(result));
                }

                List <ProjectInfosJuryData> projects = await projectQueries.getAllProjectsGrade(groupData.ZoneId);

                List <ProjectForumResultData> listToSend = GetProjectsOfForum(projects);

                return(Ok(listToSend));
            }
        }
        public async Task <IActionResult> UpdateEvents([FromBody] SchoolEventChangeModel model)
        {
            int userId      = _authenticationInfo.ActualUser.UserId;
            var sqlDataBase = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();

            using (var ctx = new SqlStandardCallContext())
            {
                PeriodServices periodServices = new PeriodServices();
                GroupQueries   groupQueries   = new GroupQueries(ctx, sqlDataBase);
                EventQueries   eventQueries   = new EventQueries(ctx, sqlDataBase);

                if (!await periodServices.CheckPeriodGivenDate(_stObjMap, _authenticationInfo, model.BegDate, model.EndDate))
                {
                    Result result = new Result(Status.BadRequest, "Ces Dates ne sont pas comprises dans la periode actuel");
                    return(this.CreateResult(result));
                }

                GroupData groupData = await groupQueries.GetIdSchoolByConnectUser(userId);

                AclQueries aclQueries = new AclQueries(ctx, sqlDataBase);

                if (!await aclQueries.VerifyGrantLevelByUserId(112, await aclQueries.GetAclIdBySchoolId(groupData.ParentZoneId), userId, Operator.SuperiorOrEqual))
                {
                    Result result = new Result(Status.Unauthorized, "Vous n'etes pas autorisé à utiliser cette fonctionnalité !");
                    return(this.CreateResult(result));
                }

                await eventQueries.UpdateEvent(model.EventId, model.Name, model.BegDate, model.EndDate);

                List <EventData> events = await eventQueries.GetAllEventsByIdSchool(groupData.ParentZoneId);

                return(Ok(events));
            }
        }
Beispiel #6
0
        public TemplateNodeInfo Instantiate(ConnectionData connection, DataRow row, TemplateNodeQueryInfo replicationSourceQuery, TemplateNodeInfo parent)
        {
            Debug.Assert(!IsInstance);
            Debug.Assert(NeedDataRowToBeInstantiated);

            var result = (TemplateNodeInfo)MemberwiseClone();

            result.Childs = new List <TemplateNodeInfo>();

            result.Template = this;

            result.Attributes = new NodeAttirbutes(result, row);
            result.Connection = connection;

            result.ReplicationSourceQuery = replicationSourceQuery;

            result.Queries           = Queries.Select(q => q.Clone()).ToList();
            result.ConnectionQueries = ConnectionQueries.Select(q => q.Clone()).ToList();
            result.GroupQueries      = GroupQueries.Select(q => q.Clone()).ToList();

            result.Parent = parent;
            result.Id     = null;
            result.Name   = Name + result.Id;

            result.OnAttributesChanged();

            return(result);
        }
Beispiel #7
0
        public async Task <List <Project> > GetAllProjects()
        {
            int            userId      = _authenticationInfo.ActualUser.UserId;
            var            sqlDatabase = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            List <Project> projectList = new List <Project>();

            using (var ctx = new SqlStandardCallContext())
            {
                ProjectQueries projectQueries = new ProjectQueries(ctx, sqlDatabase);
                GroupQueries   groupQueries   = new GroupQueries(ctx, sqlDatabase);
                GroupData      groupData      = await groupQueries.GetIdSchoolByConnectUser(userId);

                IEnumerable <ProjectData> projects = await projectQueries.GetAllProjectByForum(groupData.ZoneId);

                foreach (ProjectData project in projects)
                {
                    List <string> listGroups = await projectQueries.GetGroupsOfProject(project.ProjectStudentId);

                    listGroups       = listGroups.FindAll(x => x.StartsWith("S0") || x == "IL" || x == "SR");
                    project.Semester = string.Join("-", listGroups.ToArray());
                    if (listGroups[0] == "IL")
                    {
                        project.Semester = string.Join("-", listGroups.ToArray().Reverse());
                    }
                    Project p = new Project(project.ProjectStudentId, project.Name,
                                            project.Semester, project.CoordinatesX, project.CoordinatesY, project.ClassRoom, project.Height, project.Width, project.ForumNumber);
                    projectList.Add(p);
                }
            }
            return(projectList);
        }
        public async Task <bool> CheckInPeriod(IStObjMap stObjMap, IAuthenticationInfo authenticationInfo)
        {
            var sqlDatabase = stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            var group       = stObjMap.StObjs.Obtain <CustomGroupTable>();
            int userId      = authenticationInfo.ActualUser.UserId;

            using (var ctx = new SqlStandardCallContext())
            {
                GroupQueries       groupQueries       = new GroupQueries(ctx, sqlDatabase);
                TimedPeriodQueries timedPeriodQueries = new TimedPeriodQueries(ctx, sqlDatabase);

                GroupData groupData = await groupQueries.GetIdSchoolByConnectUser(userId);

                PeriodData periodData = await timedPeriodQueries.GetCurrentPeriod(groupData.ZoneId);

                DateTime currentDateTime        = DateTime.UtcNow;
                int      shoulbBeLowerOrEqual   = DateTime.Compare(periodData.BegDate, currentDateTime);
                int      shouldBeGreaterOrEqual = DateTime.Compare(periodData.EndDate, currentDateTime);

                if (shoulbBeLowerOrEqual > 0 || shouldBeGreaterOrEqual < 0)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }
        public async Task <IActionResult> DeleteEvent(int EventId)
        {
            int userId      = _authenticationInfo.ActualUser.UserId;
            var sqlDataBase = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            var eventTable  = _stObjMap.StObjs.Obtain <EventSchoolTable>();

            using (var ctx = new SqlStandardCallContext())
            {
                AclQueries   aclQueries   = new AclQueries(ctx, sqlDataBase);
                GroupQueries groupQueries = new GroupQueries(ctx, sqlDataBase);

                GroupData groupData = await groupQueries.GetIdSchoolByConnectUser(userId);

                if (!await aclQueries.VerifyGrantLevelByUserId(112, await aclQueries.GetAclIdBySchoolId(groupData.ParentZoneId), userId, Operator.SuperiorOrEqual))
                {
                    Result result = new Result(Status.Unauthorized, "Vous n'etes pas autorisé à utiliser cette fonctionnalité !");
                    return(this.CreateResult(result));
                }

                EventStruct eventResult = await eventTable.DeleteEvent(ctx, userId, EventId);

                if (eventResult.Status == 1)
                {
                    Result result = new Result(Status.BadRequest, "Cette évenement n'existe plus ou n'a jamais existé ! ");
                    return(this.CreateResult(result));
                }

                return(Ok());
            }
        }
        public async Task <IActionResult> GetEventSchoolByName(string eventName, string schoolName)
        {
            var sqlDataBase = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            int userId      = _authenticationInfo.ActualUser.UserId;

            using (var ctx = new SqlStandardCallContext())
            {
                EventQueries       eventQueries       = new EventQueries(ctx, sqlDataBase);
                GroupQueries       groupQueries       = new GroupQueries(ctx, sqlDataBase);
                TimedPeriodQueries timedPeriodQueries = new TimedPeriodQueries(ctx, sqlDataBase);

                GroupData groupData = await groupQueries.GetIdSchoolByConnectUser(userId);

                EventData eventData;

                if (groupData == null)
                {
                    int idSchool = await groupQueries.GetIdSchoolByName(schoolName);

                    PeriodData periodData = await timedPeriodQueries.GetLastPeriodBySchool(idSchool);

                    eventData = await eventQueries.GetEventSchoolBylNameAndPeriodId(eventName, periodData.ChildId);
                }
                else
                {
                    eventData = await eventQueries.GetEventSchoolBylNameAndPeriodId(eventName, groupData.ZoneId);
                }


                return(Ok(eventData));
            }
        }
Beispiel #11
0
        public async Task <ActionResult <Group> > Get(Guid groupId)
        {
            var groupQueries = new GroupQueries(_documentSession);
            var group        = await groupQueries.GetGroup(groupId);

            return(group);
        }
Beispiel #12
0
        public async Task <IActionResult> DownloadExcel(  )
        {
            var         sqlDatabase = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            ExcelUtilis excel       = new ExcelUtilis();
            int         userId      = _authenticationInfo.ActualUser.UserId;

            using (var ctx = new SqlStandardCallContext())
            {
                GroupQueries   groupQueries   = new GroupQueries(ctx, sqlDatabase);
                ProjectQueries projectQueries = new ProjectQueries(ctx, sqlDatabase);

                GroupData groupData = await groupQueries.GetIdSchoolByConnectUser(userId);

                AclQueries aclQueries = new AclQueries(ctx, sqlDatabase);

                if (await aclQueries.VerifyGrantLevelByUserId(112, await aclQueries.GetAclIdBySchoolId(groupData.ParentZoneId), userId, Operator.SuperiorOrEqual) == false)
                {
                    Result result = new Result(Status.Unauthorized, "Vous n'etes pas autorisé à utiliser cette fonctionnalité !");
                    return(this.CreateResult(result));
                }
                List <ProjectInfosJuryData> projectInfosJuries = await projectQueries.getAllProjectsGrade(groupData.ZoneId);

                List <ProjectForumResultData> allProjectsForumResult = GetProjectsOfForum(projectInfosJuries);


                byte[] excelToArray = await excel.CreateExcel(allProjectsForumResult, projectQueries);

                return(File(excelToArray, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
            }
        }
        public async Task GetAllAsync_Uses_Map_From_IMapper()
        {
            // Arrange
            var sut = new GroupQueries(_groupRepository.Object, _mapper.Object);
            // Act
            await sut.GetAllAsync();

            // Assert
            _mapper.Verify(m => m.Map <IEnumerable <GroupDto> >(It.IsAny <IEnumerable <Group> >()), Times.Once);
        }
        public async Task GetAllAsync_Uses_GetAllAsync_From_IGroupRepository()
        {
            // Arrange
            var sut = new GroupQueries(_groupRepository.Object, _mapper.Object);
            // Act
            await sut.GetAllAsync();

            // Assert
            _groupRepository.Verify(r => r.GetAllAsync(), Times.Once);
        }
Beispiel #15
0
        public async Task <IActionResult> AddStudentListCsv(string type)
        {
            var file = Request.Form.Files[0];

            int            userId         = _authenticationInfo.ActualUser.UserId;
            var            sqlDatabase    = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            PeriodServices periodServices = new PeriodServices();

            using (var ctx = new SqlStandardCallContext())
            {
                GroupQueries groupQueries = new GroupQueries(ctx, sqlDatabase);
                AclQueries   aclQueries   = new AclQueries(ctx, sqlDatabase);
                GroupData    groupData    = await groupQueries.GetIdSchoolByConnectUser(userId);

                // User must have the rights to do this action
                //if( await aclQueries.VerifyGrantLevelByUserId( 112, await aclQueries.GetAclIdBySchoolId( groupData.ParentZoneId ), userId, Operator.SuperiorOrEqual ) == false )
                //{
                //    Result result = new Result( Status.Unauthorized, "Vous n'etes pas autorisé à utiliser cette fonctionnalité !" );
                //    return this.CreateResult( result );
                //}

                bool isInPeriod = await periodServices.CheckInPeriod(_stObjMap, _authenticationInfo);

                // The school in wich the user is need to be in a period when the action is done
                if (!isInPeriod)
                {
                    Result result = new Result(Status.Unauthorized, "A la date d'aujourd'hui votre etablissement n'est dans une aucune periode");
                    return(this.CreateResult(result));
                }

                if (type == "student" || type == "staffMember")
                {
                    CsvStudentMapping <UserList> csvStudentMapping = new CsvStudentMapping <UserList>(_emailer);
                    List <UserList> studentResult = await csvStudentMapping.CSVReader(file);

                    await csvStudentMapping.UserParser(studentResult, _stObjMap, _authenticationInfo, type);
                }
                else if (type == "projectNumber")
                {
                    CsvStudentMapping <ProjectNumbers> csvStudentMapping = new CsvStudentMapping <ProjectNumbers>(_emailer);
                    List <ProjectNumbers> projectNumbers = await csvStudentMapping.CSVReaderProjectNumber(file);

                    await csvStudentMapping.ForumNumberParser(_stObjMap, projectNumbers, _authenticationInfo);
                }
                else if (type == "jury")
                {
                    CsvStudentMapping <JuryInfos> csvStudentMapping = new CsvStudentMapping <JuryInfos>(_emailer);
                    List <JuryInfos> result = await csvStudentMapping.CSVReaderProjectNumber(file);

                    await csvStudentMapping.AssignProjectToJury(_stObjMap, _authenticationInfo, result, type);
                }
            }

            return(Ok());
        }
Beispiel #16
0
        public async Task <IActionResult> GetInfosOwnAccount()
        {
            int userId      = _authenticationInfo.ActualUser.UserId;
            var sqlDataBase = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();

            using (var ctx = new SqlStandardCallContext())
            {
                AccountUserData accountUserData = new AccountUserData();

                PeriodServices     periodService      = new PeriodServices();
                UserQueries        userQueries        = new UserQueries(ctx, sqlDataBase);
                GroupQueries       groupQueries       = new GroupQueries(ctx, sqlDataBase);
                TimedPeriodQueries timedPeriodQueries = new TimedPeriodQueries(ctx, sqlDataBase);
                TimedUserQueries   timedUserQueries   = new TimedUserQueries(ctx, sqlDataBase);

                //Donnée de l'utilisateur
                UserData userData = await userQueries.GetInfosUserById(userId);

                //Derniere PeriodId de l'user et timedUserId
                TimedUserData timedUser = await timedUserQueries.GetLastTimedUserId(userId);

                if (timedUser == null)
                {
                    accountUserData.UserData = userData;
                    accountUserData.Group    = "User";
                    return(Ok(accountUserData));
                }

                //Recuperer Groupe du timedUser
                List <string> listGroupUser = await groupQueries.GetAllGroupOfTimedUserByPeriod(timedUser.TimePeriodId, timedUser.TimedUserId);

                string group = listGroupUser.Find(x => x.StartsWith("S0") || x.StartsWith("S1") || x == "Teacher" || x == "Administration");
                string spec  = listGroupUser.Find(x => x == "IL" || x == "SR");

                if (spec != null)
                {
                    group += "-" + spec;
                }

                accountUserData.UserData = userData;
                accountUserData.Group    = group;

                if (await periodService.CheckInPeriod(_stObjMap, _authenticationInfo))
                {
                    accountUserData.IsActual = true;
                }
                else
                {
                    accountUserData.IsActual = false;
                }

                return(Ok(accountUserData));
            }
        }
Beispiel #17
0
        public DataTable[] GetGroupSelectResultsFromServer(
            SqlProcessor sqlProcessor,
            InstanceInfo serverInstance,
            QueryInfo queryInfo,
            TemplateNodeQueryInfo query
            )
        {
            DataTable[] tables = null;
            ErrorInfo   error  = null;

            Debug.Assert(IsInstance);
            Debug.Assert(GroupQueries.Contains(query));

            var db = this._model.GetVaultProcessor(ConnectionGroup).CurrentStorage;

            InstanceTemplate settings = GetUserSettings();

            //looking for user settings for parameter values
            query.ReadParametersFrom(settings);

            try
            {
                tables = sqlProcessor.ExecuteSql(
                    serverInstance,
                    queryInfo,
                    GetDefaultDatabase(),
                    queryInfo.Parameters,
                    query.ParameterValues,
                    fromGroupSelect: true
                    );
            }
            catch (Exception ex)
            {
                error  = new ErrorInfo(ex);
                tables = null;
            }

            Int64?queryId = db.QueryGroupDirectory.GetQueryId(
                query.TemplateNode,
                query,
                serverInstance,
                DateTime.Now,
                false
                );

            db.SaveMeta(queryId, error, tables);

            if (tables != null && tables.Length < 0)
            {
                throw new InvalidTemplateException(query + " returned no recordsets.");
            }

            return(tables);
        }
        public async Task <IActionResult> GetAllTypeProjectsOfASchool(int idSchool, char type)
        {
            SqlDefaultDatabase db = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            int userId            = _authenticationInfo.ActualUser.UserId;

            using (var ctx = new SqlStandardCallContext())
            {
                ProjectQueries     projectQueries     = new ProjectQueries(ctx, db);
                TimedPeriodQueries timedPeriodQueries = new TimedPeriodQueries(ctx, db);
                TimedUserQueries   timedUserQueries   = new TimedUserQueries(ctx, db);
                UserQueries        userQueries        = new UserQueries(ctx, db);
                GroupQueries       groupQueries       = new GroupQueries(ctx, db);

                PeriodData periodData = await timedPeriodQueries.GetLastPeriodBySchool(idSchool);

                //Implementer check date period

                TimedUserData timedUserData = await timedUserQueries.GetTimedUser(userId, periodData.ChildId);

                if (timedUserData == null)
                {
                    timedUserData = new TimedUserData
                    {
                        TimedUserId = 0
                    };
                }

                IEnumerable <AllProjectInfoData> projectData = await projectQueries.GetAllTypeProjectSpecificToSchoolWithTimedUserNote(periodData.ChildId, type, timedUserData.TimedUserId);

                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;

                    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(Ok(projectData));
            }
        }
        public async Task <IActionResult> BlockedProject([FromBody] BlockedGradeViewModel model)
        {
            int                userId         = _authenticationInfo.ActualUser.UserId;
            EvaluatesTable     evaluatesTable = _stObjMap.StObjs.Obtain <EvaluatesTable>();
            SqlDefaultDatabase db             = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            PeriodServices     periodServices = new PeriodServices();


            using (var ctx = new SqlStandardCallContext())
            {
                AclQueries   aclQueries   = new AclQueries(ctx, db);
                GroupQueries groupQueries = new GroupQueries(ctx, db);

                if (!await periodServices.CheckInPeriod(_stObjMap, _authenticationInfo))
                {
                    Result result = new Result(Status.Unauthorized, "A la date d'aujourd'hui votre etablissement n'est dans une aucune periode");
                    return(this.CreateResult(result));
                }

                GroupData groupData = await groupQueries.GetIdSchoolByConnectUser(userId);

                if (!await aclQueries.VerifyGrantLevelByUserId(112, await aclQueries.GetAclIdBySchoolId(groupData.ParentZoneId), userId, Operator.SuperiorOrEqual))
                {
                    Result result = new Result(Status.Unauthorized, "Vous n'etes pas autorisé à utiliser cette fonctionnalité !");
                    return(this.CreateResult(result));
                }

                int idx = 0;
                foreach (var item in model.IndividualGrade)
                {
                    if (item.Value > 0)
                    {
                        await evaluatesTable.BlockedProjectGrade(ctx, model.JurysId[idx], model.ProjectId, item.Value, true);
                    }
                    else
                    {
                        await evaluatesTable.BlockedProjectGrade(ctx, model.JurysId[idx], model.ProjectId, true);
                    }
                    idx++;
                }

                return(Ok());
            }
        }
        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);
            }
        }
Beispiel #21
0
        public async Task <IActionResult> GetAllPublicNote()
        {
            SqlDefaultDatabase db = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            int userId            = _authenticationInfo.ActualUser.UserId;

            using (var ctx = new SqlStandardCallContext())
            {
                ProjectQueries     projectQueries     = new ProjectQueries(ctx, db);
                TimedPeriodQueries timedPeriodQueries = new TimedPeriodQueries(ctx, db);
                TimedUserQueries   timedUserQueries   = new TimedUserQueries(ctx, db);
                UserQueries        userQueries        = new UserQueries(ctx, db);
                GroupQueries       groupQueries       = new GroupQueries(ctx, db);

                GroupData groupData = await groupQueries.GetIdSchoolByConnectUser(userId);

                List <ProjectForumResultData> projects = await projectQueries.GetAllPublicsNoteByTimedPeriodId(groupData.ZoneId);

                return(Ok(projects));
            }
        }
Beispiel #22
0
        public TemplateNodeInfo Instantiate(ConnectionData connection, string defaultDatabaseAttribute, TemplateNodeInfo parent)
        {
            Debug.Assert(!IsInstance);

            TemplateNodeInfo result = (TemplateNodeInfo)MemberwiseClone();

            result.Template                      = this;
            result.Attributes                    = new NodeAttirbutes(result);
            result.Childs                        = new List <TemplateNodeInfo>();
            result.Connection                    = connection;
            result.ReplicationSourceQuery        = null;
            result._defaultDatabaseAttributeName = defaultDatabaseAttribute;

            result.Queries           = Queries.Select(q => q.Clone()).ToList();
            result.ConnectionQueries = ConnectionQueries.Select(q => q.Clone()).ToList();
            result.GroupQueries      = GroupQueries.Select(q => q.Clone()).ToList();

            result.Parent = parent;

            return(result);
        }
Beispiel #23
0
        public async Task ForumNumberParser(IStObjMap stObjMap, List <ProjectNumbers> projectNumbers, IAuthenticationInfo authenticationInfo)
        {
            using (var ctx = new SqlStandardCallContext())
            {
                var             sqlDatabase     = stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
                GroupQueries    projectQueries  = new GroupQueries(ctx, sqlDatabase);
                ForumInfosTable forumInfosTable = stObjMap.StObjs.Obtain <ForumInfosTable>();
                int             userId          = authenticationInfo.ActualUser.UserId;
                GroupData       groupData       = await projectQueries.GetIdSchoolByConnectUser(userId);

                foreach (ProjectNumbers projectNumber in projectNumbers)
                {
                    int projectId = await projectQueries.GetSpecificIdGroupByZoneIdAndGroupName(groupData.ZoneId, projectNumber.ProjectName);

                    if (projectId == 0)
                    {
                        Console.WriteLine("-----" + projectNumber.ProjectName);
                    }
                    await forumInfosTable.CreateForumInfo(ctx, projectId, "", -1, -1, 4, 3, projectNumber.ProjectNumber);
                }
            }
        }
        public async Task <IEnumerable <AllProjectInfoData> > GetProjectsEvaluate(int idSchool)
        {
            SqlDefaultDatabase db = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
            int userId            = _authenticationInfo.ActualUser.UserId;

            using (var ctx = new SqlStandardCallContext())
            {
                ProjectQueries     projectQueries     = new ProjectQueries(ctx, db);
                TimedPeriodQueries timedPeriodQueries = new TimedPeriodQueries(ctx, db);
                TimedUserQueries   timedUserQueries   = new TimedUserQueries(ctx, db);
                UserQueries        userQueries        = new UserQueries(ctx, db);
                GroupQueries       groupQueries       = new GroupQueries(ctx, db);

                PeriodData periodData = await timedPeriodQueries.GetLastPeriodBySchool(idSchool);

                //Implementer check date period

                IEnumerable <AllProjectInfoData> projectData = await projectQueries.GetAllProjectTimedByJuryId(userId, periodData.ChildId);

                return(projectData);
            }
        }
        public async Task <IActionResult> GetIdSchoolOfUser()
        {
            int userId      = _authenticationInfo.ActualUser.UserId;
            var sqlDatabase = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();

            using (var ctx = new SqlStandardCallContext())
            {
                SchoolQueries    schoolQueries    = new SchoolQueries(ctx, sqlDatabase);
                TimedUserQueries timedUserQueries = new TimedUserQueries(ctx, sqlDatabase);
                GroupQueries     groupQueries     = new GroupQueries(ctx, sqlDatabase);

                GroupData groupData = await groupQueries.GetIdSchoolByConnectUser(userId);

                if (groupData == null || groupData.ParentZoneId == 0)
                {
                    //if user not in school default by school id In'TECH
                    // int idSchool = await groupQueries.GetIdSchoolByName( "IN'TECH" );
                    return(Ok(groupData.ZoneId));
                }

                return(Ok(groupData.ParentZoneId));
            }
        }
Beispiel #26
0
        public async Task <List <GroupPeriod> > GetAllGroupTemplate(int idZone)
        {
            var sqlDataBase = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();

            using (var ctx = new SqlStandardCallContext())
            {
                GroupQueries groupQueries = new GroupQueries(ctx, sqlDataBase);

                List <string> listGroups = await groupQueries.GetAllGroupByZoneId(idZone);

                List <GroupPeriod> list = new List <GroupPeriod>();

                for (int i = 0; i < listGroups.Count; i++)
                {
                    GroupPeriod gp = new GroupPeriod();
                    gp.Name  = listGroups[i];
                    gp.State = true;
                    gp.IsAlreadyPermanent = true;
                    list.Add(gp);
                }

                return(list);
            }
        }
Beispiel #27
0
        internal async Task AssignProjectToJury(IStObjMap stObjMap, IAuthenticationInfo authenticationInfo, List <JuryInfos> juryInfos, string type)
        {
            using (var ctx = new SqlStandardCallContext())
            {
                var            sqlDatabase    = stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
                var            groupTable     = stObjMap.StObjs.Obtain <CustomGroupTable>();
                var            userTimedTable = stObjMap.StObjs.Obtain <TimedUserTable>();
                EvaluatesTable evaluatesTable = stObjMap.StObjs.Obtain <EvaluatesTable>();

                int          userId       = authenticationInfo.ActualUser.UserId;
                GroupQueries groupQueries = new GroupQueries(ctx, sqlDatabase);
                GroupData    groupData    = await groupQueries.GetIdSchoolByConnectUser(userId);

                string             userName           = Guid.NewGuid().ToString();
                UserQueries        userQueries        = new UserQueries(ctx, sqlDatabase);
                TimedUserQueries   timedUserQueries   = new TimedUserQueries(ctx, sqlDatabase);
                ProjectQueries     projectQueries     = new ProjectQueries(ctx, sqlDatabase);
                TimedPeriodQueries timedPeriodQueries = new TimedPeriodQueries(ctx, sqlDatabase);
                ForumQueries       forumQueries       = new ForumQueries(ctx, sqlDatabase);
                //get the Begdate of the periode
                DateTime begDate = await timedPeriodQueries.GetBegDateOfPeriod(groupData.ZoneId);

                foreach (JuryInfos juryInfo in juryInfos)
                {
                    if (juryInfo.Mail == "*****@*****.**")
                    {
                        Console.WriteLine("ok");
                    }
                    int    enterpriseId  = 0;
                    string groupName     = "Jury " + juryInfo.Jury + "-" + begDate.Year + "/" + begDate.Month;
                    int    timedUserType = 0;
                    //Check if the jury group exists or not at a moment
                    int groupId = await groupQueries.GetSpecificIdGroupByZoneIdAndGroupName(groupData.ZoneId, groupName);

                    if (groupId == 0)
                    {
                        groupId = await groupTable.CreateGroupAsync(ctx, userId, groupData.ZoneId);

                        await groupTable.Naming.GroupRenameAsync(ctx, userId, groupId, groupName);
                    }

                    //Check if the enterprise group exists or not at a moment
                    enterpriseId = await groupQueries.GetSpecificIdGroupByZoneIdAndGroupName(groupData.ZoneId, juryInfo.Entreprise);

                    if (enterpriseId == 0)
                    {
                        enterpriseId = await groupTable.CreateGroupAsync(ctx, userId, groupData.ZoneId);

                        await groupTable.Naming.GroupRenameAsync(ctx, userId, enterpriseId, juryInfo.Entreprise);
                    }

                    //Check if the user exists
                    int idJury = await CheckIfUserExists(stObjMap, authenticationInfo, juryInfo.Mail, userName, juryInfo.Prenom, juryInfo.Nom);

                    await groupTable.AddUserAsync(ctx, userId, groupId, idJury, true);

                    await groupTable.AddUserAsync(ctx, userId, enterpriseId, idJury, true);

                    //get the timed user type
                    timedUserType = GetTimedUserType(type);

                    //check if the timed user exists
                    TimedUserData timedUserData = await userQueries.CheckIfTimedUserExists(idJury, groupData.ZoneId);

                    if (timedUserData == null)
                    {
                        await userTimedTable.CreateOrUpdateTimedUserAsync(ctx, timedUserType, groupData.ZoneId, idJury);
                    }
                    else
                    {
                        bool isJury = await timedUserQueries.IsJury(timedUserData.TimedUserId);

                        if (!isJury)
                        {
                            await userTimedTable.CreateOrUpdateTimedUserAsync(ctx, timedUserType, groupData.ZoneId, idJury);
                        }
                    }

                    //get the project id by forumnumber
                    ProjectData projectId;
                    string      groupName1 = "Vous êtes libre";
                    string      groupName2 = "Vous êtes libre";
                    string      groupName3 = "Vous êtes libre";
                    string      groupName4 = "Vous êtes libre";
                    TimeSpan    timeSpan1  = new TimeSpan(13, 30, 0);
                    TimeSpan    timeSpan2  = new TimeSpan(14, 15, 0);
                    TimeSpan    timeSpan3  = new TimeSpan(15, 00, 0);
                    TimeSpan    timeSpan4  = new TimeSpan(15, 45, 0);

                    if (juryInfo.Groupe1 != 0)
                    {
                        projectId = await projectQueries.GetProjectIdByForumNumberAndPeriod(juryInfo.Groupe1, groupData.ZoneId);

                        begDate = begDate.Date + timeSpan1;
                        if (await forumQueries.IsProjectJudgedByJury(projectId.ProjectStudentId, groupId) == 0)
                        {
                            await evaluatesTable.EvaluateOrUpdateGradeProject(ctx, groupId, projectId.ProjectStudentId, -1, begDate);
                        }
                        groupName1 = projectId.GroupName;
                    }

                    if (juryInfo.Groupe2 != 0)
                    {
                        projectId = await projectQueries.GetProjectIdByForumNumberAndPeriod(juryInfo.Groupe2, groupData.ZoneId);

                        begDate = begDate.Date + timeSpan2;
                        if (await forumQueries.IsProjectJudgedByJury(projectId.ProjectStudentId, groupId) == 0)
                        {
                            await evaluatesTable.EvaluateOrUpdateGradeProject(ctx, groupId, projectId.ProjectStudentId, -1, begDate);
                        }
                        groupName2 = projectId.GroupName;
                    }

                    if (juryInfo.Groupe3 != 0)
                    {
                        projectId = await projectQueries.GetProjectIdByForumNumberAndPeriod(juryInfo.Groupe3, groupData.ZoneId);

                        begDate = begDate.Date + timeSpan3;
                        if (await forumQueries.IsProjectJudgedByJury(projectId.ProjectStudentId, groupId) == 0)
                        {
                            await evaluatesTable.EvaluateOrUpdateGradeProject(ctx, groupId, projectId.ProjectStudentId, -1, begDate);
                        }
                        groupName3 = projectId.GroupName;
                    }
                    if (juryInfo.Groupe4 != 0)
                    {
                        projectId = await projectQueries.GetProjectIdByForumNumberAndPeriod(juryInfo.Groupe4, groupData.ZoneId);

                        begDate = begDate.Date + timeSpan4;
                        if (await forumQueries.IsProjectJudgedByJury(projectId.ProjectStudentId, groupId) == 0)
                        {
                            await evaluatesTable.EvaluateOrUpdateGradeProject(ctx, groupId, projectId.ProjectStudentId, -1, begDate);
                        }
                        groupName4 = projectId.GroupName;
                    }

                    IEnumerable <ForumData> infoMail = await forumQueries.ForumInfoByJury(groupName);

                    int nbProject = infoMail.Count();

                    string subject     = "Votre participation au Forum PI D'IN'TECH";
                    string mailContent = @"
            <table align = 'center' border='0' cellpadding='0' cellspacing='0' height='100%' width='100%' id='bodyTable'>
  
                            </tr>
                            <tr>
                                <td valign = 'top' id='templateBody'><table border = '0' cellpadding='0' cellspacing='0' width='100%' class='mcnTextBlock' style='min-width:100%;'>
    <tbody class='mcnTextBlockOuter'>
        <tr>
            <td valign = 'top' class='mcnTextBlockInner' style='padding-top:9px;'>
                <!--[if mso]>
				<table align = 'left' border='0' cellspacing='0' cellpadding='0' width='100%' style='width:100%;'>
				<tr>
				<![endif]-->
			    
				<!--[if mso]>
				<td valign = 'top' width='600' style='width:600px;'>
				<![endif]-->
                <table align = 'left' border='0' cellpadding='0' cellspacing='0' style='max-width:100%; min-width:100%;' width='100%' class='mcnTextContentContainer'>
                    <tbody><tr>
                        
                        <td valign = 'top' class='mcnTextContent' style='padding-top:0; padding-right:18px; padding-bottom:9px; padding-left:18px;'>
                        
                            <h1>Bonjour " + juryInfo.Prenom + " " + juryInfo.Nom + @"</h1>

<p>Vous participez au forum des projets informatique de l'école IN'TECH le " + begDate.Day + "/0" + begDate.Month + "/" + begDate.Year + @".</p>

<p>Vous appartenez au jury '" + groupName + @"'.<br>
Au cours de cet évènement vous aurez l'occasion de juger les projets suivants:&nbsp;</p>

<ul>
	<li>"     + groupName1 + " à " + timeSpan1 + @"</li>
	<li>"     + groupName2 + " à " + timeSpan2 + @"</li>
	<li>"     + groupName3 + " à " + timeSpan3 + @"</li>
	<li>"     + groupName4 + " à " + timeSpan4 + @"</li>
</ul>
Nous vous remercions de l’intérêt que vous portez à nos évènements.<br>
Bonne continuation.
                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->
                
				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table></td>
                            </tr>
                            <tr>
                                <td valign = 'top' id= 'templateFooter' >
        <td align = 'center' style='padding-left:9px;padding-right:9px;'>
            <table border = '0' cellpadding='0' cellspacing='0' width='100%' style='min-width:100%;' class='mcnFollowContent'>
                <tbody><tr>
                    <td align = 'center' valign='top' style='padding-top:9px; padding-right:9px; padding-left:9px;'>
                        <table align = 'center' border='0' cellpadding='0' cellspacing='0'>
                            <tbody><tr>
                                <td align = 'center' valign='top'>
                                    <!--[if mso]>
                                    <table align = 'center' border='0' cellspacing='0' cellpadding='0'>
                                    <tr>
                                    <![endif]-->

                                </td>
                            </tr>
                        </tbody></table>
                    </td>
                </tr>
            </tbody></table>
        </td>
    </tr>
</tbody></table>

            </td>
        </tr>
    </tbody>
</table>
    <tbody class='mcnDividerBlockOuter'>
        <tr>
            <td class='mcnDividerBlockInner' style='min-width: 100%; padding: 10px 18px 25px;'>
                <table class='mcnDividerContent' border='0' cellpadding='0' cellspacing='0' width='100%' style='min-width: 100%;border-top: 2px solid #EEEEEE;'>
                    <tbody><tr>
                        <td>
                            <span></span>
                        </td>
                    </tr>
                </tbody></table>
<!--            
                <td class='mcnDividerBlockInner' style='padding: 18px;'>
                <hr class='mcnDividerContent' style='border-bottom-color:none; border-left-color:none; border-right-color:none; border-bottom-width:0; border-left-width:0; border-right-width:0; margin-top:0; margin-right:0; margin-bottom:0; margin-left:0;' />
-->
            </td>
        </tr>
    </tbody>
</table>
    <tbody class='mcnTextBlockOuter'>
        <tr>
            <td valign = 'top' class='mcnTextBlockInner' style='padding-top:9px;'>
			    
				<!--[if mso]>
				<td valign = 'top' width='600' style='width:600px;'>
				<![endif]-->
                <table align = 'left' border='0' cellpadding='0' cellspacing='0' style='max-width:100%; min-width:100%;' width='100%' class='mcnTextContentContainer'>
                    <tbody><tr>
                        
                        <td valign = 'top' class='mcnTextContent' style='padding-top:0; padding-right:18px; padding-bottom:9px; padding-left:18px;'>
                        
                            <br>
<br>
<strong>Notre adresse:</strong><br>
74 bis Avenue Maurice Thorez, 94200 Ivry-sur-Seine<br>
Metro 7: Pierre et Marie Curie<br>
<br>
IN'TECH Paris
                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->
                
				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table></td>
                            </tr>
                        </table>
                        <!--[if (gte mso 9)|(IE)]>
                        </td>
                        </tr>
                        </table>
                        <![endif]-->
                        <!-- // END TEMPLATE -->
                    </td>
                </tr>
            </table>
        </center>
    </body>
</html>";

                    await _emailSender.SendMessage(juryInfo.Mail, subject, mailContent);
                }
            }
        }
Beispiel #28
0
 public void OnAttributesChanged()
 {
     Queries.ForEach(q => q.ParameterValues.TakeValuesFrom(Attributes.Values));
     GroupQueries.ForEach(q => q.ParameterValues.TakeValuesFrom(Attributes.Values));
 }
Beispiel #29
0
        public async Task <bool> UserParser(List <UserList> studentList, IStObjMap stObjMap, IAuthenticationInfo authenticationInfo, string type)
        {
            using (var ctx = new SqlStandardCallContext())
            {
                var sqlDatabase    = stObjMap.StObjs.Obtain <SqlDefaultDatabase>();
                var userTable      = stObjMap.StObjs.Obtain <CustomUserTable>();
                var userTimedTable = stObjMap.StObjs.Obtain <TimedUserTable>();
                var groupTable     = stObjMap.StObjs.Obtain <CustomGroupTable>();

                GroupQueries groupQueries = new GroupQueries(ctx, sqlDatabase);
                UserQueries  userQueries  = new UserQueries(ctx, sqlDatabase);

                int       currentUserId = authenticationInfo.ActualUser.UserId;
                GroupData groupData     = await groupQueries.GetIdSchoolByConnectUser(currentUserId);

                int zoneId = groupData.ZoneId;


                foreach (var element in studentList)
                {
                    string   userName      = Guid.NewGuid().ToString();
                    string   firstName     = element.FirstName;
                    string   lastName      = element.Name;
                    int      timedUserType = 0;
                    string[] groupName     = new string[1];
                    string   mail          = element.Mail;
                    int      idUser        = await CheckIfUserExists(stObjMap, authenticationInfo, mail, userName, firstName, lastName);

                    timedUserType = GetTimedUserType(type);
                    if (type == "student")
                    {
                        groupName = element.GroupName.Split('-');
                    }
                    else if (type == "staffMember")
                    {
                        groupName[0] = element.GroupName;
                    }
                    int groupId = await groupQueries.GetIdGroupByNameAndPeriod(groupName[0], zoneId);


                    TimedUserData timedUserData = await userQueries.CheckIfTimedUserExists(idUser, zoneId);

                    if (timedUserData == null)
                    {
                        await userTimedTable.CreateOrUpdateTimedUserAsync(ctx, timedUserType, zoneId, idUser);

                        groupTable.AddUser(ctx, currentUserId, groupId, idUser, true);
                        if (type == "student" && groupName[1] != "A")
                        {
                            int sector = await groupQueries.GetIdGroupByNameAndPeriod(groupName[1], zoneId);

                            groupTable.AddUser(ctx, currentUserId, sector, idUser, true);
                        }
                    }
                    else
                    {
                        int isUserInGroup = await groupQueries.GetGroupByNamePeriodUser(groupName[0], idUser, zoneId);

                        if (isUserInGroup == 0)
                        {
                            groupTable.AddUser(ctx, currentUserId, groupId, idUser, true);
                            if (type == "student" && groupName[1] != "A")
                            {
                                int sector = await groupQueries.GetIdGroupByNameAndPeriod(groupName[1], zoneId);

                                groupTable.AddUser(ctx, currentUserId, sector, idUser, true);
                            }
                        }
                    }
                }
            }
            return(true);
        }
Beispiel #30
0
        public async Task <List <string> > GetGroupUserAccessPanel(int idZone)
        {
            List <string> listGroupToReturn = new List <string>();
            int           userId            = _authenticationInfo.ActualUser.UserId;
            var           sqlDataBase       = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();

            if (userId == 0)
            {
                listGroupToReturn.Add("Anon");
                return(listGroupToReturn);
            }

            listGroupToReturn.Add("User");

            using (var ctx = new SqlStandardCallContext())
            {
                TimedPeriodQueries timedPeriod   = new TimedPeriodQueries(ctx, sqlDataBase);
                TimedUserQueries   timedUser     = new TimedUserQueries(ctx, sqlDataBase);
                GroupQueries       groupsQueries = new GroupQueries(ctx, sqlDataBase);
                UserQueries        userQueries   = new UserQueries(ctx, sqlDataBase);
                DateTime           dateNow       = DateTime.UtcNow;
                List <PeriodData>  periods       = await timedPeriod.GetNumberWishPeriodBySchool(idZone, 2);

                PeriodData period = null;


                for (int i = 0; i < periods.Count; i++)
                {
                    if (periods[i].BegDate.DayOfYear <= dateNow.DayOfYear && periods[i].EndDate.DayOfYear >= dateNow.DayOfYear)
                    {
                        period = periods[i];
                        break;
                    }
                }

                if (period == null)
                {
                    period = periods[0];
                }
                TimedUserData timedUserData = await timedUser.GetTimedUser(userId, period.ChildId);

                if (timedUserData == null)
                {
                    int adminIdZoneSchool = await groupsQueries.GetSpecificIdGroupByZoneIdAndGroupName(idZone, "Administration");

                    if (await userQueries.VerifyGroupUser(userId, adminIdZoneSchool) != 0)
                    {
                        listGroupToReturn.Add("Administration");
                    }

                    return(listGroupToReturn);
                }

                listGroupToReturn = await timedUser.getWhichCat(timedUserData.TimedUserId, listGroupToReturn);

                if (!listGroupToReturn.Contains("StaffMember"))
                {
                    return(listGroupToReturn);
                }

                List <string> listGroupsOfTimedUser = new List <string>();

                listGroupsOfTimedUser = await groupsQueries.GetAllGroupOfTimedUserByPeriod(period.ChildId, timedUserData.TimedUserId);

                for (int i = 0; i < listGroupsOfTimedUser.Count; i++)
                {
                    if (listGroupsOfTimedUser[i] == "Administration")
                    {
                        listGroupToReturn.Add("Administration");
                    }
                    else if (listGroupsOfTimedUser[i] == "Teacher")
                    {
                        listGroupToReturn.Add("Teacher");
                    }
                }

                if (!listGroupToReturn.Contains("Administration"))
                {
                    int adminIdZoneSchool = await groupsQueries.GetSpecificIdGroupByZoneIdAndGroupName(idZone, "Administration");

                    if (await userQueries.VerifyGroupUser(userId, adminIdZoneSchool) != 0)
                    {
                        listGroupToReturn.Add("Administration");
                    }
                }


                return(listGroupToReturn);
            }
        }