public string ModuleCommand(IList <string> arguments) { int reactorId = int.Parse(arguments[0]); string moduleType = arguments[1]; int additionalParameter = int.Parse(arguments[2]); IModule module = moduleFactory.CreateModule(moduleType, currentId++, additionalParameter); this.modules.Add(module.Id, module); this.identifiableObjects.Add(module.Id, module); IReactor reactor = this.reactors[reactorId]; if (module is IEnergyModule energyModule) { reactor.AddEnergyModule(energyModule); } else if (module is IAbsorbingModule absorbingModule) { reactor.AddAbsorbingModule(absorbingModule); } string result = string.Format(Constants.ModuleCreateMessage, moduleType, module.Id, reactorId); return(result); }