public void Write(Scenario.Model.ScenarioModel scenario) { using (Stream stream = File.Open(_path, FileMode.Create)) { BinaryFormatter bformatter = new BinaryFormatter(); bformatter.Serialize(stream, scenario); } }
public Scenario.Model.ScenarioModel ReadScenario() { using (Stream stream = File.Open(_path, FileMode.Open)) { BinaryFormatter bformatter = new BinaryFormatter(); Scenario.Model.ScenarioModel sc = (Scenario.Model.ScenarioModel)bformatter.Deserialize(stream); return(sc); } }
public Scenario.Model.ScenarioModel Read() { using (Stream stream = File.Open(_path, FileMode.Open)) { var ss = new SurrogateSelector(); ss.AddSurrogate(typeof(System.Windows.Media.PathFigure), new StreamingContext(StreamingContextStates.All), new PathFigureSerializationSurrogate()); BinaryFormatter bformatter = new BinaryFormatter(); bformatter.SurrogateSelector = ss; Scenario.Model.ScenarioModel sc = (Scenario.Model.ScenarioModel)bformatter.Deserialize(stream); return(sc); } }
public void Write(Scenario.Model.ScenarioModel scenario) { using (Stream stream = File.Open(_path, FileMode.Create)) { var ss = new SurrogateSelector(); ss.AddSurrogate(typeof(System.Windows.Media.PathFigure), new StreamingContext(StreamingContextStates.All), new PathFigureSerializationSurrogate()); BinaryFormatter bformatter = new BinaryFormatter(); bformatter.SurrogateSelector = ss; bformatter.Serialize(stream, scenario); } }
/// <summary> /// Конструктор ModuleSettingsViewModel /// </summary> public ModuleSettingsViewModel(Scenario.Model.ScenarioModel scenario) { _scenario = scenario; _modules = new ObservableCollection<ModuleParams>(); foreach (var mng in Managers.AgentManager.Instance.AgentManagers) { if (scenario.ModulesSettings.ContainsKey(mng.Metadata.Code)) { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings(), scenario.ModulesSettings[mng.Metadata.Code])); } else { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings())); } } foreach (var mng in Managers.ServiceManager.Instance.ServiceManagers) { if (scenario.ModulesSettings.ContainsKey(mng.Metadata.Code)) { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings(), scenario.ModulesSettings[mng.Metadata.Code])); } else { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings())); } } foreach (var mng in Managers.ViewPortManager.Instance.ViewPorts) { if (scenario.ModulesSettings.ContainsKey(mng.Metadata.Code)) { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings(), scenario.ModulesSettings[mng.Metadata.Code])); } else { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings())); } } }
/// <summary> /// Конструктор ModuleSettingsViewModel /// </summary> public ModuleSettingsViewModel(Scenario.Model.ScenarioModel scenario) { _scenario = scenario; _modules = new ObservableCollection <ModuleParams>(); foreach (var mng in Managers.AgentManager.Instance.AgentManagers) { if (scenario.ModulesSettings.ContainsKey(mng.Metadata.Code)) { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings(), scenario.ModulesSettings[mng.Metadata.Code])); } else { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings())); } } foreach (var mng in Managers.ServiceManager.Instance.ServiceManagers) { if (scenario.ModulesSettings.ContainsKey(mng.Metadata.Code)) { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings(), scenario.ModulesSettings[mng.Metadata.Code])); } else { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings())); } } foreach (var mng in Managers.ViewPortManager.Instance.ViewPorts) { if (scenario.ModulesSettings.ContainsKey(mng.Metadata.Code)) { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings(), scenario.ModulesSettings[mng.Metadata.Code])); } else { _modules.Add(new ModuleParams(mng.Metadata, mng.Value.CreateSettings())); } } }
public TransitionGraphConfigViewModel(Scenario.Model.ScenarioModel scenario) { if (scenario == null) { throw new ArgumentNullException("scenario is null"); } Width = scenario.Map[0].Width; Height = scenario.Map[0].Height; if (scenario.Map[0].Substrate != null) { Background = new ImageBrush(Helpers.Imaging.ImageManager.BitmapToBitmapImage(scenario.Map[0].Substrate)); } Services = scenario.Services; //_transitionGraph = scenario.TransitionGraph; //OutputPoints = scenario.InputOutputPoints; //if (OutputPoints == null) //{ // OutputPoints = new List<WayPoint>(); //} //_transitionGraph = null; NodesAndEdges = new List <object>(); if (_transitionGraph == null) { _transitionGraph = new Graph <WayPoint, double>(); //Для каждого слоя связываем все точки for (int n = 0; n < scenario.Map.Count; n++) { var points = scenario.InputOutputPoints.Where(wp => wp.LayerId == n); foreach (var point in points) { _transitionGraph.Add(point); } if (points.Count() > 1) { var nodes = _transitionGraph.Nodes.Where(node => node.LayerId == n).ToList(); for (int i = 0; i < nodes.Count; i++) { if (!(nodes[i].IsOutput && !nodes[i].IsInput)) { for (int j = 0; j < nodes.Count; j++) { if (i != j && !(!nodes[j].IsOutput && nodes[j].IsInput)) { _transitionGraph.AddEdge(nodes[i], nodes[j], 1.0); } } } } } } //Связываем точки - порталы foreach (var portal in _transitionGraph.Nodes.Where(node => node.IsLinked)) { var link = _transitionGraph.Nodes.FirstOrDefault(n => n.IsLinked && n.LinkedPoint == portal); if (link != null) { _transitionGraph.AddEdge(portal, link, 1.0); } else { portal.IsLinked = false; portal.LinkedPoint = null; } } } NodesAndEdges.AddRange(_transitionGraph.Edges.Cast <object>()); NodesAndEdges.AddRange(_transitionGraph.Nodes); }