Esempio n. 1
0
        public async Task <ActionResult <Enrollee> > SetEnrolleeAdjudicator(int enrolleeId)
        {
            var enrollee = await _enrolleeService.GetEnrolleeAsync(enrolleeId);

            if (enrollee == null)
            {
                return(NotFound(ApiResponse.Message($"Enrollee not found with id {enrolleeId}.")));
            }

            var admin = await _adminService.GetAdminForUserIdAsync(User.GetPrimeUserId());

            var updatedEnrollee = await _enrolleeService.UpdateEnrolleeAdjudicator(enrollee.Id, admin);

            await _businessEventService.CreateAdminActionEventAsync(enrolleeId, "Admin claimed enrollee");

            return(Ok(ApiResponse.Result(updatedEnrollee)));
        }
Esempio n. 2
0
        public async Task <ActionResult <EnrolleeViewModel> > SetEnrolleeAdjudicator(int enrolleeId, [FromQuery] int?adjudicatorId)
        {
            var enrollee = await _enrolleeService.GetEnrolleeAsync(enrolleeId);

            if (enrollee == null)
            {
                return(NotFound(ApiResponse.Message($"Enrollee not found with id {enrolleeId}.")));
            }

            Admin admin = (adjudicatorId.HasValue)
                ? await _adminService.GetAdminAsync(adjudicatorId.Value)
                : await _adminService.GetAdminAsync(User.GetPrimeUserId());

            if (admin == null)
            {
                return(NotFound(ApiResponse.Message($"Admin not found with id {adjudicatorId.Value}.")));
            }

            var updatedEnrollee = await _enrolleeService.UpdateEnrolleeAdjudicator(enrollee.Id, admin.Id);

            await _businessEventService.CreateAdminActionEventAsync(enrolleeId, "Admin claimed enrollee");

            return(Ok(ApiResponse.Result(updatedEnrollee)));
        }
Esempio n. 3
0
        private async Task <bool> AcceptToaAsync(Enrollee enrollee, object additionalParameters)
        {
            if (enrollee.IdentityAssuranceLevel < 3)
            {
                // Enrollees with lower assurance levels cannot electronically sign, and so must upload a signed Agreement
                if (additionalParameters is Guid documentGuid)
                {
                    var agreement = await _agreementService.GetCurrentAgreementAsync(enrollee.Id);

                    var agreementDocument = await _agreementService.AddSignedAgreementDocumentAsync(agreement.Id, documentGuid);

                    if (agreementDocument == null)
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }

            enrollee.AddEnrolmentStatus(StatusType.Editable);
            await SetGpid(enrollee);

            await _agreementService.AcceptCurrentEnrolleeAgreementAsync(enrollee.Id);

            await _privilegeService.AssignPrivilegesToEnrolleeAsync(enrollee.Id, enrollee);

            await _businessEventService.CreateStatusChangeEventAsync(enrollee.Id, "Accepted TOA");

            await _enrolleeService.RemoveNotificationsAsync(enrollee.Id);

            if (enrollee.AdjudicatorId != null)
            {
                await _enrolleeService.UpdateEnrolleeAdjudicator(enrollee.Id);

                await _businessEventService.CreateAdminActionEventAsync(enrollee.Id, "Admin disclaimed after TOA accepted");
            }

            await _context.SaveChangesAsync();

            return(true);
        }