private void ReadActivities(Activities processTypeActivities, PoolElement poolElement) { if (processTypeActivities != null && processTypeActivities.Activity != null) { foreach (Activity activity in processTypeActivities.Activity) { object activityItem = activity.Item; if (activityItem != null) { IActivityMapper mapper = ActivityMapperAttribute.GetMapper(activityItem.GetType()); if (mapper != null) { IBaseElement element = mapper.CreateElement(activityItem, activity.NodeGraphicsInfos); element.Name = activity.Name; element.Guid = Guid.Parse(activity.Id); _elements.Add(element.Guid, element); poolElement.Elements.Add(element); } else { throw new MapperNotFoundException(activityItem.GetType()); } } } } }
/// <summary> /// Reads avaliable elements at start /// </summary> private void ReadAvailableElements() { ClassReader reader = new ClassReader(null, IsTypeToolboxVisible); var types = reader.GetTypes(); ClassAssemblyReader classAssemblyReader = new ClassAssemblyReader(Settings.Default.Assemblies); types.AddRange(classAssemblyReader.GetTypes(IsTypeToolboxVisible)); foreach (Type type in types) { ElementCreatorViewModel model = new ElementCreatorViewModel(type); ActivityMapperAttribute activityMapperAttribute = type.GetCustomAttribute <ActivityMapperAttribute>(); activityMapperAttribute?.Register(); Elements.Add(model); } }