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); }
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); }