Пример #1
0
        public static Component FromDescriptor(Cartridge cartridge, dynamic spec)
        {
            Component component = new Component();
            component.Name = string.IsNullOrEmpty(spec["Name"]) ? cartridge.Name : spec["Name"];
            if (((Dictionary<object, object>)spec).ContainsKey("Publishes"))
            {
                foreach (dynamic c in spec["Publishes"])
                {
                    KeyValuePair<object, dynamic> pair = (KeyValuePair<object, dynamic>)c;
                    Connector connector = Connector.FromDescriptor(pair.Key.ToString(), pair.Value);
                    component.Publishes.Add(connector);
                }
            }

            if (((Dictionary<object, object>)spec).ContainsKey("Subscribes"))
            {
                foreach (dynamic c in spec["Subscribes"])
                {
                    KeyValuePair<object, dynamic> pair = (KeyValuePair<object, dynamic>)c;
                    Connector connector = Connector.FromDescriptor(pair.Key.ToString(), pair.Value);
                    component.Subscribes.Add(connector);
                }
            }

            component.Scaling = spec.ContainsKey("Scaling") ? Scaling.FromDescriptor(spec["Scaling"]) : null;
            return component;
        }