@@ -26,6 +26,10 @@ public PluginMetadata Metadata
2626 Namespace = PluginNamespace . Connectors ,
2727 Authors = new List < string > { "FlowSynx" } ,
2828 Copyright = "© FlowSynx. All rights reserved." ,
29+ Icon = "flowsynx.png" ,
30+ ReadMe = "README.md" ,
31+ RepositoryUrl = "https://github.com/flowsynx/plugin-azure-blobs" ,
32+ ProjectUrl = "https://flowsynx.io" ,
2933 Tags = new List < string > ( ) { "FlowSynx" , "Azure" , "Blobs" , "Cloud" }
3034 } ;
3135 }
@@ -59,28 +63,22 @@ public Task Initialize(IPluginLogger logger)
5963 var operationParameter = parameters . ToObject < OperationParameter > ( ) ;
6064 var operation = operationParameter . Operation ;
6165
62- switch ( operation . ToLower ( ) )
63- {
64- case "create" :
65- await _manager . Create ( parameters , cancellationToken ) . ConfigureAwait ( false ) ;
66- return null ;
67- case "delete" :
68- await _manager . Delete ( parameters , cancellationToken ) . ConfigureAwait ( false ) ;
69- return null ;
70- case "exist" :
71- return await _manager . Exist ( parameters , cancellationToken ) . ConfigureAwait ( false ) ;
72- case "list" :
73- return await _manager . List ( parameters , cancellationToken ) . ConfigureAwait ( false ) ;
74- case "purge" :
75- await _manager . Purge ( parameters , cancellationToken ) . ConfigureAwait ( false ) ;
76- return null ;
77- case "read" :
78- return await _manager . Read ( parameters , cancellationToken ) . ConfigureAwait ( false ) ;
79- case "write" :
80- await _manager . Write ( parameters , cancellationToken ) . ConfigureAwait ( false ) ;
81- return null ;
82- default :
83- throw new NotSupportedException ( $ "Microsoft Azure Blobs plugin: Operation '{ operation } ' is not supported.") ;
84- }
66+ if ( OperationMap . TryGetValue ( operation , out var handler ) )
67+ return handler ( parameters , cancellationToken ) ;
68+
69+ throw new NotSupportedException ( $ "Microsoft Azure Blobs plugin: Operation '{ operation } ' is not supported.") ;
8570 }
71+
72+ private Dictionary < string , Func < PluginParameters , CancellationToken , Task < object ? > > > OperationMap => new ( StringComparer . OrdinalIgnoreCase )
73+ {
74+ [ "create" ] = async ( parameters , cancellationToken ) => { await _manager . Create ( parameters , cancellationToken ) ; return null ; } ,
75+ [ "delete" ] = async ( parameters , cancellationToken ) => { await _manager . Delete ( parameters , cancellationToken ) ; return null ; } ,
76+ [ "exist" ] = async ( parameters , cancellationToken ) => await _manager . Exist ( parameters , cancellationToken ) ,
77+ [ "list" ] = async ( parameters , cancellationToken ) => await _manager . List ( parameters , cancellationToken ) ,
78+ [ "purge" ] = async ( parameters , cancellationToken ) => { await _manager . Purge ( parameters , cancellationToken ) ; return null ; } ,
79+ [ "read" ] = async ( parameters , cancellationToken ) => await _manager . Read ( parameters , cancellationToken ) ,
80+ [ "write" ] = async ( parameters , cancellationToken ) => { await _manager . Write ( parameters , cancellationToken ) ; return null ; } ,
81+ } ;
82+
83+ public IReadOnlyCollection < string > SupportedOperations => OperationMap . Keys ;
8684}
0 commit comments