Пример #1
0
        public async Task <IActionResult> RemoveStudents(int groupId, RemoveStudentsParameters parameters)
        {
            var group = await groupsRepo.FindGroupByIdAsync(groupId).ConfigureAwait(false);

            var members = await groupMembersRepo.RemoveUsersFromGroupAsync(groupId, parameters.UserIds).ConfigureAwait(false);

            await notificationsRepo.AddNotificationAsync(
                group.CourseId,
                new GroupMembersHaveBeenRemovedNotification(group.Id, parameters.UserIds, usersRepo),
                UserId
                ).ConfigureAwait(false);

            return(Ok(new SuccessResponseWithMessage($"{members.Count} students have been removed from group {group.Id}")));
        }
Пример #2
0
        public async Task <IActionResult> RemoveStudents(int groupId, RemoveStudentsParameters parameters)
        {
            var hasEditAccess = await groupAccessesRepo.HasUserEditAccessToGroupAsync(groupId, UserId).ConfigureAwait(false);

            if (!hasEditAccess)
            {
                return(StatusCode((int)HttpStatusCode.Forbidden, new ErrorResponse("You have no edit access to this group")));
            }

            var group = await groupsRepo.FindGroupByIdAsync(groupId).ConfigureAwait(false);

            var members = await groupMembersRepo.RemoveUsersFromGroupAsync(groupId, parameters.StudentIds).ConfigureAwait(false);

            await notificationsRepo.AddNotification(
                group.CourseId,
                new GroupMembersHaveBeenRemovedNotification(group.Id, parameters.StudentIds, usersRepo),
                UserId
                ).ConfigureAwait(false);

            return(Ok(new SuccessResponseWithMessage($"{members.Count} students have been removed from group {group.Id}")));
        }