Ejemplo n.º 1
0
        public ClassDiagramNodeData(SoftwareProcessElement processElement, String category)
            : base(processElement, category)
        {
            Attributes = new ObservableCollection <String>();

            var type       = processElement.GetType();
            var properties = type.GetProperties();

            var ignoredProperties = new List <string> {
                "IRI", "Name", "Description", "Type"
            };
            var classSpecificProperties = properties.Where(p => !ignoredProperties.Contains(p.Name)).ToList();

            foreach (var attribute in classSpecificProperties.Select(p => p.Name))
            {
                Attributes.Add(attribute);
            }

            var parametersField = type.GetFields().FirstOrDefault(f => f.Name == "Parameters");

            if (parametersField != null)
            {
                List <Parameter> parameterList = parametersField.GetValue(processElement) as List <Parameter>;
                foreach (var parameter in parameterList.Select(p => p.Name))
                {
                    Attributes.Add(parameter);
                }
            }
        }