Пример #1
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());
        }
Пример #2
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());
        }