public HealthPlanRevenueEditModel SaveHealthPlanRevenue(HealthPlanRevenueEditModel model, long createdBy)
        {
            var healthPlanRevenue  = _healthPlanRevenueFactory.MapHealthPlanRevenueInfo(model, createdBy);
            var helathPlanPrevious = _healthPlanRevenueRepository.GetHealthPlanRevenuesId(model.HealthPlanId);

            if (helathPlanPrevious != null && helathPlanPrevious.Any())
            {
                foreach (var revenue in helathPlanPrevious)
                {
                    if (revenue.DateFrom >= model.DateFrom.Value)
                    {
                        _healthPlanRevenueRepository.DeleteRevenue(revenue.Id);
                    }
                    else if (revenue.DateTo == null)
                    {
                        _healthPlanRevenueRepository.UpdatePreviousHealthPlanRevenue(model.DateFrom.Value, revenue.Id);
                    }
                    else if (revenue.DateTo.HasValue && revenue.DateTo.Value >= model.DateFrom.Value && revenue.DateTo.Value <= DateTime.Today)
                    {
                        _healthPlanRevenueRepository.UpdatePreviousHealthPlanRevenue(model.DateFrom.Value, revenue.Id);
                    }
                }
            }

            var healthPlanSaved        = _healthPlanRevenueRepository.Save(healthPlanRevenue);
            var healthPlanRevenueItems = _healthPlanRevenueFactory.MapHealthPlanRevenueItemInfo(model, healthPlanSaved.Id);

            foreach (var item in healthPlanRevenueItems)
            {
                _healthPlanRevenueItemRepository.Save(item);
            }

            model.FeedbackMessage = FeedbackMessageModel.CreateSuccessMessage("Health Plan Revenue Saved Successfully.");
            return(model);
        }
        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 ActionResult HealthPlanRevenueConfig(long accountId = 0)
        {
            var model = new HealthPlanRevenueEditModel {
                SelectedAccountId = accountId, HealthPlanId = accountId
            };

            model.PackageMasterList = _healthPlanRevenueService.GetHealthPlansPackages(model.HealthPlanId);
            model.TestMasterList    = _healthPlanRevenueService.GetHealthPlansTests(model.HealthPlanId);

            return(View(model));
        }
        public ActionResult HealthPlanRevenueConfigModel(HealthPlanRevenueEditModel model)
        {
            if (ModelState.IsValid)
            {
                _healthPlanRevenueService.SaveHealthPlanRevenue(model, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId);
                model.FeedbackMessage = FeedbackMessageModel.CreateSuccessMessage("Health Plan Revenue Saved Successfully.");
            }

            model.PackageMasterList = _healthPlanRevenueService.GetHealthPlansPackages(model.HealthPlanId);
            model.TestMasterList    = _healthPlanRevenueService.GetHealthPlansTests(model.HealthPlanId);
            return(PartialView("HealthPlanRevenueConfigModel", model));
        }
        public IEnumerable <HealthPlanRevenueItem> MapHealthPlanRevenueItemInfo(HealthPlanRevenueEditModel model, long healthPlanRevenueId)
        {
            var retValue = new List <HealthPlanRevenueItem>();

            if (model.RevenueItemTypeId == (long)HealthPlanRevenueType.PerCustomer)
            {
                var objHealthPlanRevenueItem = new HealthPlanRevenueItem();
                objHealthPlanRevenueItem.HealthPlanRevenueId = healthPlanRevenueId;
                objHealthPlanRevenueItem.Price = model.Customer.Price;
                retValue.Add(objHealthPlanRevenueItem);
            }
            else if (model.RevenueItemTypeId == (long)HealthPlanRevenueType.PerPackage)
            {
                foreach (var item in model.PackageList)
                {
                    retValue.Add(new HealthPlanRevenueItem()
                    {
                        HealthPlanRevenueId = healthPlanRevenueId,
                        PackageId           = item.PackageId,
                        Price = item.Price
                    });
                }
            }
            else if (model.RevenueItemTypeId == (long)HealthPlanRevenueType.PerTest)
            {
                foreach (var item in model.TestList)
                {
                    retValue.Add(new HealthPlanRevenueItem()
                    {
                        HealthPlanRevenueId = healthPlanRevenueId,
                        TestId = item.TestId,
                        Price  = item.Price
                    });
                }
            }
            return(retValue);
        }
        public HealthPlanRevenueEditModel Create(HealthPlanRevenue healthPlanRevenue, IEnumerable <HealthPlanRevenueItem> healthPlanRevenueItems)
        {
            var model = new HealthPlanRevenueEditModel();

            throw new System.NotImplementedException();
        }