protected override ActivityExecutionResult OnResume(ReadLine activity, WorkflowExecutionContext workflowContext) { var receivedInput = workflowContext.Workflow.Arguments[activity.ArgumentName]; workflowContext.SetLastResult(receivedInput); return(TriggerEndpoint("Done")); }
protected override async Task <ActivityExecutionResult> OnExecuteAsync(ReadLine activity, WorkflowExecutionContext workflowContext, CancellationToken cancellationToken) { if (input == null) { return(Halt()); } var value = await input.ReadLineAsync(); workflowContext.SetLastResult(value); return(TriggerEndpoint("Done")); }
protected override ActivityExecutionResult OnExecute(WorkflowExecutionContext context) { var entityInfo = context.GetVariable <EntityInfo>("EntityInfo"); var option = context.GetVariable <object>("Option") as CrudCommandOption; try { string[] actionNames = { string.Empty, string.Empty, string.Empty }; if (option != null && option.SeparateDto) { actionNames[1] = "Create"; actionNames[2] = "Update"; } else { actionNames[1] = "CreateUpdate"; actionNames[2] = actionNames[1]; } string[] typeNames = new string[actionNames.Length]; var useEntityPrefix = option != null && option.EntityPrefixDto; var dtoSubfix = option?.DtoSuffix ?? "Dto"; for (int i = 0; i < typeNames.Length; i++) { typeNames[i] = useEntityPrefix ? $"{entityInfo.Name}{actionNames[i]}{dtoSubfix}" : $"{actionNames[i]}{entityInfo.Name}{dtoSubfix}"; } DtoInfo dtoInfo = new DtoInfo(typeNames[0], typeNames[1], typeNames[2]); context.SetLastResult(dtoInfo); context.SetVariable("DtoInfo", dtoInfo); LogOutput(() => dtoInfo); return(Done()); } catch (Exception e) { Logger.LogError(e, "Building DTO info failed."); if (e is ParseException pe) { foreach (var error in pe.Errors) { Logger.LogError(error); } } throw; } }
protected override void Execute(IWorkflowInvoker invoker, WorkflowExecutionContext workflowContext) { workflowContext.SetLastResult(value); }
protected override async Task <ActivityExecutionResult> OnExecuteAsync(WorkflowExecutionContext context, CancellationToken cancellationToken) { var baseDirectory = await context.EvaluateAsync(BaseDirectory, cancellationToken); LogInput(() => baseDirectory); var excludeDirectories = await context.EvaluateAsync(ExcludeDirectories, cancellationToken); LogInput(() => excludeDirectories, string.Join("; ", excludeDirectories)); TemplateType templateType; if (FileExistsInDirectory(baseDirectory, "*.DbMigrator.csproj", excludeDirectories)) { templateType = TemplateType.Application; } else if (FileExistsInDirectory(baseDirectory, "*.Host.Shared.csproj", excludeDirectories)) { templateType = TemplateType.Module; } else { throw new NotSupportedException($"Unknown ABP project structure. Directory: {baseDirectory}"); } // Assume the domain project must be existed for an ABP project var domainCsprojFile = SearchFileInDirectory(baseDirectory, "*.Domain.csproj", excludeDirectories); if (domainCsprojFile == null) { throw new NotSupportedException($"Cannot find the domain project file. Make sure it is a valid ABP project. Directory: {baseDirectory}"); } var fileName = Path.GetFileName(domainCsprojFile); var fullName = fileName.RemovePostFix(".Domain.csproj"); UiFramework uiFramework; if (FileExistsInDirectory(baseDirectory, "*.cshtml", excludeDirectories)) { uiFramework = UiFramework.RazorPages; } else if (FileExistsInDirectory(baseDirectory, "app.module.ts", excludeDirectories)) { uiFramework = UiFramework.Angular; } else { uiFramework = UiFramework.None; } string aspNetCoreDir = Path.Combine(baseDirectory, "aspnet-core"); if (Directory.Exists(aspNetCoreDir)) { context.SetVariable(VariableNames.AspNetCoreDir, aspNetCoreDir); } else { context.SetVariable(VariableNames.AspNetCoreDir, baseDirectory); } EnsureSlnFileExists(context, fullName); var tiered = false; if (templateType == TemplateType.Application) { tiered = FileExistsInDirectory(baseDirectory, "*.IdentityServer.csproj", excludeDirectories); } var projectInfo = new ProjectInfo(baseDirectory, fullName, templateType, uiFramework, tiered); context.SetLastResult(projectInfo); context.SetVariable("ProjectInfo", projectInfo); LogOutput(() => projectInfo); return(Done()); }