public ProjectMapper( SimulationMapper simulationMapper, SimulationComparisonMapper simulationComparisonMapper, ParameterIdentificationMapper parameterIdentificationMapper, QualificationPlanMapper qualificationPlanMapper, IExecutionContext executionContext, IClassificationSnapshotTask classificationSnapshotTask, ILazyLoadTask lazyLoadTask, ICreationMetaDataFactory creationMetaDataFactory, ILogger logger) { _simulationMapper = simulationMapper; _simulationComparisonMapper = simulationComparisonMapper; _parameterIdentificationMapper = parameterIdentificationMapper; _qualificationPlanMapper = qualificationPlanMapper; _classificationSnapshotTask = classificationSnapshotTask; _lazyLoadTask = lazyLoadTask; _creationMetaDataFactory = creationMetaDataFactory; _logger = logger; //required to load the snapshot mapper via execution context to avoid circular references _snapshotMapper = new Lazy <ISnapshotMapper>(executionContext.Resolve <ISnapshotMapper>); }