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); }