Skip to content

Commit

Permalink
First phase of refactor to use Extensions.Options framework
Browse files Browse the repository at this point in the history
  • Loading branch information
woutervanranst committed May 29, 2021
1 parent 930389b commit f1c54be
Show file tree
Hide file tree
Showing 16 changed files with 94 additions and 298 deletions.
1 change: 0 additions & 1 deletion Arius/Arius.Core/Arius.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

<ItemGroup>
<PackageReference Include="Azure.Storage.Blobs" Version="12.8.4" />
<PackageReference Include="FluentValidation" Version="10.2.0" />
<PackageReference Include="Microsoft.Azure.Cosmos.Table" Version="1.0.8" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="5.0.1" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0" />
Expand Down
9 changes: 5 additions & 4 deletions Arius/Arius.Core/Commands/ArchiveCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,26 @@
using Arius.Core.Models;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;

namespace Arius.Core.Commands
{

internal class ArchiveCommand : ICommand //This class is internal but the interface is public for use in the Facade
{
internal interface IOptions
internal class Options
{
string Path { get; }
public string Path { get; init; }
}

public ArchiveCommand(IOptions options,
public ArchiveCommand(IOptions<Options> options,
ILogger<ArchiveCommand> logger,
IServiceProvider serviceProvider)
{
this.logger = logger;
services = serviceProvider;

root = new DirectoryInfo(options.Path);
root = new DirectoryInfo(options.Value.Path);
}

internal static void AddBlockProviders(IServiceCollection coll/*, Facade.Facade.ArchiveCommandOptions options*/)
Expand Down
29 changes: 15 additions & 14 deletions Arius/Arius.Core/Commands/ArchiveCommandBlocks.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
using Arius.Core.Services;
using Azure.Storage.Blobs.Models;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;

namespace Arius.Core.Commands
{
Expand Down Expand Up @@ -679,22 +680,22 @@ public Task GetTask()

internal class UploadEncryptedChunksBlockProvider
{
internal interface IOptions
internal class Options
{
AccessTier Tier { get; }
public AccessTier Tier { get; init; }
}

public UploadEncryptedChunksBlockProvider(ILogger<UploadEncryptedChunksBlockProvider> logger, IOptions options, AzureRepository azureRepository)
public UploadEncryptedChunksBlockProvider(ILogger<UploadEncryptedChunksBlockProvider> logger, IOptions<Options> options, AzureRepository azureRepository)
{
_logger = logger;
_options = options;
_options = options.Value;
_azureRepository = azureRepository;

_block = new(InitBlock());
}

private readonly ILogger<UploadEncryptedChunksBlockProvider> _logger;
private readonly IOptions _options;
private readonly Options _options;
private readonly AzureRepository _azureRepository;

public TransformManyBlock<EncryptedChunkFile[], HashValue> InitBlock()
Expand Down Expand Up @@ -960,17 +961,17 @@ public ActionBlock<PointerFile> GetBlock()

internal class RemoveDeletedPointersTaskProvider
{
internal interface IOptions
internal class Options
{
string Path { get; }
public string Path { get; init; }
}

public RemoveDeletedPointersTaskProvider(ILogger<RemoveDeletedPointersTaskProvider> logger, IOptions options, AzureRepository azureRepository)
public RemoveDeletedPointersTaskProvider(ILogger<RemoveDeletedPointersTaskProvider> logger, IOptions<Options> options, AzureRepository azureRepository)
{
_logger = logger;
_azureRepository = azureRepository;

_root = new DirectoryInfo(options.Path);
_root = new DirectoryInfo(options.Value.Path);
}

private readonly ILogger<RemoveDeletedPointersTaskProvider> _logger;
Expand Down Expand Up @@ -1125,19 +1126,19 @@ public Func<Task> GetTask()

internal class DeleteBinaryFilesTaskProvider
{
internal interface IOptions
internal class Options
{
bool RemoveLocal { get; }
public bool RemoveLocal { get; init; }
}

public DeleteBinaryFilesTaskProvider(ILogger<DeleteBinaryFilesTaskProvider> logger, IOptions options)
public DeleteBinaryFilesTaskProvider(ILogger<DeleteBinaryFilesTaskProvider> logger, IOptions<Options> options)
{
_logger = logger;
_options = options;
_options = options.Value;
}

private readonly ILogger<DeleteBinaryFilesTaskProvider> _logger;
private readonly IOptions _options;
private readonly Options _options;

public DeleteBinaryFilesTaskProvider AddBinaryFilesToDelete(List<BinaryFile> binaryFilesToDelete)
{
Expand Down
40 changes: 0 additions & 40 deletions Arius/Arius.Core/Commands/AzureRepositoryOptions.cs

This file was deleted.

178 changes: 0 additions & 178 deletions Arius/Arius.Core/Commands/Options.cs

This file was deleted.

13 changes: 7 additions & 6 deletions Arius/Arius.Core/Commands/RestoreCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,20 @@
using Arius.Core.Repositories;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;

namespace Arius.Core.Commands
{
internal class RestoreCommand : ICommand //This class is internal but the interface is public for use in the Facade
{
internal interface IOptions
internal class Options
{
string Path { get; }
bool Download { get; }
bool Synchronize { get; }
public string Path { get; init; }
public bool Download { get; init; }
public bool Synchronize { get; init; }
}

public RestoreCommand(IOptions options,
public RestoreCommand(IOptions<Options> options,
ILogger<RestoreCommand> logger,
IServiceProvider serviceProvider)
{
Expand All @@ -42,7 +43,7 @@ internal static void AddBlockProviders(IServiceCollection coll)
.AddSingleton<MergeBlockProvider>();
}

private readonly IOptions _options;
private readonly Options _options;
private readonly ILogger<RestoreCommand> _logger;
private readonly IServiceProvider services;

Expand Down

0 comments on commit f1c54be

Please sign in to comment.