private static void UpdateSchemeTags(NpgsqlConnection connection, string schemeCode, Func <List <string>, List <string> > getNewTags, IWorkflowBuilder builder) { WorkflowScheme scheme = SelectByKey(connection, schemeCode); if (scheme == null) { throw SchemeNotFoundException.Create(schemeCode, SchemeLocation.WorkflowScheme); } List <string> newTags = getNewTags.Invoke(TagHelper.FromTagStringForDatabase(scheme.Tags)); scheme.Tags = TagHelper.ToTagStringForDatabase(newTags); scheme.Scheme = builder.ReplaceTagsInScheme(scheme.Scheme, newTags); scheme.Update(connection); }
private static async Task UpdateSchemeTagsAsync(SqlConnection connection, string schemeCode, Func <List <string>, List <string> > getNewTags, IWorkflowBuilder builder) { WorkflowScheme scheme = await SelectByKeyAsync(connection, schemeCode).ConfigureAwait(false); if (scheme == null) { throw SchemeNotFoundException.Create(schemeCode, SchemeLocation.WorkflowScheme); } List <string> newTags = getNewTags.Invoke(TagHelper.FromTagStringForDatabase(scheme.Tags)); scheme.Tags = TagHelper.ToTagStringForDatabase(newTags); scheme.Scheme = builder.ReplaceTagsInScheme(scheme.Scheme, newTags); await scheme.UpdateAsync(connection).ConfigureAwait(false); }