示例#1
0
        /// <summary>
        /// Creates the payor coverage.
        /// </summary>
        /// <param name="patient">The patient.</param>
        /// <param name="payorCache">The payor cache.</param>
        /// <param name="effectiveDateRange">The effective date range.</param>
        /// <param name="memberNumber">The member number.</param>
        /// <param name="payorSubscriberCache">The payor subscriber cache.</param>
        /// <param name="payorCoverageCacheType">Type of the payor coverage cache.</param>
        /// <returns>A Payor coverage cache.</returns>
        public PayorCoverageCache CreatePayorCoverage(
            Patient patient,
            PayorCache payorCache,
            DateRange effectiveDateRange,
            string memberNumber,
            PayorSubscriberCache payorSubscriberCache,
            PayorCoverageCacheType payorCoverageCacheType)
        {
            var payorCoverage = new PayorCoverageCache(patient, payorCache, effectiveDateRange, memberNumber, payorSubscriberCache, payorCoverageCacheType);

            PayorCoverageCache createdPayorCoverage = null;

            DomainRuleEngine.CreateRuleEngine(payorCoverage, "CreatePayorCoverageRuleSet")
            .WithContext(payorCoverage.PayorCoverageCacheType)
            .WithContext(payorCoverage.EffectiveDateRange)
            .Execute(() =>
            {
                createdPayorCoverage = payorCoverage;

                _payorCoverageCacheRepository.MakePersistent(payorCoverage);
            });

            return(createdPayorCoverage);
        }