@@ -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