示例#1
0
        public IActivityBuilder Add <T>(Action <T> setupActivity = default, string name = default) where T : class, IActivity
        {
            var activity           = activityResolver.ResolveActivity(setupActivity);
            var activityBlueprint  = ActivityDefinition.FromActivity(activity);
            var activityBuilder    = new ActivityBuilder(this, activityBlueprint);
            var activityDescriptor = ActivityDescriber.Describe <T>();

            activityBuilder.Name        = name;
            activityBuilder.DisplayName = activityDescriptor.DisplayName;
            activityBuilder.Description = activityDescriptor.Description;
            activityBuilders.Add(activityBuilder);
            return(activityBuilder);
        }
示例#2
0
        public static ActivityDefinitionList Discover(
            this ActivityDefinitionList list,
            Action <ITypeSourceSelector> selector)
        {
            var typeSourceSelector = new TypeSourceSelector();

            selector(typeSourceSelector);

            var serviceCollection = new ServiceCollection();

            typeSourceSelector.Populate(serviceCollection, RegistrationStrategy.Replace(ReplacementBehavior.All));

            foreach (var service in serviceCollection)
            {
                list.Add(ActivityDescriber.Describe(service.ImplementationType));
            }

            return(list);
        }
示例#3
0
        private static void AutoAddWorkFlowDefinitions(IServiceCollection services)
        {
            var activityDefinitionList = new ActivityDefinitionList();
            var definitionProviders    = new List <Type>();

            services.OnRegistred(context =>
            {
                if (typeof(IActivity).IsAssignableFrom(context.ImplementationType))
                {
                    activityDefinitionList.Add(ActivityDescriber.Describe(context.ImplementationType));
                }

                if (typeof(IWorkflowProvider).IsAssignableFrom(context.ImplementationType))
                {
                    definitionProviders.Add(context.ImplementationType);
                }
            });
            services.Configure <AbpElsaOptions>(options =>
            {
                options.ActivityDefinitions = activityDefinitionList;
                options.DefinitionProviders.AddIfNotContains(definitionProviders);
            });
        }
示例#4
0
 public static ActivityDefinitionList Add <T>(this ActivityDefinitionList list) where T : IActivity
 {
     return(list.Add(ActivityDescriber.Describe <T>()));
 }