Ejemplo n.º 1
0
        private async Task DeclineToaAsync(Enrollee enrollee)
        {
            enrollee.AddEnrolmentStatus(StatusType.Editable);
            await _businessEventService.CreateStatusChangeEventAsync(enrollee.Id, "Declined TOA");

            await _context.SaveChangesAsync();
        }
Ejemplo n.º 2
0
        private async Task ProcessToaAsync(Enrollee enrollee, bool accept)
        {
            enrollee.AddEnrolmentStatus(StatusType.Editable);

            if (accept)
            {
                await SetGpid(enrollee);

                await _accessTermService.AcceptCurrentAccessTermAsync(enrollee);

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

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

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

                    await _businessEventService.CreateAdminActionEventAsync(enrollee.Id, "Admin disclaimed after TOA accepted");
                }
            }
            else
            {
                await _businessEventService.CreateStatusChangeEventAsync(enrollee.Id, "Declined TOA");
            }
            await _context.SaveChangesAsync();
        }
Ejemplo n.º 3
0
        private async Task RerunRulesAsync(Enrollee enrollee)
        {
            enrollee.AddEnrolmentStatus(StatusType.UnderReview);
            await _businessEventService.CreateStatusChangeEventAsync(enrollee.Id, "Adjudicator manually ran the enrollee application rules");

            await this.ProcessEnrolleeApplicationRules(enrollee.Id);

            await _context.SaveChangesAsync();
        }
Ejemplo n.º 4
0
        private async Task DeclineProfileAsync(Enrollee enrollee)
        {
            enrollee.AddEnrolmentStatus(StatusType.Declined);
            await _businessEventService.CreateStatusChangeEventAsync(enrollee.Id, "Declined");

            await _context.SaveChangesAsync();

            await _agreementService.ExpireCurrentEnrolleeAgreementAsync(enrollee.Id);
        }
Ejemplo n.º 5
0
        private async Task LockProfileAsync(Enrollee enrollee)
        {
            enrollee.AddEnrolmentStatus(StatusType.Locked);
            await _businessEventService.CreateStatusChangeEventAsync(enrollee.Id, "Locked");

            await _context.SaveChangesAsync();

            await _emailService.SendReminderEmailAsync(enrollee.Id);

            await _businessEventService.CreateEmailEventAsync(enrollee.Id, "Notified Enrollee");
        }
Ejemplo n.º 6
0
        private async Task EnableEditingAsync(Enrollee enrollee)
        {
            enrollee.AddEnrolmentStatus(StatusType.Editable);
            await _businessEventService.CreateStatusChangeEventAsync(enrollee.Id, "Enabled Editing");

            await _context.SaveChangesAsync();

            await _emailService.SendReminderEmailAsync(enrollee.Id);

            await _businessEventService.CreateEmailEventAsync(enrollee.Id, "Notified Enrollee");
        }
Ejemplo n.º 7
0
        private async Task EnableProfileAsync(Enrollee enrollee)
        {
            enrollee.AddEnrolmentStatus(StatusType.Editable);
            await _businessEventService.CreateStatusChangeEventAsync(enrollee.Id, "Enabled");

            await _context.SaveChangesAsync();

            await _emailService.SendReminderEmailAsync(enrollee);

            await _businessEventService.CreateEmailEventAsync(enrollee.Id, "Email to Enrollee after leaving the declined status");
        }
Ejemplo n.º 8
0
        private async Task ApproveApplicationAsync(Enrollee enrollee)
        {
            var newStatus = enrollee.AddEnrolmentStatus(StatusType.RequiresToa);

            newStatus.AddStatusReason(StatusReasonType.Manual);

            await _agreementService.CreateEnrolleeAgreementAsync(enrollee.Id);

            await _businessEventService.CreateStatusChangeEventAsync(enrollee.Id, "Manually Approved");

            await _context.SaveChangesAsync();

            await _emailService.SendReminderEmailAsync(enrollee.Id);

            await _businessEventService.CreateEmailEventAsync(enrollee.Id, "Notified Enrollee");
        }
Ejemplo n.º 9
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);
        }
Ejemplo n.º 10
0
        public async Task <int> CreateEnrolleeAsync(Enrollee enrollee)
        {
            if (enrollee == null)
            {
                throw new ArgumentNullException(nameof(enrollee), "Could not create an enrollee, the passed in Enrollee cannot be null.");
            }

            enrollee.AddEnrolmentStatus(StatusType.Editable);
            _context.Enrollees.Add(enrollee);

            var created = await _context.SaveChangesAsync();

            if (created < 1)
            {
                throw new InvalidOperationException("Could not create enrollee.");
            }

            await this._businessEventService.CreateEnrolleeEventAsync(enrollee.Id, "Enrollee Created");

            return(enrollee.Id);
        }
Ejemplo n.º 11
0
        private async Task DeclineProfileAsync(Enrollee enrollee)
        {
            enrollee.AddEnrolmentStatus(StatusType.Declined);
            await _businessEventService.CreateStatusChangeEventAsync(enrollee.Id, "Declined");

            await _context.SaveChangesAsync();

            await _agreementService.ExpireCurrentEnrolleeAgreementAsync(enrollee.Id);

            await _enrolleeService.RemoveNotificationsAsync(enrollee.Id);

            if (_httpContext.HttpContext.User.HasVCIssuance())
            {
                try
                {
                    await _verifiableCredentialService.RevokeCredentialsAsync(enrollee.Id);
                }
                catch (Exception ex)
                {
                    _logger.LogError("Error occurred attempting to revoke credentials through the Verifiable Credential agent: ${ex}", ex);
                }
            }
        }