/// <summary> /// Initializes a new instance of the <see cref="SavePayorCoverageCacheRequestHandler"/> class. /// </summary> /// <param name="patientRepository">The patient repository.</param> /// <param name="mappingHelper">The mapping helper.</param> /// <param name="payorCoverageCacheRepository">The payor coverage cache repository.</param> /// <param name="payorCoverageCacheFactory">The payor coverage cache factory.</param> /// <param name="payorCacheRepository">The payor cache repository.</param> public SavePayorCoverageCacheRequestHandler( IPatientRepository patientRepository, IDtoToDomainMappingHelper mappingHelper, IPayorCoverageCacheRepository payorCoverageCacheRepository, IPayorCoverageCacheFactory payorCoverageCacheFactory, IPayorCacheRepository payorCacheRepository) { _patientRepository = patientRepository; _mappingHelper = mappingHelper; _payorCoverageCacheRepository = payorCoverageCacheRepository; _payorCoverageCacheFactory = payorCoverageCacheFactory; _payorCacheRepository = payorCacheRepository; }
/// <summary> /// Initializes a new instance of the <see cref="PayorCoverageCacheRuleCollection"/> class. /// </summary> /// <param name="payorCoverageCacheRepository">The payor coverage cache repository.</param> public PayorCoverageCacheRuleCollection(IPayorCoverageCacheRepository payorCoverageCacheRepository) { NewRule(() => NoDuplicatePayorCoverageCacheTypesWithSameEffectiveDateRangeRule) .When( (s, ctx) => { var coverageType = ctx.WorkingMemory.GetContextObject <PayorCoverageCacheType> (); var effectiveDateRange = ctx.WorkingMemory.GetContextObject <DateRange> (); var conflicts = payorCoverageCacheRepository.AnyPayorCoverageTypeInEffectiveDateRange( s.Key, s.Patient.Key, coverageType, effectiveDateRange); return(conflicts); }) .ThenReportRuleViolation("Cannot have two payor coverages with the same payor coverage type active at the same time."); NewRuleSet(() => CreatePayorCoverageCacheRuleSet, NoDuplicatePayorCoverageCacheTypesWithSameEffectiveDateRangeRule); NewRuleSet(() => RevisePayorCoverageCacheInfoRuleSet, NoDuplicatePayorCoverageCacheTypesWithSameEffectiveDateRangeRule); }
/// <summary> /// Initializes a new instance of the <see cref="PayorCoverageCacheDtoFactory"/> class. /// </summary> /// <param name="payorCoverageCacheRepository">The payor coverage cache repository.</param> public PayorCoverageCacheDtoFactory(IPayorCoverageCacheRepository payorCoverageCacheRepository) { _payorCoverageCacheRepository = payorCoverageCacheRepository; }
/// <summary> /// Initializes a new instance of the <see cref="PayorCoverageCacheFactory"/> class. /// </summary> /// <param name="payorCoverageCacheRepository">The payor coverage cache repository.</param> public PayorCoverageCacheFactory( IPayorCoverageCacheRepository payorCoverageCacheRepository ) { _payorCoverageCacheRepository = payorCoverageCacheRepository; }