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 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 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 <IActionResult> VerifyActualPeriod() { PeriodServices periodServices = new PeriodServices(); return(Ok(await periodServices.CheckInPeriod(_stObjMap, _authenticationInfo))); }
public async Task <IActionResult> NoteProject([FromBody] NoteProjectViewModel model) { int userId = _authenticationInfo.ActualUser.UserId; TimedUserNoteProjectTable timedUserNoteProjectTable = _stObjMap.StObjs.Obtain <TimedUserNoteProjectTable>(); TimedUserTable timedUserTable = _stObjMap.StObjs.Obtain <TimedUserTable>(); EvaluatesTable evaluatesTable = _stObjMap.StObjs.Obtain <EvaluatesTable>(); SqlDefaultDatabase db = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>(); PeriodServices periodServices = new PeriodServices(); using (var ctx = new SqlStandardCallContext()) { ProjectQueries projectQueries = new ProjectQueries(ctx, db); TimedPeriodQueries timedPeriodQueries = new TimedPeriodQueries(ctx, db); UserQueries userQueries = new UserQueries(ctx, db); TimedUserQueries timedUserQueries = new TimedUserQueries(ctx, db); AclQueries aclQueries = new AclQueries(ctx, db); GroupQueries groupQueries = new GroupQueries(ctx, db); //Case Change Grade by Administration ==================================================================================================================== if (model.User == ViewModels.TypeTimedUser.StaffMember) { 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)); } await evaluatesTable.EvaluateOrUpdateGradeProject(ctx, model.JuryId, model.ProjectId, model.Grade); return(Ok()); } //========================================================================================================================================================= PeriodData periodData = await timedPeriodQueries.GetLastPeriodBySchool(model.SchoolId); TimedUserData timedUserData = await timedUserQueries.GetTimedUser(userId, periodData.ChildId); if (timedUserData == null) { TimedUserStruct timedUser = await timedUserTable.CreateOrUpdateTimedUserAsyncWithType(ctx, Data.TypeTimedUser.Anon, periodData.ChildId, userId); timedUserData = new TimedUserData { TimedUserId = timedUser.TimedUserId }; await timedUserNoteProjectTable.AddOrUpdateNote(ctx, timedUserData.TimedUserId, model.ProjectId, model.Grade); return(Ok()); } if (model.User == ViewModels.TypeTimedUser.Jury) { await evaluatesTable.EvaluateOrUpdateGradeProject(ctx, model.JuryId, model.ProjectId, model.Grade); } else { await timedUserNoteProjectTable.AddOrUpdateNote(ctx, timedUserData.TimedUserId, model.ProjectId, model.Grade); } return(Ok()); } }