Skip to content

Commit b805269

Browse files
committed
DI Refactoring and html encode strings upon export and grouping m2m rels by sourceId for export as well
1 parent 86e8afc commit b805269

20 files changed

+133
-73
lines changed

src/Dataverse.ConfigurationMigrationTool/Console.Tests/Features/Import/Validators/Rules/EntitySchemas/EntitySchemaValidatorTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
using Dataverse.ConfigurationMigrationTool.Console.Features.Import.Validators.Rules.EntitySchemas;
1+

22
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared;
33
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Domain;
44
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Validators.Rules;
5+
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Validators.Rules.EntitySchemas;
56
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Validators.Rules.EntitySchemas.FieldSchemas;
67
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Validators.Rules.EntitySchemas.RelationshipSchemas;
78
using Microsoft.Xrm.Sdk.Metadata;

src/Dataverse.ConfigurationMigrationTool/Console.Tests/Features/Import/Validators/Rules/EntitySchemas/FieldSchemas/FieldTypeMustMatchWithAttributeValidationRuleTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Dataverse.ConfigurationMigrationTool.Console.Features.Import.Model;
1+
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Domain;
22
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Validators.Rules.EntitySchemas.FieldSchemas;
33
using Microsoft.Xrm.Sdk.Metadata;
44
using Shouldly;

src/Dataverse.ConfigurationMigrationTool/Console.Tests/Features/Import/Validators/Rules/EntitySchemas/FieldSchemas/LookupFieldsTargetsMustMatchValidationRuleTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Dataverse.ConfigurationMigrationTool.Console.Features.Import.Model;
1+
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Domain;
22
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Validators.Rules.EntitySchemas.FieldSchemas;
33
using Microsoft.Xrm.Sdk.Metadata;
44
using Shouldly;

src/Dataverse.ConfigurationMigrationTool/Console.Tests/Features/Import/Validators/Rules/EntitySchemas/RelationshipSchemas/SourceEntityNameMustMatchValidationRuleTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Dataverse.ConfigurationMigrationTool.Console.Features.Import.Model;
1+
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Domain;
22
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Validators.Rules.EntitySchemas.RelationshipSchemas;
33
using Microsoft.Xrm.Sdk.Metadata;
44
using Shouldly;

src/Dataverse.ConfigurationMigrationTool/Console.Tests/Features/Import/Validators/Rules/EntitySchemas/RelationshipSchemas/TargetEntityNameMustMatchValidationRuleTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Dataverse.ConfigurationMigrationTool.Console.Features.Import.Model;
1+
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Domain;
22
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Validators.Rules.EntitySchemas.RelationshipSchemas;
33
using Microsoft.Xrm.Sdk.Metadata;
44
using Shouldly;

src/Dataverse.ConfigurationMigrationTool/Console.Tests/Features/Import/Validators/Rules/SchemaValidatorTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
using Dataverse.ConfigurationMigrationTool.Console.Features.Import.Validators;
2-
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared;
1+
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared;
32
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Domain;
3+
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Validators;
44
using NSubstitute;
55
using Shouldly;
66

src/Dataverse.ConfigurationMigrationTool/Console.Tests/Features/Import/ValueConverters/DataverseValueConverterTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
using Dataverse.ConfigurationMigrationTool.Console.Features.Import.Model;
2-
using Dataverse.ConfigurationMigrationTool.Console.Features.Import.ValueConverters;
1+
using Dataverse.ConfigurationMigrationTool.Console.Features.Import.ValueConverters;
2+
using Dataverse.ConfigurationMigrationTool.Console.Features.Shared.Domain;
33
using Dataverse.ConfigurationMigrationTool.Console.Tests.FakeBuilders;
44
using Microsoft.Xrm.Sdk;
55
using Microsoft.Xrm.Sdk.Metadata;

src/Dataverse.ConfigurationMigrationTool/Console.Tests/Services/Filesystem/FileReaderDataImportProviderTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
namespace Dataverse.ConfigurationMigrationTool.Console.Tests.Services.Filesystem;
99
public class FileReaderDataImportProviderTests
1010
{
11-
private readonly IFileDataReader _dataReader;
11+
private readonly IFileDataService _dataReader;
1212
private readonly FileReaderDataImportProvider _fileReaderDataImportProvider;
1313
public FileReaderDataImportProviderTests()
1414
{
15-
_dataReader = Substitute.For<IFileDataReader>();
15+
_dataReader = Substitute.For<IFileDataService>();
1616
_fileReaderDataImportProvider = new FileReaderDataImportProvider(_dataReader,
1717
Substitute.For<ILogger<FileReaderDataImportProvider>>());
1818

src/Dataverse.ConfigurationMigrationTool/Dataverse.ConfigurationMigrationTool.Console/Features/Export/Commands/ExportCommand.cs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,25 @@
44
using Microsoft.Extensions.Options;
55

66
namespace Dataverse.ConfigurationMigrationTool.Console.Features.Export.Commands;
7+
[CommandVerb("export-data")]
78
public class ExportCommand : ICommand
89
{
910
private readonly ILogger<ExportCommand> _logger;
1011
private readonly ExportCommandOption _options;
1112
private readonly IValidator<DataSchema> _schemaValidator;
12-
private readonly IFileDataReader _fileDataReader;
13+
private readonly IFileDataService _fileDataService;
1314
private readonly IDataExportService _dataExportService;
1415

1516
public ExportCommand(ILogger<ExportCommand> logger,
1617
IOptions<ExportCommandOption> options,
1718
IValidator<DataSchema> schemaValidator,
18-
IFileDataReader fileDataReader,
19+
IFileDataService fileDataReader,
1920
IDataExportService dataExportService)
2021
{
2122
_logger = logger;
2223
_options = options.Value;
2324
_schemaValidator = schemaValidator;
24-
_fileDataReader = fileDataReader;
25+
_fileDataService = fileDataReader;
2526
_dataExportService = dataExportService;
2627
}
2728

@@ -31,7 +32,7 @@ private async Task Export(string schemafilepath, string outputfilepath)
3132
{
3233

3334
_logger.LogInformation("Parsing schema file from arguments");
34-
var schema = await _fileDataReader.ReadAsync<DataSchema>(schemafilepath);
35+
var schema = await _fileDataService.ReadAsync<DataSchema>(schemafilepath);
3536

3637
var schemaValidationResult = await _schemaValidator.Validate(schema);
3738
if (schemaValidationResult.IsError)
@@ -46,7 +47,11 @@ private async Task Export(string schemafilepath, string outputfilepath)
4647
_logger.LogInformation("Schema validation succeeded.");
4748

4849
var entities = await _dataExportService.ExportEntitiesFromSchema(schema);
49-
50+
var wrapper = new Entities
51+
{
52+
Entity = entities.ToList()
53+
};
54+
await _fileDataService.WriteAsync(wrapper, outputfilepath);
5055
}
5156

5257
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using Dataverse.ConfigurationMigrationTool.Console.Features.Export.Commands;
2+
using Microsoft.Extensions.Configuration;
3+
using Microsoft.Extensions.DependencyInjection;
4+
5+
namespace Dataverse.ConfigurationMigrationTool.Console.Features.Export;
6+
public static class IServiceCollectionExtensions
7+
{
8+
public static IServiceCollection AddExportFeature(this IServiceCollection services, IConfiguration Configuration)
9+
{
10+
services.AddScoped<IDataExportService, DataExportService>()
11+
.Configure<ExportCommandOption>(Configuration);
12+
return services;
13+
}
14+
}

0 commit comments

Comments
 (0)