示例#1
0
        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());
        }
示例#2
0
        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);
        }
示例#4
0
        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());
        }
示例#5
0
        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);
        }
示例#6
0
        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));
        }
示例#7
0
        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));