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}"))); }
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}"))); }