public SimulationCaseResult Run(MaternityBenefitSimulationCase simulationCase, IEnumerable <MaternityBenefitPerson> persons)
        {
            var result     = new SimulationCaseResult();
            var personDict = persons.ToDictionary(x => x.Id);

            foreach (var person in persons)
            {
                var amount     = _executor.Execute(simulationCase, person);
                var nextResult = new PersonCaseResult()
                {
                    Person = personDict[person.Id],
                    Amount = amount
                };
                result.ResultSet.Add(person.Id, nextResult);
            }

            return(result);
        }
Пример #2
0
        public List <PersonResult> Join(SimulationCaseResult baseResult, SimulationCaseResult variantResult)
        {
            var result = new List <PersonResult>();

            foreach (var entry in baseResult.ResultSet)
            {
                var person        = entry.Value.Person;
                var baseAmount    = entry.Value.Amount;
                var variantAmount = variantResult.ResultSet[entry.Key].Amount;

                var nextResult = new PersonResult()
                {
                    Person        = person,
                    BaseAmount    = baseAmount,
                    VariantAmount = variantAmount,
                };
                result.Add(nextResult);
            }

            return(result);
        }