Exemple #1
0
        public HealthPlanRevenueDetailsListModel CreateHealthPlanDetails(HealthPlanRevenue currrentRevenuePlan, IEnumerable <OrderedPair <long, decimal> > customerAndRevenuePairs, CorporateAccount corporateAccount,
                                                                         IEnumerable <HealthPlanRevenue> healthPlanRevenueList, IEnumerable <HealthPlanRevenueItem> healthPlanRevenueItems, IEnumerable <OrderedPair <long, string> > packages,
                                                                         IEnumerable <OrderedPair <long, string> > tests, int maleCustomerCount, int femaleCustomerCount)
        {
            var     model              = new HealthPlanRevenueDetailsListModel();
            decimal totalRevenue       = 0;
            long    totalCustomerCount = 0;

            if (customerAndRevenuePairs != null && customerAndRevenuePairs.Any())
            {
                foreach (var item in customerAndRevenuePairs)
                {
                    totalRevenue       = totalRevenue + item.SecondValue;
                    totalCustomerCount = totalCustomerCount + item.FirstValue;
                }
            }

            var objHealthPlanRevenue = new HealthPlanRevenueDetailsModel
            {
                HealthPlanName      = corporateAccount.Name,
                HealthPlanId        = corporateAccount.Id,
                PricingType         = ((HealthPlanRevenueType)currrentRevenuePlan.RevenueItemTypeId).GetDescription(),
                TotalRevenue        = totalRevenue,
                TotalCustomerCount  = totalCustomerCount,
                CustomerMaleCount   = maleCustomerCount,
                CustomerFemaleCount = femaleCustomerCount
            };

            model.HealthPlanRevenueDetails  = objHealthPlanRevenue;
            model.PricingConfigurationModel = BindPricingConfiguration(healthPlanRevenueList, healthPlanRevenueItems, packages, tests);
            return(model);
        }
Exemple #2
0
        public void GetReveneuePairByCustomer(HealthPlanRevenue revenue, HealthPlanRevenueItem revenueItem, List <OrderedPair <long, decimal> > list)
        {
            var customerCount = _eventCustomerRepository.GetEventCustomerCountForHealthPlanRevenueByCustomer(revenue.AccountId, revenue.DateFrom, revenue.DateTo ?? DateTime.Today.AddDays(1));
            var price         = revenueItem.Price;

            var revenueGenderated = (price * customerCount);

            list.Add(new OrderedPair <long, decimal>(customerCount, revenueGenderated));
        }
        public HealthPlanRevenue MapHealthPlanRevenueInfo(HealthPlanRevenueEditModel model, long createdById)
        {
            var retValue = new HealthPlanRevenue();

            retValue.AccountId            = model.HealthPlanId;
            retValue.DateFrom             = model.DateFrom.Value;
            retValue.RevenueItemTypeId    = model.RevenueItemTypeId;
            retValue.DataRecorderMetaData = new DataRecorderMetaData(createdById, DateTime.Now, null);

            return(retValue);
        }
        public HealthPlanRevenue Save(HealthPlanRevenue domain)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var entity = Mapper.Map <HealthPlanRevenue, HealthPlanRevenueEntity>(domain);
                if (!adapter.SaveEntity(entity, true))
                {
                    throw new PersistenceFailureException("Could not save revenue");
                }

                return(Mapper.Map <HealthPlanRevenueEntity, HealthPlanRevenue>(entity));
            }
        }
Exemple #5
0
        private IEnumerable <OrderedPair <string, decimal> > GetPackageDetails(HealthPlanRevenue healthPlanRevenue, IEnumerable <HealthPlanRevenueItem> healthPlanRevenueItems, IEnumerable <OrderedPair <long, string> > packages)
        {
            var packageList = new List <OrderedPair <string, decimal> >();

            foreach (var item in healthPlanRevenueItems)
            {
                if (packages != null && packages.Any() && item.HealthPlanRevenueId == healthPlanRevenue.Id)
                {
                    packageList.Add(new OrderedPair <string, decimal>(packages.First(x => x.FirstValue == item.PackageId).SecondValue, item.Price));
                }
            }
            return(packageList);
        }
