Exemplo n.º 1
0
 public void Write(Scenario.Model.ScenarioModel scenario)
 {
     using (Stream stream = File.Open(_path, FileMode.Create))
     {
         BinaryFormatter bformatter = new BinaryFormatter();
         bformatter.Serialize(stream, scenario);
     }
 }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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()));
         }
     }
 }
Exemplo n.º 6
0
 /// <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()));
         }
     }
 }
Exemplo n.º 7
0
        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);
        }