コード例 #1
0
        public async void TestCreateAgreement_RegulatedUser(CareSettingType careSetting)
        {
            // Arrange
            var service  = CreateService();
            var enrollee = new EnrolleeFactory().Generate();

            enrollee.EnrolleeCareSettings.Single().CareSettingCode = (int)careSetting;
            enrollee.Certifications      = new CertificationFactory(enrollee).Generate(1, "default,licence.regulated");
            enrollee.AccessAgreementNote = null;
            TestDb.Has(enrollee);
            TestDb.Entry(enrollee.Certifications.Single()).Reference(c => c.License).Load();

            int expectedAgreementId = 0;

            switch (careSetting)
            {
            case CareSettingType.CommunityPractice:
                expectedAgreementId = TestDb.AgreementVersions.GetNewestIdOfType <RegulatedUserAgreement>();
                break;

            case CareSettingType.CommunityPharmacy:
                expectedAgreementId = TestDb.AgreementVersions.GetNewestIdOfType <CommunityPharmacistAgreement>();
                break;
            }

            // Act
            await service.CreateEnrolleeAgreementAsync(enrollee.Id);

            // Assert
            AssertAgreementGeneration(enrollee, expectedAgreementId);
        }
コード例 #2
0
        public void TestDetermineAgreementType_NoCerts_OneCareSetting(CareSettingType careSetting, AgreementType expectedType)
        {
            // Arrange
            var dto = new AgreementEngineDto
            {
                Certifications   = new CertificationDto[] { },
                CareSettingCodes = new[] { (int)careSetting }
            };

            // Act
            var determinedType = AgreementEngine.DetermineAgreementType(dto);

            // Assert
            Assert.Equal(expectedType, determinedType);
        }
コード例 #3
0
        public async void TestCreateAgreement_Obo(CareSettingType careSetting)
        {
            // Arrange
            var service  = CreateService();
            var enrollee = new EnrolleeFactory().Generate();

            enrollee.EnrolleeCareSettings.Single().CareSettingCode = (int)careSetting;
            enrollee.Certifications.Clear();
            enrollee.AccessAgreementNote = null;
            TestDb.Has(enrollee);

            var expectedAgreementId = TestDb.AgreementVersions.GetNewestIdOfType <OboAgreement>();

            // Act
            await service.CreateEnrolleeAgreementAsync(enrollee.Id);

            // Assert
            AssertAgreementGeneration(enrollee, expectedAgreementId);
        }
コード例 #4
0
        public async void TestCreateAgreement_LicencedObo(CareSettingType careSetting)
        {
            // Arrange
            var service  = CreateService();
            var enrollee = new EnrolleeFactory().Generate();

            enrollee.EnrolleeCareSettings.Single().CareSettingCode = (int)careSetting;
            enrollee.Certifications      = new CertificationFactory(enrollee).Generate(1, "default,licence.nonRegulated");
            enrollee.AccessAgreementNote = null;
            TestDb.Has(enrollee);
            TestDb.Entry(enrollee.Certifications.Single()).Reference(c => c.License).Load();

            var expectedAgreementId = TestDb.AgreementVersions.GetNewestIdOfType <OboAgreement>();

            // Act
            await service.CreateEnrolleeAgreementAsync(enrollee.Id);

            // Assert
            AssertAgreementGeneration(enrollee, expectedAgreementId);
        }
コード例 #5
0
        public async Task <Email> RenderProvisionerLinkEmailAsync(IEnumerable <string> recipientEmails, string cc, CareSettingType careSetting, ProvisionerAccessEmailViewModel viewModel)
        {
            var template = careSetting switch
            {
                CareSettingType.CommunityPharmacy => RazorTemplates.Emails.CommunityPharmacyManager,
                CareSettingType.HealthAuthority => RazorTemplates.Emails.HealthAuthority,
                CareSettingType.CommunityPractice => RazorTemplates.Emails.CommunityPractice,
                _ => throw new ArgumentException($"Could not recognize CareSetting {careSetting} in {nameof(RenderProvisionerLinkEmailAsync)}")
            };

            return(new Email
                   (
                       from: PrimeEmail,
                       to: recipientEmails,
                       cc: cc,
                       subject: "New Access Request",
                       body: await _razorConverterService.RenderTemplateToStringAsync(template, viewModel)
                   ));
        }
コード例 #6
0
 public bool IsType(CareSettingType type)
 {
     return(CareSettingCode == (int)type);
 }