Exemple #6
0
        private IEnumerable <OrderedPair <string, decimal> > GetTestDetails(HealthPlanRevenue healthPlanRevenue, IEnumerable <HealthPlanRevenueItem> healthPlanRevenueItems, IEnumerable <OrderedPair <long, string> > tests)
        {
            var testList = new List <OrderedPair <string, decimal> >();

            foreach (var item in healthPlanRevenueItems)
            {
                if (tests != null && tests.Any() && item.HealthPlanRevenueId == healthPlanRevenue.Id)
                {
                    testList.Add(new OrderedPair <string, decimal>(tests.First(x => x.FirstValue == item.TestId).SecondValue, item.Price));
                }
            }
            return(testList);
        }
Exemple #7
0
        public void GetRevenuePairByPacakge(IEnumerable <HealthPlanRevenueItem> accountRevenueItems, HealthPlanRevenue revenue, List <OrderedPair <long, decimal> > list)
        {
            var packageRevenueItems = accountRevenueItems.Where(x => x.PackageId.HasValue);

            var pacakgeIds = packageRevenueItems.Select(x => x.PackageId.Value).Distinct();

            var customerCountByPackage = _eventCustomerRepository.GetEventCustomerCountForHealthPlanRevenueByPackage(revenue.AccountId, revenue.DateFrom, revenue.DateTo ?? DateTime.Today.AddDays(1), pacakgeIds);

            decimal revenueGeneatedbyPackage = 0;
            long    customerCount            = 0;

            foreach (var pacakgeId in pacakgeIds)
            {
                var customersAvailedPackagePair = customerCountByPackage.SingleOrDefault(x => x.FirstValue == pacakgeId);

                if (customersAvailedPackagePair != null)
                {
                    var customersAvailedPackage = customersAvailedPackagePair.SecondValue;
                    customerCount += customersAvailedPackage;
                    var packagePrice = packageRevenueItems.First(x => x.PackageId.Value == pacakgeId).Price;

                    revenueGeneatedbyPackage = revenueGeneatedbyPackage + (packagePrice * customersAvailedPackage);
                }
            }

            list.Add(new OrderedPair <long, decimal>(customerCount, revenueGeneatedbyPackage));
        }
Exemple #8
0
        public void GetRevenuePairByTest(IEnumerable <HealthPlanRevenueItem> accountRevenueItems, HealthPlanRevenue revenue, List <OrderedPair <long, decimal> > list)
        {
            var testIdRevenueItems = accountRevenueItems.Where(x => x.TestId.HasValue);
            var testIds            = testIdRevenueItems.Select(x => x.TestId.Value).Distinct();

            var testAvailedTestPair = _eventCustomerRepository.GetTestAvailedForHealthPlanRevenueByTest(revenue.AccountId, revenue.DateFrom, revenue.DateTo ?? DateTime.Today.AddDays(1), testIds);
            var customerCountByTest = _eventCustomerRepository.GetCustomerCountForHealthPlanRevenueByTest(revenue.AccountId, revenue.DateFrom, revenue.DateTo ?? DateTime.Today.AddDays(1), testIds);

            decimal revenueGeneatedbyTest = 0;

            foreach (var testId in testIds)
            {
                var customersAvailedTestPair = testAvailedTestPair.SingleOrDefault(x => x.FirstValue == testId);

                if (customersAvailedTestPair != null)
                {
                    var customersAvailedTest = customersAvailedTestPair.SecondValue;

                    var testPrice = testIdRevenueItems.First(x => x.TestId.Value == testId).Price;

                    revenueGeneatedbyTest = revenueGeneatedbyTest + (testPrice * customersAvailedTest);
                }
            }

            list.Add(new OrderedPair <long, decimal>(customerCountByTest, revenueGeneatedbyTest));
        }
        public HealthPlanRevenueEditModel Create(HealthPlanRevenue healthPlanRevenue, IEnumerable <HealthPlanRevenueItem> healthPlanRevenueItems)
        {
            var model = new HealthPlanRevenueEditModel();

            throw new System.NotImplementedException();
        }