public async Task <IActionResult> Delete([FromHeader] string authToken, string id) { if (!await _authenticationService.CheckAccess(authToken, "benchMgr")) { return(Unauthorized()); } LabBench bench = await _labBenchService.Get(id); if (bench == null) { return(NotFound()); } await _labBenchService.Delete(id); await _logService.Create(new Log( null, AuthenticationHelpers.GetUserIdFromToken(authToken), DateTime.UtcNow, "Document deleted.", "labBenches", id, null )); return(Ok()); }
public async Task <IActionResult> Update([FromHeader] string authToken, string id, LabBenchUpdate benchIn) { if (!await _authenticationService.CheckAccess(authToken, "benchMgr")) { return(Unauthorized()); } LabBench bench = await _labBenchService.Get(id); if (bench == null) { return(NotFound()); } _labBenchService.Update(bench, benchIn); await _logService.Create(new Log( null, AuthenticationHelpers.GetUserIdFromToken(authToken), DateTime.UtcNow, "Document modified.", "labBenches", id, JsonSerializer.Serialize(LabBench.FromUpdate(bench, benchIn)) )); return(Ok()); }
public async Task <LabBench> Create(LabBenchCreate benchIn) { LabBench course = LabBench.FromCreate(benchIn); await _labBenches.InsertOneAsync(course); return(course); }
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 <ActionResult <List <LabGroupView> > > Get([FromHeader] string authToken) { if (!await _authenticationService.CheckAccess(authToken, "groupMgr")) { return(Unauthorized()); } List <LabGroup> groups = await _labGroupService.Get(); List <LabGroupView> view = new List <LabGroupView>(); foreach (LabGroup group in groups) { LabGroupView temp = LabGroupView.FromGroup(group); LabCourse course = await _labCourseService.Get(temp.LabCourseId); User prof = await _userService.Get(course.ProfessorId); LabBench bench = await _labBenchService.Get(temp.LabBenchId); temp.LabCourseName = prof.FirstName + " " + prof.LastName + " " + course.Semester + " " + course.Year + " " + course.Name; if (bench != null) { temp.LabBenchName = "Lab " + bench.Lab + " Bench " + bench.BenchNum; } foreach (string userId in temp.Members) { User user = await _userService.Get(userId); temp.MembersNames.Add(user.TechId + " " + user.Username); } view.Add(temp); } return(view); }
public async Task <ActionResult <LabBench> > Create([FromHeader] string authToken, LabBenchCreate bench) { if (!await _authenticationService.CheckAccess(authToken, "benchMgr")) { return(Unauthorized()); } LabBench created = await _labBenchService.Create(bench); await _logService.Create(new Log( null, AuthenticationHelpers.GetUserIdFromToken(authToken), DateTime.UtcNow, "Document created.", "labBenches", created.Id, JsonSerializer.Serialize(created) )); return(Ok(created)); }
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()); }
public async void CheckInOut(LabBench original, string checkInOut, string status) => await _labBenches.ReplaceOneAsync(labBench => labBench.Id == original.Id, LabBench.FromCheckInOut(original, checkInOut, status));
public async void Update(LabBench original, LabBenchUpdate update) => await _labBenches.ReplaceOneAsync(labBench => labBench.Id == original.Id, LabBench.FromUpdate(original, update));