public async Task <IActionResult> Delete([FromHeader] string authToken, string id) { if (!await _authenticationService.CheckAccess(authToken, "groupMgr")) { return(Unauthorized()); } LabGroup group = await _labGroupService.Get(id); if (group == null) { return(NotFound()); } LabCourse course = await _labCourseService.Get(group.LabCourseId); if (group.Members != null) { foreach (string memberId in group.Members) { User temp = await _userService.Get(memberId); temp.Permissions.Remove("61db5dde3fb8d66a6bbdde3b"); temp.Permissions.Remove("61db59a03fb8d66a6bbdde34"); temp.Permissions.Remove("61db5a813fb8d66a6bbdde36"); await _tokenService.InvalidateUserTokens(memberId); _userService.Update(temp.Id, temp); } } LabBench bench = await _labBenchService.Get(group.LabBenchId); if (bench != null) { _labBenchService.CheckInOut(bench, null, "Available"); } await _labCourseService.RemoveGroup(course, id); await _labGroupService.Delete(id); await _logService.Create(new Log( null, AuthenticationHelpers.GetUserIdFromToken(authToken), DateTime.UtcNow, "Document deleted.", "labGroup", id, null )); return(Ok()); }
public async Task <IActionResult> Update([FromHeader] string authToken, string id, bool inOut, [FromQuery] string techId) { if (!await _authenticationService.CheckAccess(authToken, "benchMgr")) { return(Unauthorized()); } LabBench bench = await _labBenchService.Get(id); if (bench == null) { return(NotFound()); } if (inOut) { User user = await _userService.GetByTechId(techId); if (user == null) { return(NotFound()); } LabGroup group = await _labGroupService.GetByMemberId(user.Id); if (group == null) { return(NotFound()); } _labBenchService.CheckInOut(bench, group.Id, "Taken"); _labGroupService.UpdateBench(group, id); await _logService.Create(new Log( null, AuthenticationHelpers.GetUserIdFromToken(authToken), DateTime.UtcNow, "Document modified.", "labBenches", id, JsonSerializer.Serialize(LabBench.FromCheckInOut(bench, group.Id, "Taken")) )); } else { LabGroup group = await _labGroupService.GetByBenchId(bench.Id); if (group == null) { return(NotFound()); } _labGroupService.UpdateBench(group, null); _labBenchService.CheckInOut(bench, null, "Available"); await _logService.Create(new Log( null, AuthenticationHelpers.GetUserIdFromToken(authToken), DateTime.UtcNow, "Document modified.", "labBenches", id, JsonSerializer.Serialize(LabBench.FromCheckInOut(bench, null, "Available")) )); } return(Ok()); }