/// <summary> /// Creates an activity that sends an HTTP Request /// </summary> /// <param name="setup">Sets the properties of the SendHttpRequest activity</param> /// <returns>The <see cref="IActivityBuilder"/> with the <see cref="Http.SendHttpRequest"/> activity built onto it.</returns> /// <inheritdoc cref="BuilderExtensions.Then{T}(IBuilder, Action{ISetupActivity{T}}?, Action{IActivityBuilder}?, int, string?)"/> public static IActivityBuilder SendHttpRequest( this IActivityBuilder builder, Action <ISetupActivity <SendHttpRequest> > setup, Action <IActivityBuilder>?activity = default, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string?sourceFile = default) => builder.Then(setup, activity, lineNumber, sourceFile);
public static IActivityBuilder Add <T>( this IActivityBuilder activityBuilder, Action <ISetupActivity <T> >?setup = default, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string?sourceFile = default) where T : class, IActivity => activityBuilder.Add(typeof(T).Name, setup, lineNumber, sourceFile);
public CompetitionsController(ILogger <MessagesController> logger, IBotClientFactory botClientFactory, ICompetitionService competitionService, IActivityBuilder activityBuilder) { _logger = logger; _botClientFactory = botClientFactory; _competitionService = competitionService; _activityBuilder = activityBuilder; }
/// <inheritdoc cref="SendHttpRequest(IActivityBuilder, Func{ActivityExecutionContext, Uri?}, Func{ActivityExecutionContext, string?}, Func{ActivityExecutionContext, string?}, Func{ActivityExecutionContext, string?}, Func{ActivityExecutionContext, string?}, Func{ActivityExecutionContext, HttpRequestHeaders}, Func{ActivityExecutionContext, bool}, Func{ActivityExecutionContext, ICollection{int}}, Action{IActivityBuilder}?, int, string?)"/> public static IActivityBuilder SendHttpRequest( this IActivityBuilder builder, Uri?url, string?method, string?content, string?contentType, string?authorization, HttpRequestHeaders requestHeaders, bool readContent, ICollection <int> supportedStatusCodes, Action <IActivityBuilder>?activity = default, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string?sourceFile = default) => builder.SendHttpRequest( setup => setup .Set(x => x.Url, url) .Set(x => x.Method, method) .Set(x => x.Content, content) .Set(x => x.ContentType, contentType) .Set(x => x.Authorization, authorization) .Set(x => x.RequestHeaders, requestHeaders) .Set(x => x.ReadContent, readContent) .Set(x => x.SupportedStatusCodes, supportedStatusCodes), activity, lineNumber, sourceFile);
public static IActivityBuilder AddEfCoreConfigurationWorkflow(this IActivityBuilder builder) { return(builder /* Add entity property to DbContext */ .Then <FileFinderStep>( step => { step.SearchFileName = new JavaScriptExpression <string>("`${ProjectInfo.Name}DbContext.cs`"); }) .Then <TextGenerationStep>(step => { step.TemplateName = "DbContext_Property"; }) .Then <DbContextStep>() .Then <FileModifierStep>() /* Add entity configuration to DbContextModelCreatingExtensions */ .Then <TextGenerationStep>(step => { step.TemplateName = "DbContextModelCreatingExtensions_Using"; step.GeneratedTextKey = new LiteralExpression("ModelingUsingText"); }) .Then <TextGenerationStep>(step => { step.TemplateName = "DbContextModelCreatingExtensions_EntityConfig"; step.GeneratedTextKey = new LiteralExpression("EntityConfigText"); }) .Then <FileFinderStep>( step => step.SearchFileName = new LiteralExpression("*DbContextModelCreatingExtensions.cs") ) .Then <DbContextModelCreatingExtensionsStep>() .Then <FileModifierStep>() ); }
public static IActivityBuilder AddEfCoreConfigurationWorkflow(this IActivityBuilder builder) { return(builder /* Add entity property to DbContext class*/ .Then <FileFinderStep>( step => { step.SearchFileName = new JavaScriptExpression <string>("`${ProjectInfo.Name}DbContext.cs`"); }) .Then <DbContextClassStep>() .Then <FileModifierStep>() .IfElse( step => step.ConditionExpression = new JavaScriptExpression <bool>("ProjectInfo.TemplateType == 1"), ifElse => { // For module, we also need to modify the IDbContext interface */ ifElse .When(OutcomeNames.True) .Then <FileFinderStep>( step => { step.SearchFileName = new JavaScriptExpression <string>("`I${ProjectInfo.Name}DbContext.cs`"); }) .Then <DbContextInterfaceStep>() .Then <FileModifierStep>() .Then("DbContextModel") ; ifElse .When(OutcomeNames.False) .Then("DbContextModel") ; } ) /* Add entity configuration to DbContextModelCreatingExtensions */ .Then <FileFinderStep>( step => step.SearchFileName = new LiteralExpression("*DbContextModelCreatingExtensions.cs") ).WithName("DbContextModel") .Then <DbContextModelCreatingExtensionsStep>() .Then <FileModifierStep>() ); }
public IConnectionBuilder Connect( IActivityBuilder source, IActivityBuilder target, string outcome = default) { return(Connect(() => source, () => target, outcome)); }
public static IActivityBuilder AddMigrationAndUpdateDatabaseWorkflow(this IActivityBuilder builder) { return(builder .Then <FileFinderStep>( step => { step.SearchFileName = new LiteralExpression("*.EntityFrameworkCore.DbMigrations.csproj"); step.ResultVariableName = new LiteralExpression("MigrationProjectFile"); } ) .Then <FileFinderStep>( step => { step.SearchFileName = new LiteralExpression("*.Web.csproj"); step.ResultVariableName = new LiteralExpression <string>("WebProjectFile"); } ) /* Add migration */ .Then <RunCommandStep>( step => step.Command = new JavaScriptExpression <string>("`dotnet ef migrations add Added${EntityInfo.Name} -p \"${MigrationProjectFile}\" -s \"${WebProjectFile}\"`") ) /* Update database */ .Then <RunCommandStep>( step => step.Command = new JavaScriptExpression <string>("`dotnet ef database update -p \"${MigrationProjectFile}\" -s \"${WebProjectFile}\"`") ) ); }
public ComposeSendHandler(IDateTimeService dateTimeService, IActivityBuilder activityBuilder, IBotClientFactory botClientFactory, ICompetitionService competitionService, ITimerService timerService) { _dateTimeService = dateTimeService; _activityBuilder = activityBuilder; _botClientFactory = botClientFactory; _competitionService = competitionService; _timerService = timerService; }
public IActivityBuilder Add( IActivityBuilder activityBuilder, Action <IActivityBuilder>?branch = default) { branch?.Invoke(activityBuilder); ActivityBuilders.Add(activityBuilder); return(activityBuilder); }
public ActionActivateCompetitionHandler(IDateTimeService dateTimeService, IBotClientFactory botClientFactory, ILocalizationFactory localizationFactory, ICompetitionService competitionService, IActivityBuilder activityBuilder, ITimerService timerService) { _dateTimeService = dateTimeService; _botClientFactory = botClientFactory; _localizationFactory = localizationFactory; _competitionService = competitionService; _activityBuilder = activityBuilder; _timerService = timerService; }
public static IActivityBuilder AddTestGenerationWorkflow(this IActivityBuilder builder) { return(builder /* Generate test files */ .Then <TemplateGroupGenerationStep>( step => { step.GroupName = "Test"; } ) ); }
public static IActivityBuilder InitRequiredVariable(this IActivityBuilder builder) { var appDir = AppDomain.CurrentDomain.BaseDirectory; return(builder.Then <SetVariable>(step => { step.VariableName = "TemplateDirectory"; step.ValueExpression = new LiteralExpression(Path.Combine(appDir, "Templates")); })); }
public static IActivityBuilder SetStartupDirectoryVariable(this IActivityBuilder builder, string directory) { string startupDirectory = GetStartupDirectory(directory); return(builder.Then <SetVariable>(step => { step.VariableName = "StartupDirectory"; step.ValueExpression = new LiteralExpression(startupDirectory); })); }
private static IActivityBlueprint BuildActivityBlueprint(IActivityBuilder builder, ICompositeActivityBlueprint parent) { var isComposite = typeof(CompositeActivity).IsAssignableFrom(builder.ActivityType); return(isComposite ? new CompositeActivityBlueprint(builder.ActivityId, parent, builder.Name, builder.DisplayName, builder.Description, builder.ActivityTypeName, builder.PersistWorkflowEnabled, builder.LoadWorkflowContextEnabled, builder.SaveWorkflowContextEnabled, builder.PersistOutputEnabled, builder.Source) : new ActivityBlueprint(builder.ActivityId, parent, builder.Name, builder.DisplayName, builder.Description, builder.ActivityTypeName, builder.PersistWorkflowEnabled, builder.LoadWorkflowContextEnabled, builder.SaveWorkflowContextEnabled, builder.PersistOutputEnabled, builder.Source)); }
public static IActivityBuilder AddOverwriteWorkflow(this IActivityBuilder builder) { return(builder .Then <SetVariable>( step => { step.VariableName = CommandConsts.OverwriteVariableName; step.ValueExpression = new JavaScriptExpression <bool>($"!{CommandConsts.OptionVariableName}.{nameof(GenerateCommandOption.NoOverwrite)}"); }) ); }
public static IActivityBuilder AddServiceGenerationWorkflow(this IActivityBuilder builder) { return(builder /* Generate dto, service interface and class files */ .Then <TemplateGroupGenerationStep>( step => { step.GroupName = "Service"; } ) /* Add mapping */ .Then <FileFinderStep>(step => step.SearchFileName = new LiteralExpression("*ApplicationAutoMapperProfile.cs")) .Then <ApplicationAutoMapperProfileStep>() .Then <FileModifierStep>() ); }
protected override IActivityBuilder ConfigureBuild(MethodsCommandOption option, IActivityBuilder activityBuilder) { return(base.ConfigureBuild(option, activityBuilder) .AddOverwriteWorkflow() .Then <SetVariable>( step => { step.VariableName = VariableNames.TemplateDirectory; step.ValueExpression = new LiteralExpression <string>("/Templates/Methods"); }) .Then <FileFinderStep>( step => { step.SearchFileName = new JavaScriptExpression <string>($"`I${{{OptionVariableName}.{nameof(MethodsCommandOption.ServiceName)}}}AppService.cs`"); }) .Then <InterfaceParserStep>() .Then <SetModelVariableStep>() .Then <AppServiceInterfaceStep>() .Then <FileModifierStep>() .Then <ForEach>( x => { x.CollectionExpression = new JavaScriptExpression <IList <object> >($"{OptionVariableName}.{nameof(MethodsCommandOption.MethodNames)}"); }, branch => branch.When(OutcomeNames.Iterate) .Then <SetVariable>( step => { step.VariableName = "Bag.Name"; step.ValueExpression = new JavaScriptExpression <string>("CurrentValue"); } ) .Then <SetModelVariableStep>() .Then <GroupGenerationStep>( step => { step.GroupName = "Service"; step.TargetDirectory = new JavaScriptExpression <string>(VariableNames.AspNetCoreDir); } ) .Then(branch) ) .Then <FileFinderStep>( step => { step.SearchFileName = new JavaScriptExpression <string>($"`${{{OptionVariableName}.{nameof(MethodsCommandOption.ServiceName)}}}AppService.cs`"); }) .Then <AppServiceClassStep>() .Then <FileModifierStep>()); }
protected override IActivityBuilder ConfigureBuild(AddCommandOption option, IActivityBuilder activityBuilder) { string efOptions = option.EfOptions == null ? String.Empty : string.Join(" ", option.EfOptions); return(base.ConfigureBuild(option, activityBuilder) .Then <SetVariable>(step => { step.VariableName = "EfOptions"; step.ValueExpression = new LiteralExpression(efOptions); }) .AddConfigureMigrationProjectsWorkflow(ActivityNames.AddMigration) .Then <RunCommandStep>( step => step.Command = new JavaScriptExpression <string>("`dotnet ef migrations add ${Option.Name} -p \"${MigrationProjectFile}\" -s \"${StartupProjectFile}\" ${EfOptions || ''}`") ).WithName(ActivityNames.AddMigration) ); }
public MessagesController( ILogger <MessagesController> logger, IBotClientFactory botClientFactory, ICompetitionService competitionService, IActivityBuilder activityBuilder, ITimerService timerService, IDateTimeService dateTimeService, ILocalizationFactory localizationFactory) { _logger = logger; _botClientFactory = botClientFactory; _competitionService = competitionService; _activityBuilder = activityBuilder; _timerService = timerService; _dateTimeService = dateTimeService; _localizationFactory = localizationFactory; }
public static IActivityBuilder AddUiRazorPagesGenerationWorkflow(this IActivityBuilder builder) { return(builder /* Generate razor pages ui files*/ .Then <TemplateGroupGenerationStep>( step => { step.GroupName = "UIRazor"; } ) /* Add menu */ .Then <FileFinderStep>( step => step.SearchFileName = new LiteralExpression("*MenuContributor.cs") ) .Then <MenuContributorStep>() .Then <FileModifierStep>() /* Add mapping */ .Then <FileFinderStep>( step => step.SearchFileName = new LiteralExpression <string>("*WebAutoMapperProfile.cs") ) .Then <WebAutoMapperProfileStep>() .Then <FileModifierStep>() /* Add localization */ .Then <TextGenerationStep>( step => { step.TemplateName = "Localization"; } ) .Then <MultiFileFinderStep>( step => { step.SearchFileName = new LiteralExpression("*.json"); step.BaseDirectory = new JavaScriptExpression <string>(@"`${BaseDirectory}\\src\\${ProjectInfo.FullName}.Domain.Shared\\Localization`"); } ) .Then <ForEach>( x => { x.CollectionExpression = new JavaScriptExpression <IList <object> >(MultiFileFinderStep.DefaultFileParameterName); }, branch => branch.When(OutcomeNames.Iterate) .Then <LocalizationJsonModificationCreatorStep>( step => { step.TargetFile = new JavaScriptExpression <string>("CurrentValue"); step.LocalizationJson = new JavaScriptExpression <string>(TextGenerationStep.DefaultGeneratedTextParameterName); } ) .Then(branch) ) ); }
public static IActivityBuilder AddEntityUsingGenerationWorkflow(this IActivityBuilder builder, string name) { return(builder .Then <TextGenerationStep>( step => { step.TemplateName = "UsingEntityNamespace"; step.GeneratedTextKey = new LiteralExpression("EntityUsingText"); } ).WithName(name) .Then <TextGenerationStep>( step => { step.TemplateName = "UsingEntityDtoNamespace"; step.GeneratedTextKey = new LiteralExpression("EntityDtoUsingText"); } ) ); }
public static IActivityBuilder AddServiceGenerationWorkflow(this IActivityBuilder builder, string name) { return(builder /* Generate dto, service interface and class files */ .Then <GroupGenerationStep>( step => { step.GroupName = "Service"; step.TargetDirectory = new JavaScriptExpression <string>(VariableNames.AspNetCoreDir); } ).WithName(name) /* Generate permissions */ .IfElse( ifElse => ifElse.ConditionExpression = new JavaScriptExpression <bool>("Option.SkipPermissions"), ifElse => { ifElse .When(OutcomeNames.True) .Then(ActivityNames.AutoMapper) ; ifElse .When(OutcomeNames.False) .Then <FileFinderStep>( step => { step.SearchFileName = new JavaScriptExpression <string>("`${ProjectInfo.Name}Permissions.cs`"); }) .Then <PermissionsStep>() .Then <FileModifierStep>() .Then <FileFinderStep>( step => { step.SearchFileName = new JavaScriptExpression <string>("`${ProjectInfo.Name}PermissionDefinitionProvider.cs`"); }) .Then <PermissionDefinitionProviderStep>() .Then <FileModifierStep>() .Then(ActivityNames.AutoMapper) ; } ) /* Add mapping */ .Then <FileFinderStep>(step => step.SearchFileName = new JavaScriptExpression <string>("`${ProjectInfo.Name}ApplicationAutoMapperProfile.cs`")).WithName(ActivityNames.AutoMapper) .Then <ApplicationAutoMapperProfileStep>() .Then <FileModifierStep>() ); }
public void SetUp() { this.activityBuilder = new SetSharedVariableActivityBuilder(new XslBuilder(new XpathBuilder())); this.activity = new SharedVariableActivity("MyActivityName", ActivityType.setSharedVariableActivityType); this.activity.VariableConfig = "myconfigPath"; var xml = @" <ns:ActivityInput xmlns:xsl=""http://w3.org/1999/XSL/Transform"" xmlns:ns=""http://www.tibco.com/pe/GenerateErrorActivitySchema""> <message> <xsl:value-of select=""'testvalue'""/> </message> </ns:ActivityInput> "; XElement doc = XElement.Parse(xml); this.activity.InputBindings = doc.Nodes(); this.activity.Parameters = new List <ClassParameter> { new ClassParameter { Name = "message", Type = "System.String" } }; }
public static IActivityBuilder SendHttpRequest(this IActivityBuilder builder, Func <Uri?> url, Func <string?> method, Func <string?> content, Func <string?> contentType, Func <string?> authorization, Func <HttpRequestHeaders> requestHeaders, Func <bool> readContent, Func <ICollection <int> > supportedStatusCodes, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string?sourceFile = default) => builder.SendHttpRequest( setup => setup .Set(x => x.Url, url) .Set(x => x.Method, method) .Set(x => x.Content, content) .Set(x => x.ContentType, contentType) .Set(x => x.Authorization, authorization) .Set(x => x.RequestHeaders, requestHeaders) .Set(x => x.ReadContent, readContent) .Set(x => x.SupportedStatusCodes, supportedStatusCodes), lineNumber, sourceFile);
public ActionEditDraftCompetitionHandler(ICompetitionService competitionService, IActivityBuilder activityBuilder) { _competitionService = competitionService; _activityBuilder = activityBuilder; }
public IConnectionBuilder Connect( IActivityBuilder source, IActivityBuilder target, string outcome = OutcomeNames.Done) => Connect(() => source, () => target, outcome);
public override IActivityBuilder Then(IActivityBuilder targetActivity) => Add(targetActivity);
public ActionJoinCompetitionHandler(IBotClientFactory botClientFactory, ICompetitionService competitionService, IActivityBuilder activityBuilder) { _botClientFactory = botClientFactory; _competitionService = competitionService; _activityBuilder = activityBuilder; }
public IActivityBuilder Then(IActivityBuilder targetActivity) { WorkflowBuilder.Connect(this, targetActivity); return(this); }