public PKSimTransport TransportFor(string individualProcessName, string compoundProcessName) { //do we have a process with the individual name? yes, then use it var transport = ProcessFor <PKSimTransport>(individualProcessName); if (transport != null) { return(transport); } var compoundProcess = _flatProcessesRepository.FindByName(compoundProcessName); if (compoundProcess == null) { throw new ArgumentException($"Cannot find compound process named '{compoundProcessName}'"); } var simulationProcessName = simulationProcessNameFrom(individualProcessName, compoundProcessName); return(_allSimulationActiveProcesses.FindByName(simulationProcessName).DowncastTo <PKSimTransport>()); }
private string simulationProcessNameFrom(string simulationPrefix, string compoundProcessName) { var compoundProcess = _flatProcessesRepository.FindByName(compoundProcessName); //already a process in simulation. Nothing to do if (compoundProcess.GroupName == CoreConstants.Groups.SIMULATION_ACTIVE_PROCESS) { return(compoundProcessName); } //this is a composed name return(string.Format("{0}_{1}", simulationPrefix, compoundProcess.KineticType)); }