Skip to content

Commit c79911d

Browse files
committed
Update FlowSynx.PluginCore library as well change access type for classess
#5
1 parent 6336faa commit c79911d

8 files changed

Lines changed: 34 additions & 5 deletions

src/AmazonS3Plugin.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22
using FlowSynx.Plugins.Amazon.S3.Models;
33
using FlowSynx.Plugins.Amazon.S3.Services;
44
using FlowSynx.PluginCore.Extensions;
5+
using FlowSynx.PluginCore.Helpers;
56

67
namespace FlowSynx.Plugins.Amazon.S3;
78

89
public class AmazonS3Plugin : IPlugin
910
{
1011
private IAmazonS3Manager _manager = null!;
1112
private AmazonS3Specifications _s3Specifications = null!;
13+
private bool _isInitialized;
1214

1315
public PluginMetadata Metadata {
1416
get
@@ -30,16 +32,26 @@ public PluginMetadata Metadata {
3032

3133
public Task Initialize(IPluginLogger logger)
3234
{
35+
if (ReflectionHelper.IsCalledViaReflection())
36+
throw new InvalidOperationException(Resources.ReflectionBasedAccessIsNotAllowed);
37+
3338
ArgumentNullException.ThrowIfNull(logger);
3439
var connection = new AmazonS3Connection();
3540
_s3Specifications = Specifications.ToObject<AmazonS3Specifications>();
3641
var client = connection.Connect(_s3Specifications);
3742
_manager = new AmazonS3Manager(logger, client, _s3Specifications.Bucket);
43+
_isInitialized = true;
3844
return Task.CompletedTask;
3945
}
4046

4147
public async Task<object?> ExecuteAsync(PluginParameters parameters, CancellationToken cancellationToken)
4248
{
49+
if (ReflectionHelper.IsCalledViaReflection())
50+
throw new InvalidOperationException(Resources.ReflectionBasedAccessIsNotAllowed);
51+
52+
if (!_isInitialized)
53+
throw new InvalidOperationException($"Plugin '{Metadata.Name}' v{Metadata.Version} is not initialized.");
54+
4355
var operationParameter = parameters.ToObject<OperationParameter>();
4456
var operation = operationParameter.Operation;
4557

src/FlowSynx.Plugins.Amazon.S3.csproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@
1313

1414
<ItemGroup>
1515
<PackageReference Include="AWSSDK.S3" Version="3.7.310.3" />
16-
<PackageReference Include="FlowSynx.PluginCore" Version="1.2.0" />
16+
<PackageReference Include="FlowSynx.PluginCore" Version="1.2.1" />
17+
</ItemGroup>
18+
19+
<ItemGroup>
20+
<InternalsVisibleTo Include="FlowSynx.Plugins.Amazon.S3.UnitTests" />
1721
</ItemGroup>
1822

1923
<ItemGroup>

src/Resources.Designer.cs

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Resources.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,9 @@
132132
<data name="NoFilesFoundWithTheGivenFilter" xml:space="preserve">
133133
<value>No files found with the given filter in '{0}'.</value>
134134
</data>
135+
<data name="ReflectionBasedAccessIsNotAllowed" xml:space="preserve">
136+
<value>Reflection-based access is not allowed.</value>
137+
</data>
135138
<data name="ResourceNotExist" xml:space="preserve">
136139
<value>Resource '{0}' not exist!</value>
137140
</data>

src/Services/AmazonS3Connection.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
using Amazon;
22
using Amazon.Runtime;
33
using Amazon.S3;
4+
using FlowSynx.PluginCore.Helpers;
45
using FlowSynx.Plugins.Amazon.S3.Models;
56

67
namespace FlowSynx.Plugins.Amazon.S3.Services;
78

8-
public class AmazonS3Connection : IAmazonS3Connection
9+
internal class AmazonS3Connection : IAmazonS3Connection
910
{
1011
public AmazonS3Client Connect(AmazonS3Specifications specifications)
1112
{

src/Services/AmazonS3Manager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
namespace FlowSynx.Plugins.Amazon.S3.Services;
1313

14-
public class AmazonS3Manager : IAmazonS3Manager
14+
internal class AmazonS3Manager : IAmazonS3Manager
1515
{
1616
private readonly IPluginLogger _logger;
1717
private readonly AmazonS3Client _client;

src/Services/IAmazonS3Connection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
namespace FlowSynx.Plugins.Amazon.S3.Services;
55

6-
public interface IAmazonS3Connection
6+
internal interface IAmazonS3Connection
77
{
88
AmazonS3Client Connect(AmazonS3Specifications specifications);
99
}

src/Services/IAmazonS3Manager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
namespace FlowSynx.Plugins.Amazon.S3.Services;
55

6-
public interface IAmazonS3Manager
6+
internal interface IAmazonS3Manager
77
{
88
Task Create(PluginParameters parameters, CancellationToken cancellationToken);
99
Task Delete(PluginParameters parameters, CancellationToken cancellationToken);

0 commit comments

Comments
 (0)