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)); } }
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)); } }
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); }
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)); } }
public async Task <ActionResult <Group> > Get(Guid groupId) { var groupQueries = new GroupQueries(_documentSession); var group = await groupQueries.GetGroup(groupId); return(group); }
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); }
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()); }
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)); } }
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); } }
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)); } }
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); }
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)); } }
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); } }
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: </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); } } }
public void OnAttributesChanged() { Queries.ForEach(q => q.ParameterValues.TakeValuesFrom(Attributes.Values)); GroupQueries.ForEach(q => q.ParameterValues.TakeValuesFrom(Attributes.Values)); }
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); }
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); } }