示例#1
0
        public async Task <global::Elsa.Models.WorkflowDefinitionVersion> AddAsync(global::Elsa.Models.WorkflowDefinitionVersion definition, CancellationToken cancellationToken = default)
        {
            var entity = Map(definition);
            await _workflowDefinitionVersionRepository.InsertAsync(entity, cancellationToken : cancellationToken);

            await _unitOfWorkManager.Current.SaveChangesAsync(cancellationToken);

            return(Map(entity));
        }
        public async Task CreateAsync(WorkflowDefinitionCreateDto input)
        {
            var workflow = new WorkflowDefinitionVersion(
                GuidGenerator.Create().ToString(),
                input.Name,
                input.Description,
                input.IsSingleton,
                input.IsDisabled);

            workflow.Activities = input.Activities
                                  .Select(x => new ActivityDefinition(x.Id, x.Type,
                                                                      x.State,
                                                                      x.Left, x.Top))
                                  .ToList();
            workflow.Connections = input.Connections.Select(
                x => new ConnectionDefinition(GuidGenerator.Create().ToString(), x.SourceActivityId, x.DestinationActivityId, x.Outcome)).ToList();
            workflow.IsLatest = true;
            await _workflowDefinitionVersionRepository.InsertAsync(workflow);
        }