public void LoadProject(string projectFileName) { if (string.IsNullOrWhiteSpace(projectFileName)) { return; } if (!File.Exists(projectFileName)) { if (LoadProjectFailed != null) { LoadProjectFailed(this, new ProjectEventArgs(projectFileName)); } return; } projectDir = Path.GetDirectoryName(projectFileName); Project = Project.Load(projectFileName); experiment = Experiment.Load(Path.Combine(projectDir, project.Files.ExperimentFileName), project.CurrentExperimentId); string modelDir = Path.Combine(projectDir, project.Files.ModelDirectory); if (vissim.Instance.GetWorkingDirectory() != string.Format("{0}\\", modelDir)) { var filesList = Directory.GetFiles(modelDir, "*.inp"); if (filesList.Length == 0) { throw new FileNotFoundException("There are no input file in the model directory"); } string modelName = Path.GetFileName(filesList[0]); vissim.Instance.LoadNet(string.Format("{0}\\{1}{2}", modelDir, modelName, modelName.EndsWith(".inp") ? string.Empty : ".inp")); string layoutFileName = string.Format("{0}\\vissim.ini", modelDir); if (File.Exists(layoutFileName)) { vissim.Instance.LoadLayout(layoutFileName); } } SaveProjectToSettings(projectFileName); OnProjectLoaded(projectFileName); }
public void Initialize(string projectFileName) { ThreadPool.QueueUserWorkItem(o => { OnInitialization(); projectDir = Path.GetDirectoryName(projectFileName); Project = Project.Load(projectFileName); Experiment.Load(ExperimentFileName, LastSnapshotId); tree = ExperimentsTree.Load(SnapshotTreeFileName); LoadModel(); if (Experiment.GetInstance(LastSnapshotId).HasBackup) { TakeBackup(LastSnapshotId); } OnInitialized(); }); }