Skip to content

Commit 8361a0f

Browse files
author
John Demetriou
committed
Switched to named ValueTuples to improve code readability
1 parent d0f3f90 commit 8361a0f

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

src/WorkflowCore/Services/WorkflowRegistry.cs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace WorkflowCore.Services
1111
public class WorkflowRegistry : IWorkflowRegistry
1212
{
1313
private readonly IServiceProvider _serviceProvider;
14-
private readonly BlockingCollection<Tuple<string, int, WorkflowDefinition>> _registry = new BlockingCollection<Tuple<string, int, WorkflowDefinition>>();
14+
private readonly BlockingCollection<(string, int, WorkflowDefinition)> _registry = new BlockingCollection<(string, int, WorkflowDefinition)>();
1515

1616
public WorkflowRegistry(IServiceProvider serviceProvider)
1717
{
@@ -20,23 +20,24 @@ public WorkflowRegistry(IServiceProvider serviceProvider)
2020

2121
public WorkflowDefinition GetDefinition(string workflowId, int? version = null)
2222
{
23+
(string workflowId, int version, WorkflowDefinition definition) workflowEntry;
2324
if (version.HasValue)
2425
{
25-
var entry = _registry.FirstOrDefault(x => x.Item1 == workflowId && x.Item2 == version.Value);
26-
return entry?.Item3;
26+
workflowEntry = _registry.FirstOrDefault(x => x.Item1 == workflowId && x.Item2 == version.Value);
2727
}
2828
else
2929
{
30-
var entry = _registry.Where(x => x.Item1 == workflowId).OrderByDescending(x => x.Item2)
31-
.FirstOrDefault();
32-
return entry?.Item3;
30+
workflowEntry = _registry.Where(x => x.Item1 == workflowId).OrderByDescending(x => x.Item2)
31+
.FirstOrDefault();
3332
}
33+
34+
return workflowEntry != default ? workflowEntry.definition : default;
3435
}
3536

3637
public void DeregisterWorkflow(string workflowId, int version)
3738
{
3839
var definition = _registry.FirstOrDefault(x => x.Item1 == workflowId && x.Item2 == version);
39-
if (definition != null)
40+
if (definition != default)
4041
{
4142
_registry.TryTake(out definition);
4243
}
@@ -49,10 +50,10 @@ public void RegisterWorkflow(IWorkflow workflow)
4950
throw new InvalidOperationException($"Workflow {workflow.Id} version {workflow.Version} is already registered");
5051
}
5152

52-
var builder = _serviceProvider.GetService<IWorkflowBuilder>().UseData<object>();
53+
var builder = _serviceProvider.GetService<IWorkflowBuilder>().UseData<object>();
5354
workflow.Build(builder);
5455
var def = builder.Build(workflow.Id, workflow.Version);
55-
_registry.Add(Tuple.Create(workflow.Id, workflow.Version, def));
56+
_registry.Add((workflow.Id, workflow.Version, def));
5657
}
5758

5859
public void RegisterWorkflow(WorkflowDefinition definition)
@@ -62,7 +63,7 @@ public void RegisterWorkflow(WorkflowDefinition definition)
6263
throw new InvalidOperationException($"Workflow {definition.Id} version {definition.Version} is already registered");
6364
}
6465

65-
_registry.Add(Tuple.Create(definition.Id, definition.Version, definition));
66+
_registry.Add((definition.Id, definition.Version, definition));
6667
}
6768

6869
public void RegisterWorkflow<TData>(IWorkflow<TData> workflow)
@@ -76,18 +77,18 @@ public void RegisterWorkflow<TData>(IWorkflow<TData> workflow)
7677
var builder = _serviceProvider.GetService<IWorkflowBuilder>().UseData<TData>();
7778
workflow.Build(builder);
7879
var def = builder.Build(workflow.Id, workflow.Version);
79-
_registry.Add(Tuple.Create(workflow.Id, workflow.Version, def));
80+
_registry.Add((workflow.Id, workflow.Version, def));
8081
}
8182

8283
public bool IsRegistered(string workflowId, int version)
8384
{
8485
var definition = _registry.FirstOrDefault(x => x.Item1 == workflowId && x.Item2 == version);
85-
return (definition != null);
86+
return definition != default;
8687
}
8788

8889
public IEnumerable<WorkflowDefinition> GetAllDefinitions()
8990
{
9091
return _registry.Select(i => i.Item3);
9192
}
9293
}
93-
}
94+
}

0 commit comments

Comments
 (0)