Example #1
0
        public async Task <EnrolmentCertificate> GetEnrolmentCertificateAsync(Guid accessTokenId)
        {
            var enrollee = await _context.EnrolmentCertificateAccessTokens
                           .Where(t => t.Id == accessTokenId && t.Active)
                           .Select(t => t.Enrollee)
                           .SingleOrDefaultAsync();

            if (enrollee == null)
            {
                return(null);
            }

            // TODO Refactor this shortcut. This is only for POC of this service.
            try
            {
                var token = await _context.EnrolmentCertificateAccessTokens
                            .SingleOrDefaultAsync(t => t.Id == accessTokenId);

                token.ViewCount++;
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                // ¯\_(ツ)_/¯
            }

            return(EnrolmentCertificate.Create(enrollee));
        }
        public async Task <EnrolmentCertificate> GetEnrolmentCertificateAsync(Guid accessTokenId)
        {
            var token = await _context.EnrolmentCertificateAccessTokens
                        .Where(t => t.Id == accessTokenId)
                        .Include(t => t.Enrollee)
                        .ThenInclude(e => e.EnrolleeCareSettings)
                        .ThenInclude(org => org.CareSetting)
                        .Include(t => t.Enrollee)
                        .ThenInclude(e => e.Agreements)
                        .SingleOrDefaultAsync();

            if (token == null || token.Enrollee == null)
            {
                return(null);
            }

            await UpdateTokenMetadataAsync(token);

            if (token.Active)
            {
                return(EnrolmentCertificate.Create(token.Enrollee));
            }

            return(null);
        }
        public async void testHappyPathCertificateAccess()
        {
            Enrollee enrollee = TestDb.Has(TestUtils.EnrolleeFaker.Generate());
            var      service  = CreateWithMocks(enrollee);

            EnrolmentCertificateAccessToken token = await service.CreateCertificateAccessTokenAsync(enrollee);

            Assert.NotNull(token);

            EnrolmentCertificate cert = await service.GetEnrolmentCertificateAsync(token.Id);

            Assert.NotNull(cert);
            Assert.Equal(enrollee.GPID, cert.GPID);
        }