示例#1
0
        public void ConfigureConnections()
        {
            Console.WriteLine(@"Configuring connections");
            var blocks      = modelManager.GetBlocks();
            var connections = modelManager.GetConnections();

            var watchables = from block in blocks
                             from connector in block.BlockModel.Connectors
                             select new ConfigurationItemModel
            {
                Connector = connector,
                Parent    = block.BlockModel,
                //TODO: include first axis label and second axis
            };

            var map = watchables.ToDictionary(item => item.Connector, item => item);

            foreach (var connection in connections)
            {
                var sink   = connection.Sink.Connector;
                var source = connection.Source.Connector;
                if (sink != null && source != null)
                {
                    Console.WriteLine("Connecting {0}.{1} with {2}.{3}\nCOE: {4} --> {5}\n#:{6}",
                                      map[source].Parent.Name, source.Name, map[sink].Parent.Name, sink.Name, source.Hook, sink.Hook, connection.GetHashCode());
                }
                else
                {
                    Console.WriteLine("Sink: {0} Sourc: {1}\n#:{2}", sink, source, connection.GetHashCode());
                }
            }

            Watchable = map.Values.ToObservableCollection();
        }