private async Task <BenefitDialogViewModel> GetBenefitIds(BenefitForType listFor, string listForId)
        {
            var benefits = new BenefitDialogViewModel();

            switch (listFor)
            {
            case BenefitForType.Personnel:
                var personnel = await _personnelService.GetModelById(listForId);

                benefits.BenefitsTitle = personnel.BenefitsTitle;
                benefits.BenefitIds    = personnel.Benefits;
                break;

            case BenefitForType.ActorOrganisation:
                var orgs = await _actorOrganisationService.GetModelById(listForId);

                benefits.BenefitsTitle = orgs.BenefitsTitle;
                benefits.BenefitIds    = orgs.Benefits;
                break;

            default:
                throw new BenefitForException(listFor.ToString());
            }

            return(benefits);
        }
        public async Task <BenefitDialogViewModel> GetForCategorised(BenefitForType listFor, string listForId)
        {
            var benefitsDialog = await GetFor(listFor, listForId);

            if (benefitsDialog == null)
            {
                return(null);
            }

            benefitsDialog.Benefits = ParseBenefits(benefitsDialog.Benefits["All"]);

            return(benefitsDialog);
        }
        public async Task <BenefitDialogViewModel> GetFor(BenefitForType listFor, string listForId)
        {
            var benefitsDialog = await GetBenefitIds(listFor, listForId);

            if (benefitsDialog.BenefitIds == null || benefitsDialog.BenefitIds.Count() == 0)
            {
                return(null);
            }

            var benefits = await _benefitsService.GetByIdList(benefitsDialog.BenefitIds);

            benefitsDialog.Benefits = new Dictionary <string, IList <BenefitViewModel> > {
                { "All", benefits }
            };

            return(benefitsDialog);
        }