├── CHANGELOG.md
├── CONTRIBUTING.md
├── templates
└── .gitkeep
├── version-number.txt
├── version-suffix.txt
├── src
├── Microsoft.AzureIntegrationMigration.BizTalk.Types
│ ├── Schemas
│ │ ├── MetaModel.xsc
│ │ ├── MetaModel.xss
│ │ ├── Document.xml
│ │ ├── Document.xsd
│ │ ├── FilterExpression.xml
│ │ ├── FilterExpression.xsd
│ │ ├── ApplicationDefinition.xsd
│ │ ├── GenerateClasses.bat
│ │ ├── Root.xml
│ │ └── MetaModel.xsd
│ ├── Interfaces
│ │ ├── ISourceResource.cs
│ │ └── IErrorMessage.cs
│ ├── Entities
│ │ ├── Orchestrations
│ │ │ ├── ElementExtensionMethods.cs
│ │ │ ├── MetaModel.ISourceResource.cs
│ │ │ ├── Element.ISourceResource.cs
│ │ │ └── MetaModel.Methods.cs
│ │ ├── Bindings
│ │ │ ├── ServiceRef.ISourceResource.cs
│ │ │ ├── DistributionList.ISourceResource.cs
│ │ │ ├── ReceivePort.ISourceResource.cs
│ │ │ ├── ReceiveLocation.ISourceResource.cs
│ │ │ ├── BindingInfo.Methods.cs
│ │ │ └── SendPort.ISourceResource.cs
│ │ ├── ApplicationDefinitions
│ │ │ ├── ApplicationDefinitionConstants.cs
│ │ │ └── ApplicationDefinition.Methods.cs
│ │ ├── Pipelines
│ │ │ ├── DocumentStageComponent.ISourceResource.cs
│ │ │ ├── ComponentProperty.cs
│ │ │ ├── Root.Methods.cs
│ │ │ └── Document.Methods.cs
│ │ ├── PromotedProperty.cs
│ │ ├── DistinguishedField.cs
│ │ ├── Filters
│ │ │ ├── FilterExpression.ISourceResource.cs
│ │ │ └── FilterExpression.Methods.cs
│ │ ├── SendPipeline.cs
│ │ ├── ParsedBizTalkApplicationGroup.cs
│ │ ├── ReceivePipeline.cs
│ │ ├── AssemblyFile.cs
│ │ ├── CompiledComponent.cs
│ │ ├── ParsedBizTalkApplication.cs
│ │ ├── ContextProperty.cs
│ │ ├── MigrationContext.cs
│ │ ├── PropertyBagValue.cs
│ │ ├── BindingFile.cs
│ │ ├── PipelineComponent.cs
│ │ └── Orchestration.cs
│ ├── DictionaryExtensions.cs
│ ├── Enumerations
│ │ ├── BizTalkSchemaType.cs
│ │ ├── PipelineDirection.cs
│ │ ├── PropertyBagValueType.cs
│ │ ├── ErrorSeverity.cs
│ │ └── PipelineStage.cs
│ ├── Microsoft.AzureIntegrationMigration.BizTalk.Types.csproj
│ └── StringExtensions.cs
├── Microsoft.AzureIntegrationMigration.BizTalk.Parse
│ ├── GlobalSuppressions.cs
│ └── IBizTalkParser.cs
├── Microsoft.AzureIntegrationMigration.BizTalk.Report
│ ├── IBizTalkReporter.cs
│ ├── IReportWriter.cs
│ ├── TargetReport
│ │ ├── TargetScenario.cs
│ │ ├── TargetScenarioStage.cs
│ │ └── TargetApplication.cs
│ ├── FileReportWriter.cs
│ ├── ReportFileStructure.cs
│ └── ReportFile.cs
├── Microsoft.AzureIntegrationMigration.BizTalk.Convert
│ ├── IBizTalkConverter.cs
│ └── Repositories
│ │ └── IFileRepository.cs
├── Microsoft.AzureIntegrationMigration.BizTalk.Discover
│ └── IBizTalkDiscoverer.cs
├── Microsoft.AzureIntegrationMigration.BizTalk.StageRunners
│ ├── additionalhelp.txt
│ ├── AzureIntegrationServicesModelProvider.cs
│ ├── Parse
│ │ ├── ReceivePortParser.cs
│ │ ├── DistributionListParser.cs
│ │ ├── TransformParser.cs
│ │ ├── SendPortParser.cs
│ │ ├── PipelineParser.cs
│ │ ├── BindingFileParser.cs
│ │ ├── ApplicationParser.cs
│ │ ├── PipelineComponentParser.cs
│ │ ├── DocumentSchemaParser.cs
│ │ ├── ApplicationDefinitionParser.cs
│ │ ├── SendPortPipelineDataParser.cs
│ │ ├── PropertySchemaPropertyParser.cs
│ │ └── ReceivePortPipelineDataParser.cs
│ └── Discover
│ │ └── AssemblyDiscoverer.cs
└── Microsoft.AzureIntegrationMigration.BizTalk.Analyze
│ ├── IBizTalkAnalyzer.cs
│ └── ConversionRules
│ ├── MB001MessageBusAnalyzer.cs
│ └── AP002SystemApplicationAnalyzer.cs
├── scenarios
├── 002-XmlMapping
│ ├── msi
│ │ └── Aim.XmlMapping.msi
│ ├── src
│ │ └── Aim.XmlMapping
│ │ │ ├── Payment.xsd
│ │ │ ├── testkey.snk
│ │ │ ├── Registration.xsd
│ │ │ ├── PaymentInbound.xsd
│ │ │ ├── PaymentOutbound.xsd
│ │ │ ├── PaymentSendMap.btm
│ │ │ ├── PaymentReceiveMap.btm
│ │ │ ├── RegistrationInbound.xsd
│ │ │ ├── RegistrationOutbound.xsd
│ │ │ ├── RegistrationSendMap.btm
│ │ │ ├── RegistrationReceiveMap.btm
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ └── Aim.XmlMapping.sln
├── 001-FtpPassthru
│ ├── msi
│ │ └── Aim.FtpPassthru.msi
│ ├── src
│ │ └── Aim.FtpPassthru
│ │ │ ├── testkey.snk
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ └── Aim.FtpPassthru.sln
├── 004-HttpJsonOrch
│ ├── msi
│ │ └── Aim.HttpJsonOrch.msi
│ ├── src
│ │ └── Aim.HttpJsonOrch
│ │ │ ├── testkey.snk
│ │ │ ├── HttpJsonSendPipeline.btp
│ │ │ ├── PurchaseOrderRequest.xsd
│ │ │ ├── PurchaseOrderResponse.xsd
│ │ │ ├── HttpJsonReceivePipeline.btp
│ │ │ ├── PurchaseOrderRequestToPurchaseOrderResponseMap.btm
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ ├── samplemessages
│ │ ├── PurchaseOrderResponse.json
│ │ └── PurchaseOrderRequest.json
│ └── Aim.HttpJsonOrch.sln
├── 003-SimpleOrchestration
│ ├── msi
│ │ └── Aim.SimpleOrchestration.msi
│ ├── src
│ │ └── Aim.SimpleOrchestration
│ │ │ ├── testkey.snk
│ │ │ ├── OnboardingRequest.xsd
│ │ │ ├── CustomerRegistration.xsd
│ │ │ ├── OnboardingRequestToCustomerRegistrationMap.btm
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ └── Aim.SimpleOrchestration.sln
└── README.md
├── .github
├── issue_template.md
└── pull_request_template.md
├── nuget.config
├── CODE_OF_CONDUCT.md
├── VERIFICATION
├── LICENSE
├── tests
├── Microsoft.AzureIntegrationMigration.BizTalk.Convert.Tests
│ ├── TestConstants.cs
│ └── Microsoft.AzureIntegrationMigration.BizTalk.Convert.Tests.csproj
├── Microsoft.AzureIntegrationMigration.BizTalk.Parse.Tests
│ ├── TestConstants.cs
│ └── Microsoft.AzureIntegrationMigration.BizTalk.Parse.Tests.csproj
├── Microsoft.AzureIntegrationMigration.BizTalk.Types.Tests
│ ├── TestConstants.cs
│ └── Microsoft.AzureIntegrationMigration.BizTalk.Types.Tests.csproj
├── Microsoft.AzureIntegrationMigration.BizTalk.Analyze.Tests
│ └── TestConstants.cs
├── Microsoft.AzureIntegrationMigration.BizTalk.Report.Tests
│ ├── TestConstants.cs
│ └── TargetScenarioModellerFeature.cs
├── Microsoft.AzureIntegrationMigration.BizTalk.Discover.Tests
│ ├── TestConstants.cs
│ └── Microsoft.AzureIntegrationMigration.BizTalk.Discover.Tests.csproj
└── Microsoft.AzureIntegrationMigration.BizTalk.Cli.Tests
│ └── Microsoft.AzureIntegrationMigration.BizTalk.Cli.Tests.csproj
├── .gitattributes
├── SECURITY.md
└── README.md
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/templates/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/version-number.txt:
--------------------------------------------------------------------------------
1 | 1.0.0
2 |
--------------------------------------------------------------------------------
/version-suffix.txt:
--------------------------------------------------------------------------------
1 | beta
2 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/MetaModel.xsc:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/MetaModel.xss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/msi/Aim.XmlMapping.msi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/msi/Aim.XmlMapping.msi
--------------------------------------------------------------------------------
/scenarios/001-FtpPassthru/msi/Aim.FtpPassthru.msi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/001-FtpPassthru/msi/Aim.FtpPassthru.msi
--------------------------------------------------------------------------------
/scenarios/004-HttpJsonOrch/msi/Aim.HttpJsonOrch.msi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/004-HttpJsonOrch/msi/Aim.HttpJsonOrch.msi
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/Payment.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/src/Aim.XmlMapping/Payment.xsd
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/testkey.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/src/Aim.XmlMapping/testkey.snk
--------------------------------------------------------------------------------
/scenarios/001-FtpPassthru/src/Aim.FtpPassthru/testkey.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/001-FtpPassthru/src/Aim.FtpPassthru/testkey.snk
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/Registration.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/src/Aim.XmlMapping/Registration.xsd
--------------------------------------------------------------------------------
/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/testkey.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/testkey.snk
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/PaymentInbound.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/src/Aim.XmlMapping/PaymentInbound.xsd
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/PaymentOutbound.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/src/Aim.XmlMapping/PaymentOutbound.xsd
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/PaymentSendMap.btm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/src/Aim.XmlMapping/PaymentSendMap.btm
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/PaymentReceiveMap.btm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/src/Aim.XmlMapping/PaymentReceiveMap.btm
--------------------------------------------------------------------------------
/scenarios/003-SimpleOrchestration/msi/Aim.SimpleOrchestration.msi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/003-SimpleOrchestration/msi/Aim.SimpleOrchestration.msi
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/RegistrationInbound.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/src/Aim.XmlMapping/RegistrationInbound.xsd
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/RegistrationOutbound.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/src/Aim.XmlMapping/RegistrationOutbound.xsd
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/RegistrationSendMap.btm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/src/Aim.XmlMapping/RegistrationSendMap.btm
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/RegistrationReceiveMap.btm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/002-XmlMapping/src/Aim.XmlMapping/RegistrationReceiveMap.btm
--------------------------------------------------------------------------------
/scenarios/003-SimpleOrchestration/src/Aim.SimpleOrchestration/testkey.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/003-SimpleOrchestration/src/Aim.SimpleOrchestration/testkey.snk
--------------------------------------------------------------------------------
/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/HttpJsonSendPipeline.btp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/HttpJsonSendPipeline.btp
--------------------------------------------------------------------------------
/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/PurchaseOrderRequest.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/PurchaseOrderRequest.xsd
--------------------------------------------------------------------------------
/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/PurchaseOrderResponse.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/PurchaseOrderResponse.xsd
--------------------------------------------------------------------------------
/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/HttpJsonReceivePipeline.btp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/HttpJsonReceivePipeline.btp
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/Document.xml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/Document.xml
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/Document.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/Document.xsd
--------------------------------------------------------------------------------
/scenarios/003-SimpleOrchestration/src/Aim.SimpleOrchestration/OnboardingRequest.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/003-SimpleOrchestration/src/Aim.SimpleOrchestration/OnboardingRequest.xsd
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/FilterExpression.xml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/FilterExpression.xml
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/FilterExpression.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/FilterExpression.xsd
--------------------------------------------------------------------------------
/scenarios/003-SimpleOrchestration/src/Aim.SimpleOrchestration/CustomerRegistration.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/003-SimpleOrchestration/src/Aim.SimpleOrchestration/CustomerRegistration.xsd
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/ApplicationDefinition.xsd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/ApplicationDefinition.xsd
--------------------------------------------------------------------------------
/.github/issue_template.md:
--------------------------------------------------------------------------------
1 | ## Use the main repository to raise issues
2 |
3 | Please raise issues in the main repository for the BizTalk Migrator tool:
4 |
5 | [https://github.com/Azure/aimtool/issues](https://github.com/Azure/aimtool/issues)
--------------------------------------------------------------------------------
/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/PurchaseOrderRequestToPurchaseOrderResponseMap.btm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/PurchaseOrderRequestToPurchaseOrderResponseMap.btm
--------------------------------------------------------------------------------
/scenarios/004-HttpJsonOrch/samplemessages/PurchaseOrderResponse.json:
--------------------------------------------------------------------------------
1 | {
2 | "PurchaseOrderResponse": {
3 | "customer": {
4 | "receiveDate": "2020-09-07T16:07:55",
5 | "orderId": "123456-2020-09-07T16:07:55",
6 | "orderQuantity": 16
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/scenarios/003-SimpleOrchestration/src/Aim.SimpleOrchestration/OnboardingRequestToCustomerRegistrationMap.btm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/aimbiztalk/HEAD/scenarios/003-SimpleOrchestration/src/Aim.SimpleOrchestration/OnboardingRequestToCustomerRegistrationMap.btm
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | ## Description
2 | Please explain the changes you made here in a list.
3 |
4 | ## Related GitHub issue(s)
5 | Please tag the related issues.
6 |
7 | ## Checklist
8 | - [ ] Only increment the version number following a GitHub Release. Check this only if this PR is a version bump.
--------------------------------------------------------------------------------
/nuget.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/scenarios/004-HttpJsonOrch/samplemessages/PurchaseOrderRequest.json:
--------------------------------------------------------------------------------
1 | {
2 | "customer": {
3 | "customerId": 123456,
4 | "orderItems": [
5 | {
6 | "lineNumber": 1,
7 | "productId": "CL10221",
8 | "quantity": 1
9 | },
10 | {
11 | "lineNumber": 2,
12 | "productId": "CL1022",
13 | "quantity": 13
14 | },
15 | {
16 | "lineNumber": 3,
17 | "productId": "CL1023",
18 | "quantity": 2
19 | }
20 | ]
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Parse/GlobalSuppressions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | // This file is used by Code Analysis to maintain SuppressMessage
5 | // attributes that are applied to this project.
6 | // Project-level suppressions either have no target or are given
7 | // a specific target and scoped to a namespace, type, member, etc.
8 |
9 | using System.Diagnostics.CodeAnalysis;
10 |
11 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Microsoft Open Source Code of Conduct
2 |
3 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
4 |
5 | Resources:
6 |
7 | - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
8 | - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
9 | - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
10 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Report/IBizTalkReporter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 |
7 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Report
8 | {
9 | ///
10 | /// Defines standard behavior for a reporter.
11 | ///
12 | public interface IBizTalkReporter
13 | {
14 | ///
15 | /// Generates a report to the specified output location.
16 | ///
17 | void Report();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/scenarios/README.md:
--------------------------------------------------------------------------------
1 | | number | title | status | summary |
2 | |-------------------------------------|--------------------------|----------|----------------------------------------------|
3 | | [001](001-FtpPassthru) | FTP passthru | complete | A simple FTP passthru scenario |
4 | | [002](002-XmlMapping) | XML mapping | complete | An XML file adapter and pipeline scenario |
5 | | [003](003-SimpleOrchestration) | Simple Orchestration | complete | A Simple orchestration with map scenario |
6 | | [004](004-HttpJsonOrchestration) | Http Json Orchestration | complete | Http orchestration with json types scenario |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Report/IReportWriter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 |
7 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Report
8 | {
9 | ///
10 | /// Defines the public behavior of a report writer.
11 | ///
12 | public interface IReportWriter
13 | {
14 | ///
15 | /// Implements the report writer functionality.
16 | ///
17 | /// The location to write the report to.
18 | /// The text contents of the report.
19 | void WriteText(string location, string content);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Report/TargetReport/TargetScenario.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 |
7 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Report.TargetReport
8 | {
9 | ///
10 | /// Models a scenario in the target report.
11 | ///
12 | public class TargetScenario
13 | {
14 | ///
15 | /// Gets or sets the name of the scenario.
16 | ///
17 | public string Name { get; set; }
18 |
19 | ///
20 | /// Gets or sets the entry point of the scenario.
21 | ///
22 | public TargetScenarioStage Activator { get; set; }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Interfaces/ISourceResource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
7 |
8 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces
9 | {
10 | ///
11 | /// Defines the behaviour of a source resource object.
12 | ///
13 | public interface ISourceResource
14 | {
15 | ///
16 | /// A pointer to the resource created from this object.
17 | ///
18 | ResourceItem Resource { get; set; }
19 |
20 | ///
21 | /// Gets or sets the resource key for the object.
22 | ///
23 | string ResourceKey { get; set; }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/GenerateClasses.bat:
--------------------------------------------------------------------------------
1 | xsd.exe ./ApplicationDefinition.xsd /classes /outputdir:../Entities/ApplicationDefinitions /namespace:Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.ApplicationDefinitions
2 | xsd.exe ./BindingInfo.xsd /classes /outputdir:../Entities/Bindings /namespace:Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Bindings
3 | REM xsd.exe ./FilterExpression.xsd /classes /outputdir:../Entities/Filters /namespace:Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Filters
4 | xsd.exe ./MetaModel.xsd /classes /outputdir:../Entities/Orchestrations /namespace:Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Orchestrations
5 | xsd.exe ./Document.xsd /classes /outputdir:../Entities/Pipelines /namespace:Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Pipelines
6 | xsd.exe ./Root.xsd /classes /outputdir:../Entities /namespace:Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Pipelines
7 |
--------------------------------------------------------------------------------
/VERIFICATION:
--------------------------------------------------------------------------------
1 | VERIFICATION
2 | Verification is intended to assist Chocolatey moderators and the Chocolatey community
3 | in verifying that this package's contents are trustworthy.
4 |
5 | This package contains a number of assemblies (DLL) files, along with scripts and templates.
6 | This file lists their SHA256 checksums, as well as supplying a link to the nupkg that contains the original files, so that you can verify those files.
7 |
8 | In order to verify the files:
9 | - Download the appropriate .nupkg
10 | - Extract the files
11 | - Use nuget CLI (https://docs.microsoft.com/en-us/nuget/reference/nuget-exe-cli-reference)
12 | - OR use a ZIP tool
13 | - Obtain the checksum for the file, and compare to the value listed in here
14 |
15 | You can use one of the following methods to obtain the checksum
16 | - Use powershell function 'Get-Filehash'
17 | - Use chocolatey utility 'checksum.exe'
18 |
19 | File 'LICENSE.txt' is obtained from
20 |
21 | The nupkg sources are:
22 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Convert/IBizTalkConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Threading;
7 | using System.Threading.Tasks;
8 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
9 |
10 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Convert
11 | {
12 | ///
13 | /// Describes the public behaviour of a converter.
14 | ///
15 | public interface IBizTalkConverter
16 | {
17 | ///
18 | /// Gets the name of the converter runner.
19 | ///
20 | string Name { get; }
21 |
22 | ///
23 | /// Runs a conversion component.
24 | ///
25 | /// The cancellation token.
26 | /// Task used to await the operation.
27 | Task ConvertAsync(CancellationToken token);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Report/FileReportWriter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Text;
7 |
8 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Report
9 | {
10 | ///
11 | /// Writes report text to the file system.
12 | ///
13 | public class FileReportWriter : IReportWriter
14 | {
15 | ///
16 | /// Writes the report to text given the location specified.
17 | ///
18 | /// The path to write the file.
19 | /// The contents of the file to write.
20 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
21 | public void WriteText(string location, string content)
22 | {
23 | // Output the results
24 | using (var stream = new StreamWriter(location))
25 | {
26 | stream.Write(content);
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Discover/IBizTalkDiscoverer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Defines the interface for a BizTalk Discoverer.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Discover
12 | {
13 | ///
14 | /// Defines the interface for a BizTalk Discoverer.
15 | ///
16 | public interface IBizTalkDiscoverer
17 | {
18 | ///
19 | /// Discovers the contents of the model.
20 | ///
21 | void Discover();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Orchestrations/ElementExtensionMethods.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Runtime.CompilerServices;
7 | using System.Text;
8 |
9 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Orchestrations
10 | {
11 | ///
12 | /// Extension methods for the class.
13 | ///
14 | public static class ElementExtensionMethods
15 | {
16 | ///
17 | /// Gets the value of the property using the key supplied.
18 | ///
19 | /// The element containing the property.
20 | /// The key of the property.
21 | /// The value of the name property in the element.
22 | public static string FindPropertyValue(this Element element, string propertyKey)
23 | {
24 | return element.Property?.FirstOrDefault(p => p.Name == propertyKey)?.Value;
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) Microsoft Corporation.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE
22 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/DictionaryExtensions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using Microsoft.AzureIntegrationMigration.ApplicationModel;
8 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
9 |
10 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types
11 | {
12 | ///
13 | /// Defines extensions for the class.
14 | ///
15 | public static class DictionaryExtensions
16 | {
17 | ///
18 | /// Merges the specified dictionary into the current dictionary.
19 | ///
20 | /// The dictionary to merge into.
21 | public static void Merge(this IDictionary mergeTo, IDictionary mergeFrom)
22 | {
23 | _ = mergeTo ?? throw new ArgumentNullException(nameof(mergeTo));
24 |
25 | foreach (var kvp in mergeFrom)
26 | {
27 | mergeTo.Add(kvp);
28 | }
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Orchestrations/MetaModel.ISourceResource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Xml.Serialization;
7 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
8 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
9 | using Newtonsoft.Json;
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Orchestrations
12 | {
13 | ///
14 | /// Represents the ODX metamodel.
15 | ///
16 | public partial class MetaModel : ISourceResource
17 | {
18 | #region ISourceResource Implementation
19 |
20 | ///
21 | /// A pointer to the associated resource created from this object.
22 | ///
23 | [JsonIgnore]
24 | [XmlIgnore]
25 | public ResourceItem Resource { get; set; }
26 |
27 | ///
28 | /// The resource key for the associated resource.
29 | ///
30 | [XmlIgnore]
31 | public string ResourceKey { get; set; }
32 |
33 | #endregion
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Orchestrations/Element.ISourceResource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Xml.Serialization;
7 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
8 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
9 | using Newtonsoft.Json;
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Orchestrations
12 | {
13 | ///
14 | /// Represents an element in an ODX metamodel.
15 | ///
16 | public partial class Element : ISourceResource
17 | {
18 | #region ISourceResource Implementation
19 |
20 | ///
21 | /// A pointer to the associated resource created from this object.
22 | ///
23 | [JsonIgnore]
24 | [XmlIgnore]
25 | public ResourceItem Resource { get; set; }
26 |
27 | ///
28 | /// The resource key for the associated resource.
29 | ///
30 | [XmlIgnore]
31 | public string ResourceKey { get; set; }
32 |
33 | #endregion
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Bindings/ServiceRef.ISourceResource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Xml.Serialization;
7 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
8 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
9 | using Newtonsoft.Json;
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Bindings
12 | {
13 | ///
14 | /// Partial class that extends a service ref (orchestration binding).
15 | ///
16 | public partial class ServiceRef : ISourceResource
17 | {
18 | #region ISourceResource Implementation
19 |
20 | ///
21 | /// A pointer to the associated resource created from this object.
22 | ///
23 | [JsonIgnore]
24 | [XmlIgnore]
25 | public ResourceItem Resource { get; set; }
26 |
27 | ///
28 | /// The resource key for the associated resource.
29 | ///
30 | [XmlIgnore]
31 | public string ResourceKey { get; set; }
32 |
33 | #endregion
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/ApplicationDefinitions/ApplicationDefinitionConstants.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 |
7 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.ApplicationDefinitions
8 | {
9 | ///
10 | /// Defines constants used in the ADF file.
11 | ///
12 | public static class ApplicationDefinitionConstants
13 | {
14 | #region Element Property Keys
15 |
16 | ///
17 | /// Defines a property key of the application name.
18 | ///
19 | public const string PropertyKeyDisplayName = "DisplayName";
20 |
21 | ///
22 | /// Defines a property key of the application description.
23 | ///
24 | public const string PropertyKeyDescription = "ApplicationDescription";
25 |
26 | #endregion
27 |
28 | #region References
29 |
30 | ///
31 | /// The name of the builtin system reference.
32 | ///
33 | public const string SystemReference = "BizTalk.System";
34 |
35 | #endregion
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Pipelines/DocumentStageComponent.ISourceResource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Xml.Serialization;
7 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
8 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
9 | using Newtonsoft.Json;
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Pipelines
12 | {
13 | ///
14 | /// Extends the class.
15 | ///
16 | public partial class DocumentStageComponent : ISourceResource
17 | {
18 | #region ISourceResource Implementation
19 |
20 | ///
21 | /// A pointer to the associated resource created from this object.
22 | ///
23 | [JsonIgnore]
24 | [XmlIgnore]
25 | public ResourceItem Resource { get; set; }
26 |
27 | ///
28 | /// The resource key for the associated resource.
29 | ///
30 | [XmlIgnore]
31 | public string ResourceKey { get; set; }
32 |
33 | #endregion
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Report/TargetReport/TargetScenarioStage.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Target;
7 |
8 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Report.TargetReport
9 | {
10 | ///
11 | /// Represents a discrete stage in a target scenario.
12 | ///
13 | public class TargetScenarioStage
14 | {
15 | ///
16 | /// Gets or sets the type of stage, e.g. Endpoint or Message.
17 | ///
18 | public string StageType { get; set; }
19 |
20 | ///
21 | /// Gets or sets the name of the stage.
22 | ///
23 | public string Name { get; set; }
24 |
25 | ///
26 | /// Gets or sets the underlying messaging object associated with the stage.
27 | ///
28 | public MessagingObject MessagingObject { get; set; }
29 |
30 | ///
31 | /// The subsequent stages following this one.
32 | ///
33 | public IList FollowingStages { get; } = new List();
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Parse/IBizTalkParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Describes the public behaviour of a parser.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System;
14 | using System.Collections.Generic;
15 | using System.Text;
16 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
17 |
18 | #endregion
19 |
20 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Parse
21 | {
22 | ///
23 | /// Describes the public behaviour of a parser.
24 | ///
25 | public interface IBizTalkParser
26 | {
27 | ///
28 | /// Parses the contents of the model.
29 | ///
30 | void Parse();
31 | }
32 | }
33 |
34 |
35 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Report/TargetReport/TargetApplication.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Target;
7 |
8 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Report.TargetReport
9 | {
10 | ///
11 | /// Facilitates modelling the target application.
12 | ///
13 | public class TargetApplication
14 | {
15 | ///
16 | /// Gets or sets the associated application.
17 | ///
18 | public Application Application { get; set;}
19 |
20 | ///
21 | /// Gets or sets the average conversaion rating.
22 | ///
23 | public decimal AverageConversionRating { get; set; } = 0;
24 |
25 | ///
26 | /// Gets or sets the scenarios within the application.
27 | ///
28 | public IList Scenarios { get; } = new List();
29 |
30 | ///
31 | /// Gets a list of resources associated with the target application.
32 | ///
33 | public IList Resources { get; } = new List();
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/Aim.XmlMapping.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30011.22
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aim.XmlMapping", "src\Aim.XmlMapping\Aim.XmlMapping.btproj", "{4215B796-E53D-4575-8605-99B3071C73D6}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
17 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
18 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.Build.0 = Release|Any CPU
19 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.Deploy.0 = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(SolutionProperties) = preSolution
22 | HideSolutionNode = FALSE
23 | EndGlobalSection
24 | GlobalSection(ExtensibilityGlobals) = postSolution
25 | SolutionGuid = {34115F2F-275E-45AE-B200-AE1FDAF09C70}
26 | EndGlobalSection
27 | EndGlobal
28 |
--------------------------------------------------------------------------------
/scenarios/001-FtpPassthru/Aim.FtpPassthru.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30011.22
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aim.FtpPassthru", "src\Aim.FtpPassthru\Aim.FtpPassthru.btproj", "{4215B796-E53D-4575-8605-99B3071C73D6}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
17 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
18 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.Build.0 = Release|Any CPU
19 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.Deploy.0 = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(SolutionProperties) = preSolution
22 | HideSolutionNode = FALSE
23 | EndGlobalSection
24 | GlobalSection(ExtensibilityGlobals) = postSolution
25 | SolutionGuid = {34115F2F-275E-45AE-B200-AE1FDAF09C70}
26 | EndGlobalSection
27 | EndGlobal
28 |
--------------------------------------------------------------------------------
/scenarios/004-HttpJsonOrch/Aim.HttpJsonOrch.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30011.22
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aim.HttpJsonOrch", "src\Aim.HttpJsonOrch\Aim.HttpJsonOrch.btproj", "{4215B796-E53D-4575-8605-99B3071C73D6}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
17 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
18 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.Build.0 = Release|Any CPU
19 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.Deploy.0 = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(SolutionProperties) = preSolution
22 | HideSolutionNode = FALSE
23 | EndGlobalSection
24 | GlobalSection(ExtensibilityGlobals) = postSolution
25 | SolutionGuid = {34115F2F-275E-45AE-B200-AE1FDAF09C70}
26 | EndGlobalSection
27 | EndGlobal
28 |
--------------------------------------------------------------------------------
/scenarios/003-SimpleOrchestration/Aim.SimpleOrchestration.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30011.22
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aim.SimpleOrchestration", "src\Aim.SimpleOrchestration\Aim.SimpleOrchestration.btproj", "{4215B796-E53D-4575-8605-99B3071C73D6}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {4215B796-E53D-4575-8605-99B3071C73D6}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
17 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
18 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.Build.0 = Release|Any CPU
19 | {4215B796-E53D-4575-8605-99B3071C73D6}.Release|Any CPU.Deploy.0 = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(SolutionProperties) = preSolution
22 | HideSolutionNode = FALSE
23 | EndGlobalSection
24 | GlobalSection(ExtensibilityGlobals) = postSolution
25 | SolutionGuid = {34115F2F-275E-45AE-B200-AE1FDAF09C70}
26 | EndGlobalSection
27 | EndGlobal
28 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/additionalhelp.txt:
--------------------------------------------------------------------------------
1 |
2 | ================================================
3 | Additional Options for BizTalk Migration Package
4 | ================================================
5 |
6 | Arguments:
7 | microsoft.biztalk.msidiscoverer.msifiles
8 | One or more paths to MSI files, separated by the argument delimiter (default '|' character).
9 |
10 | microsoft.biztalk.msidiscoverer.msidir
11 | Path to a directory containing MSI files.
12 |
13 | microsoft.biztalk.msidiscoverer.unpackdir
14 | Path to a directory where the MSI files will be unpacked.
15 |
16 | microsoft.biztalk.htmlreporter.reportfile
17 | Path to a file where the HTML report will be written.
18 |
19 | Examples:
20 | Specify single MSI file:
21 | aim assess -a "microsoft.biztalk.msidiscoverer.msifiles=C:\msi\app.msi"
22 |
23 | Specify multiple MSI files:
24 | aim assess -a "microsoft.biztalk.msidiscoverer.msifiles=C:\msi\app1.msi|C:\msi\app2.msi"
25 |
26 | Specify directory containing MSI files:
27 | aim assess -a "microsoft.biztalk.msidiscoverer.msidir=C:\msi"
28 |
29 | Specify directory containing MSI files with unpack directory:
30 | aim assess -a "microsoft.biztalk.msidiscoverer.msidir=C:\msi" -a "microsoft.biztalk.msidiscoverer.unpackdir=C:\temp"
31 |
32 | Specify a custom report file name and location:
33 | aim assess -a "microsoft.biztalk.htmlreporter.reportfile=C:\reportoutput\report.html"
34 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Convert.Tests/TestConstants.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 |
7 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Convert.Tests
8 | {
9 | ///
10 | /// Defines test constants such as traits and categories.
11 | ///
12 | public static class TestConstants
13 | {
14 | #region Traits
15 |
16 | ///
17 | /// Defines a category trait that can be used to define the type of test.
18 | ///
19 | public const string TraitCategory = "Category";
20 |
21 | #endregion
22 |
23 | #region Categories
24 |
25 | ///
26 | /// Defines a category for unit tests.
27 | ///
28 | public const string CategoryUnitTest = "Unit";
29 |
30 | ///
31 | /// Defines a category for integration tests.
32 | ///
33 | public const string CategoryIntegrationTest = "Integration";
34 |
35 | ///
36 | /// Defines a category for acceptance tests.
37 | ///
38 | public const string CategoryAcceptanceTest = "Acceptance";
39 |
40 | ///
41 | /// Defines a category for smoke tests.
42 | ///
43 | public const string CategorySmokeTest = "Smoke";
44 |
45 | #endregion
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/Root.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | SpecName
16 | EnvelopeSpecName
17 | 1
18 | 2
19 | Charset
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | -1
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/PromotedProperty.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents a promoted property on a BizTalk Schema.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System;
14 | using System.Collections.Generic;
15 | using System.Text;
16 |
17 | #endregion
18 |
19 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
20 | {
21 | ///
22 | /// Represents a promoted property on a BizTalk Schema.
23 | ///
24 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
25 | [Serializable]
26 | public class PromotedProperty
27 | {
28 | ///
29 | /// Gets or sets the promoted property XPath.
30 | ///
31 | public string XPath { get; set; }
32 |
33 | ///
34 | /// Gets or sets the type reference for the promoted property.
35 | ///
36 | public string PropertyType { get; set; }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Bindings/DistributionList.ISourceResource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Xml.Serialization;
7 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
8 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Filters;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
10 | using Newtonsoft.Json;
11 |
12 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Bindings
13 | {
14 | ///
15 | /// Extends the class.
16 | ///
17 | public partial class DistributionList : ISourceResource
18 | {
19 | #region ISourceResource Implementation
20 |
21 | ///
22 | /// A pointer to the associated resource created from this object.
23 | ///
24 | [JsonIgnore]
25 | [XmlIgnore]
26 | public ResourceItem Resource { get; set; }
27 |
28 | ///
29 | /// The resource key for the associated resource.
30 | ///
31 | [XmlIgnore]
32 | public string ResourceKey { get; set; }
33 |
34 | #endregion
35 |
36 | ///
37 | /// Gets or sets the deserialized associated with the send port group.
38 | ///
39 | [XmlIgnore]
40 | public Filter FilterExpression { get; set; }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/DistinguishedField.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents a distinguished field on a BizTalk Schema.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System;
14 | using System.Collections.Generic;
15 | using System.Text;
16 |
17 | #endregion
18 |
19 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
20 | {
21 | ///
22 | /// Represents a distinguished field on a BizTalk Schema.
23 | ///
24 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
25 | [Serializable]
26 | public class DistinguishedField
27 | {
28 | ///
29 | /// Gets or sets the distinguished field XPath.
30 | ///
31 | public string XPath { get; set; }
32 |
33 | ///
34 | /// Gets or sets the name of the distinguished field.
35 | ///
36 | public string DistinguishedFieldName { get; set; }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Bindings/ReceivePort.ISourceResource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Xml.Serialization;
7 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
8 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Pipelines;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
10 | using Newtonsoft.Json;
11 |
12 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Bindings
13 | {
14 | ///
15 | /// Extensions for the receive port.
16 | ///
17 | public partial class ReceivePort : ISourceResource
18 | {
19 | #region ISourceResource Implementation
20 |
21 | ///
22 | /// A pointer to the associated resource created from this object.
23 | ///
24 | [JsonIgnore]
25 | [XmlIgnore]
26 | public ResourceItem Resource { get; set; }
27 |
28 | ///
29 | /// The resource key for the associated resource.
30 | ///
31 | [XmlIgnore]
32 | public string ResourceKey { get; set; }
33 |
34 | #endregion
35 |
36 | ///
37 | /// Gets or sets the deserialized detailing the custom configuration for this instance of the receive pipeline.
38 | ///
39 | [XmlIgnore]
40 | public Root SendPipelineCustomConfiguration { get; set; }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Enumerations/BizTalkSchemaType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Enum of schema types.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System;
14 | using System.Collections.Generic;
15 | using System.Text;
16 | using Newtonsoft.Json;
17 | using Newtonsoft.Json.Converters;
18 |
19 | #endregion
20 |
21 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations
22 | {
23 | ///
24 | /// Enum of schema types.
25 | ///
26 | [JsonConverter(typeof(StringEnumConverter))]
27 | public enum BizTalkSchemaType
28 | {
29 | ///
30 | /// The schema type is unknown or hasn't been determined.
31 | ///
32 | Unknown,
33 |
34 | ///
35 | /// This is a property schema.
36 | ///
37 | Property,
38 |
39 | ///
40 | /// This is a document schema.
41 | ///
42 | Document
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Report/ReportFileStructure.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Report;
7 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
8 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Target;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.Report.TargetReport;
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Report
12 | {
13 | ///
14 | /// Represents the file structure of the report on disk.
15 | ///
16 | public class ReportFileStructure
17 | {
18 | ///
19 | /// Gets or sets the summary section (home).
20 | ///
21 | public ReportFile Summary { get; set; }
22 |
23 | ///
24 | /// Gets the source applications for the report.
25 | ///
26 | public IList> SourceApplications { get; } = new List>();
27 |
28 | ///
29 | /// Gets or sets the target message bus section for the report.
30 | ///
31 | public ReportFile TargetMessageBus { get; set; }
32 |
33 | ///
34 | /// Gets the target applications for the report.
35 | ///
36 | public IList> TargetApplications { get; } = new List>();
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Pipelines/ComponentProperty.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents the properties of a pipeline component within the BizTalk bindings.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Pipelines
12 | {
13 | ///
14 | /// Represents the properties of a pipeline component within the BizTalk bindings.
15 | ///
16 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
17 | public class ComponentProperty
18 | {
19 | ///
20 | /// Gets or sets the name of the property.
21 | ///
22 | public string Name { get; set; }
23 |
24 | ///
25 | /// Gets or sets the value type identifier of the property.
26 | ///
27 | public string ValueType { get; set; }
28 |
29 | ///
30 | /// Gets or sets the value of the property.
31 | ///
32 | public string Value { get; set; }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Interfaces/IErrorMessage.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Interface for error messages.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces
12 | {
13 | #region Using Directives
14 |
15 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
16 |
17 | #endregion
18 |
19 | ///
20 | /// Interface for error messages.
21 | ///
22 | public interface IErrorMessage
23 | {
24 | #region Properties
25 |
26 | ///
27 | /// Gets or sets the error message.
28 | ///
29 | string Message { get; set; }
30 |
31 | ///
32 | /// Gets or sets the StackTrace for this error.
33 | ///
34 | string StackTrace { get; set; }
35 |
36 | ///
37 | /// Gets or sets the severity of the error.
38 | ///
39 | ErrorSeverity Severity { get; set; }
40 |
41 | #endregion
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Analyze/IBizTalkAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Describes the public behaviour of an analyzer.
9 | //-----------------------------------------------------------------------
10 |
11 | using System;
12 | using System.Collections.Generic;
13 | using System.Text;
14 | using System.Threading;
15 | using System.Threading.Tasks;
16 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
17 |
18 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Analyze
19 | {
20 | ///
21 | /// Describes the public behaviour of an analyzer.
22 | ///
23 | public interface IBizTalkAnalyzer
24 | {
25 | ///
26 | /// Gets the name of the analyzer runner.
27 | ///
28 | string Name { get; }
29 |
30 | ///
31 | /// Analyzes the contents of the parsed source and builds the output report.
32 | ///
33 | /// The cancellation token.
34 | /// Task used to await the operation.
35 | Task AnalyzeAsync(CancellationToken token);
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Enumerations/PipelineDirection.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Enum of pipeline directions.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations
12 | {
13 | #region Using Directives
14 |
15 | using System;
16 | using System.Collections.Generic;
17 | using System.Diagnostics.CodeAnalysis;
18 | using System.Globalization;
19 | using System.IO;
20 | using System.Linq;
21 | using Newtonsoft.Json;
22 | using Newtonsoft.Json.Converters;
23 |
24 | #endregion
25 |
26 | ///
27 | /// Enum of pipeline directions.
28 | ///
29 | [JsonConverter(typeof(StringEnumConverter))]
30 | public enum PipelineDirection
31 | {
32 | ///
33 | /// Unknown pipeline direction.
34 | ///
35 | Unknown,
36 |
37 | ///
38 | /// Receive pipeline direction.
39 | ///
40 | Receive,
41 |
42 | ///
43 | /// Send pipeline direction.
44 | ///
45 | Send,
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Pipelines/Root.Methods.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Helper methods for the Root class.
9 | //-----------------------------------------------------------------------
10 |
11 | using System.IO;
12 | using System.Xml.Serialization;
13 |
14 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Pipelines
15 | {
16 | ///
17 | /// Helper methods for the class.
18 | ///
19 | public partial class Root
20 | {
21 | ///
22 | /// Creates a object from its XML representation.
23 | ///
24 | /// The XML representing the .
25 | /// The created from the XML.
26 | public static Root FromXml(string xml)
27 | {
28 | Root configuration;
29 |
30 | var xmlSerializer = new XmlSerializer(typeof(Root));
31 | using (var r = new StringReader(xml))
32 | {
33 | configuration = (Root)xmlSerializer.Deserialize(r);
34 | }
35 | return configuration;
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/scenarios/002-XmlMapping/src/Aim.XmlMapping/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System.Reflection;
4 | using System.Runtime.CompilerServices;
5 | using System.Runtime.InteropServices;
6 | using Microsoft.XLANGs.BaseTypes;
7 | using Microsoft.BizTalk.XLANGs.BTXEngine;
8 |
9 | // General Information about an assembly is controlled through the following
10 | // set of attributes. Change these attribute values to modify the information
11 | // associated with an assembly.
12 | [assembly: AssemblyTitle("Aim.XmlMapping")]
13 | [assembly: AssemblyDescription("")]
14 | [assembly: AssemblyConfiguration("")]
15 | [assembly: AssemblyCompany("")]
16 | [assembly: AssemblyProduct("Aim.XmlMapping")]
17 | [assembly: AssemblyCopyright("Copyright © 2020")]
18 | [assembly: AssemblyTrademark("")]
19 | [assembly: AssemblyCulture("")]
20 | [assembly: Microsoft.XLANGs.BaseTypes.BizTalkAssemblyAttribute(typeof(BTXService))]
21 |
22 | // Setting ComVisible to false makes the types in this assembly not visible
23 | // to COM components. If you need to access a type in this assembly from
24 | // COM, set the ComVisible attribute to true on that type.
25 | [assembly: ComVisible(false)]
26 |
27 | // The following GUID is for the ID of the typelib if this project is exposed to COM
28 | [assembly: Guid("5215b796-e53d-4575-8605-99b3071c73d6")]
29 |
30 | // Version information for an assembly consists of the following four values:
31 | //
32 | // Major Version
33 | // Minor Version
34 | // Build Number
35 | // Revision
36 | //
37 | // You can specify all the values or you can default the Build and Revision Numbers
38 | // by using the '*' as shown below:
39 | // [assembly: AssemblyVersion("1.0.*")]
40 | [assembly: AssemblyVersion("1.0.0.0")]
41 | [assembly: AssemblyFileVersion("1.0.0.0")]
42 |
--------------------------------------------------------------------------------
/scenarios/001-FtpPassthru/src/Aim.FtpPassthru/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System.Reflection;
4 | using System.Runtime.CompilerServices;
5 | using System.Runtime.InteropServices;
6 | using Microsoft.XLANGs.BaseTypes;
7 | using Microsoft.BizTalk.XLANGs.BTXEngine;
8 |
9 | // General Information about an assembly is controlled through the following
10 | // set of attributes. Change these attribute values to modify the information
11 | // associated with an assembly.
12 | [assembly: AssemblyTitle("Aim.FtpPassthru")]
13 | [assembly: AssemblyDescription("")]
14 | [assembly: AssemblyConfiguration("")]
15 | [assembly: AssemblyCompany("")]
16 | [assembly: AssemblyProduct("Aim.FtpPassthru")]
17 | [assembly: AssemblyCopyright("Copyright © 2020")]
18 | [assembly: AssemblyTrademark("")]
19 | [assembly: AssemblyCulture("")]
20 | [assembly: Microsoft.XLANGs.BaseTypes.BizTalkAssemblyAttribute(typeof(BTXService))]
21 |
22 | // Setting ComVisible to false makes the types in this assembly not visible
23 | // to COM components. If you need to access a type in this assembly from
24 | // COM, set the ComVisible attribute to true on that type.
25 | [assembly: ComVisible(false)]
26 |
27 | // The following GUID is for the ID of the typelib if this project is exposed to COM
28 | [assembly: Guid("4215b796-e53d-4575-8605-99b3071c73d6")]
29 |
30 | // Version information for an assembly consists of the following four values:
31 | //
32 | // Major Version
33 | // Minor Version
34 | // Build Number
35 | // Revision
36 | //
37 | // You can specify all the values or you can default the Build and Revision Numbers
38 | // by using the '*' as shown below:
39 | // [assembly: AssemblyVersion("1.0.*")]
40 | [assembly: AssemblyVersion("1.0.0.0")]
41 | [assembly: AssemblyFileVersion("1.0.0.0")]
42 |
--------------------------------------------------------------------------------
/scenarios/004-HttpJsonOrch/src/Aim.HttpJsonOrch/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System.Reflection;
4 | using System.Runtime.CompilerServices;
5 | using System.Runtime.InteropServices;
6 | using Microsoft.XLANGs.BaseTypes;
7 | using Microsoft.BizTalk.XLANGs.BTXEngine;
8 |
9 | // General Information about an assembly is controlled through the following
10 | // set of attributes. Change these attribute values to modify the information
11 | // associated with an assembly.
12 | [assembly: AssemblyTitle("Aim.HttpJsonOrch")]
13 | [assembly: AssemblyDescription("")]
14 | [assembly: AssemblyConfiguration("")]
15 | [assembly: AssemblyCompany("")]
16 | [assembly: AssemblyProduct("Aim.HttpJsonOrch")]
17 | [assembly: AssemblyCopyright("Copyright © 2020")]
18 | [assembly: AssemblyTrademark("")]
19 | [assembly: AssemblyCulture("")]
20 | [assembly: Microsoft.XLANGs.BaseTypes.BizTalkAssemblyAttribute(typeof(BTXService))]
21 |
22 | // Setting ComVisible to false makes the types in this assembly not visible
23 | // to COM components. If you need to access a type in this assembly from
24 | // COM, set the ComVisible attribute to true on that type.
25 | [assembly: ComVisible(false)]
26 |
27 | // The following GUID is for the ID of the typelib if this project is exposed to COM
28 | [assembly: Guid("5215b796-e53d-4575-8605-99b3071c73d6")]
29 |
30 | // Version information for an assembly consists of the following four values:
31 | //
32 | // Major Version
33 | // Minor Version
34 | // Build Number
35 | // Revision
36 | //
37 | // You can specify all the values or you can default the Build and Revision Numbers
38 | // by using the '*' as shown below:
39 | // [assembly: AssemblyVersion("1.0.*")]
40 | [assembly: AssemblyVersion("1.0.0.0")]
41 | [assembly: AssemblyFileVersion("1.0.0.0")]
42 |
--------------------------------------------------------------------------------
/scenarios/003-SimpleOrchestration/src/Aim.SimpleOrchestration/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System.Reflection;
4 | using System.Runtime.CompilerServices;
5 | using System.Runtime.InteropServices;
6 | using Microsoft.XLANGs.BaseTypes;
7 | using Microsoft.BizTalk.XLANGs.BTXEngine;
8 |
9 | // General Information about an assembly is controlled through the following
10 | // set of attributes. Change these attribute values to modify the information
11 | // associated with an assembly.
12 | [assembly: AssemblyTitle("Aim.XmlMapping")]
13 | [assembly: AssemblyDescription("")]
14 | [assembly: AssemblyConfiguration("")]
15 | [assembly: AssemblyCompany("")]
16 | [assembly: AssemblyProduct("Aim.XmlMapping")]
17 | [assembly: AssemblyCopyright("Copyright © 2020")]
18 | [assembly: AssemblyTrademark("")]
19 | [assembly: AssemblyCulture("")]
20 | [assembly: Microsoft.XLANGs.BaseTypes.BizTalkAssemblyAttribute(typeof(BTXService))]
21 |
22 | // Setting ComVisible to false makes the types in this assembly not visible
23 | // to COM components. If you need to access a type in this assembly from
24 | // COM, set the ComVisible attribute to true on that type.
25 | [assembly: ComVisible(false)]
26 |
27 | // The following GUID is for the ID of the typelib if this project is exposed to COM
28 | [assembly: Guid("5215b796-e53d-4575-8605-99b3071c73d6")]
29 |
30 | // Version information for an assembly consists of the following four values:
31 | //
32 | // Major Version
33 | // Minor Version
34 | // Build Number
35 | // Revision
36 | //
37 | // You can specify all the values or you can default the Build and Revision Numbers
38 | // by using the '*' as shown below:
39 | // [assembly: AssemblyVersion("1.0.*")]
40 | [assembly: AssemblyVersion("1.0.0.0")]
41 | [assembly: AssemblyFileVersion("1.0.0.0")]
42 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Orchestrations/MetaModel.Methods.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Helper methods for the MetaModel class.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System.IO;
14 | using System.Xml.Serialization;
15 |
16 | #endregion
17 |
18 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Orchestrations
19 | {
20 | ///
21 | /// Helper methods for the class.
22 | ///
23 | public partial class MetaModel
24 | {
25 | ///
26 | /// Returns a object deserialized from XML.
27 | ///
28 | /// The XML to create the MetaModel from.
29 | /// The object as defined in the supplied XML.
30 | public static MetaModel FromXml(string xml)
31 | {
32 | MetaModel metaModel;
33 |
34 | var xmlSerializer = new XmlSerializer(typeof(MetaModel));
35 | using (var r = new StringReader(xml))
36 | {
37 | metaModel = (MetaModel)xmlSerializer.Deserialize(r);
38 | }
39 | return metaModel;
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Enumerations/PropertyBagValueType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Enum of property bag value types.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations
12 | {
13 | #region Using Directives
14 |
15 | using System;
16 | using Newtonsoft.Json;
17 | using Newtonsoft.Json.Converters;
18 |
19 | #endregion
20 |
21 | ///
22 | /// Enum of property bag value types.
23 | ///
24 | [JsonConverter(typeof(StringEnumConverter))]
25 | public enum PropertyBagValueType
26 | {
27 | ///
28 | /// Unknown value type.
29 | ///
30 | Unknown,
31 |
32 | ///
33 | /// String value.
34 | ///
35 | String,
36 |
37 | ///
38 | /// Boolean value.
39 | ///
40 | Boolean,
41 |
42 | ///
43 | /// Integer value.
44 | ///
45 | Integer,
46 |
47 | ///
48 | /// Long integer value.
49 | ///
50 | Long,
51 |
52 | ///
53 | /// Decimal value.
54 | ///
55 | Decimal,
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Enumerations/ErrorSeverity.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Enum of Error Severities.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations
12 | {
13 | #region Using Directives
14 |
15 | using System;
16 | using System.Collections.Generic;
17 | using System.Diagnostics.CodeAnalysis;
18 | using System.Globalization;
19 | using System.IO;
20 | using System.Linq;
21 | using Newtonsoft.Json;
22 | using Newtonsoft.Json.Converters;
23 |
24 | #endregion
25 |
26 | ///
27 | /// Enum of Error Severities.
28 | ///
29 | [JsonConverter(typeof(StringEnumConverter))]
30 | public enum ErrorSeverity
31 | {
32 | ///
33 | /// Unknown severity.
34 | ///
35 | Unknown,
36 |
37 | ///
38 | /// Information only.
39 | ///
40 | Info,
41 |
42 | ///
43 | /// Warning.
44 | ///
45 | Warning,
46 |
47 | ///
48 | /// Error.
49 | ///
50 | Error,
51 |
52 | ///
53 | /// Critical error.
54 | ///
55 | Critical
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Filters/FilterExpression.ISourceResource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // BizTalk filter expressions.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System;
14 | using System.Collections.Generic;
15 | using System.IO;
16 | using System.Text;
17 | using System.Xml.Serialization;
18 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
19 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
20 | using Newtonsoft.Json;
21 |
22 | #endregion
23 |
24 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Filters
25 | {
26 | ///
27 | /// BizTalk filter expressions.
28 | ///
29 | public partial class Filter : ISourceResource
30 | {
31 | #region ISourceResource Implementation
32 |
33 | ///
34 | /// A pointer to the associated resource created from this object.
35 | ///
36 | [JsonIgnore]
37 | [XmlIgnore]
38 | public ResourceItem Resource { get; set; }
39 |
40 | ///
41 | /// The resource key for the associated resource.
42 | ///
43 | [XmlIgnore]
44 | public string ResourceKey { get; set; }
45 |
46 | #endregion
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Bindings/ReceiveLocation.ISourceResource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Xml.Serialization;
7 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
8 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Pipelines;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
10 | using Newtonsoft.Json;
11 |
12 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Bindings
13 | {
14 | ///
15 | /// Extensions for the receive location.
16 | ///
17 | public partial class ReceiveLocation : ISourceResource
18 | {
19 | #region ISourceResource Implementation
20 |
21 | ///
22 | /// A pointer to the associated resource created from this object.
23 | ///
24 | [JsonIgnore]
25 | [XmlIgnore]
26 | public ResourceItem Resource { get; set; }
27 |
28 | ///
29 | /// The resource key for the associated resource.
30 | ///
31 | [XmlIgnore]
32 | public string ResourceKey { get; set; }
33 |
34 | #endregion
35 |
36 | ///
37 | /// Gets or sets the deserialized detailing the custom configuration for this instance of the receive pipeline.
38 | ///
39 | [XmlIgnore]
40 | public Root SendPipelineCustomConfiguration { get; set; }
41 |
42 | ///
43 | /// Gets or sets the deserialized detailing the custom configuration for this instance of the send pipeline.
44 | ///
45 | [XmlIgnore]
46 | public Root ReceivePipelineCustomConfiguration { get; set; }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Pipelines/Document.Methods.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Xml.Serialization;
9 |
10 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Pipelines
11 | {
12 | ///
13 | /// Helper methods for the class.
14 | ///
15 | public partial class Document
16 | {
17 | ///
18 | /// Returns a object deserialized from XML.
19 | ///
20 | /// The XML to create the Document from.
21 | /// The object as defined in the supplied XML.
22 | public static Document FromXml(string xml)
23 | {
24 | Document document;
25 |
26 | var xmlSerializer = new XmlSerializer(typeof(Document));
27 | using (var r = new StringReader(xml))
28 | {
29 | document = (Document)xmlSerializer.Deserialize(r);
30 | }
31 | return document;
32 | }
33 |
34 | ///
35 | /// Finds the stage components.
36 | ///
37 | /// The pipeline document containing the stage components.
38 | /// The stage components found, if any.
39 | public static IEnumerable FindStageComponents(Document pipelineDocument)
40 | {
41 | return from stage in pipelineDocument.Stages
42 | from component in stage.Components
43 | where stage.Components != null
44 | select component;
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/SendPipeline.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents a BizTalk Send Pipeline.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
12 | {
13 | #region Using Directives
14 |
15 | using System;
16 | using System.Collections.Generic;
17 | using System.Diagnostics.CodeAnalysis;
18 | using System.Globalization;
19 | using System.IO;
20 | using System.Linq;
21 | using System.Reflection;
22 | using System.Xml.Schema;
23 | using System.Xml.Xsl;
24 |
25 | #endregion
26 |
27 | ///
28 | /// Represents a BizTalk Send Pipeline.
29 | ///
30 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
31 | [Serializable]
32 | public class SendPipeline : Pipeline
33 | {
34 | #region Public Instance Properties
35 |
36 | ///
37 | /// Gets the list of instances for the Encode stage.
38 | ///
39 | public List EncodeStageComponents
40 | {
41 | get
42 | {
43 | return Components.Where(c => c.Stage == Enumerations.PipelineStage.Encode).ToList();
44 | }
45 | }
46 |
47 | #endregion
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/ParsedBizTalkApplicationGroup.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents a group of BizTalk Applications.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
12 | {
13 | #region Using Directives
14 |
15 | using System;
16 | using System.Collections.Generic;
17 | using System.Diagnostics.CodeAnalysis;
18 | using System.Globalization;
19 | using System.IO;
20 | using System.Linq;
21 | using System.Reflection;
22 | using System.Xml;
23 | using System.Xml.Schema;
24 | using System.Xml.Xsl;
25 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Bindings;
26 |
27 | #endregion
28 |
29 | ///
30 | /// Represents a group of BizTalk Applications.
31 | ///
32 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
33 | [Serializable]
34 | public class ParsedBizTalkApplicationGroup
35 | {
36 | #region Public Instance Properties
37 |
38 | ///
39 | /// Gets or sets a list of instances.
40 | ///
41 | public IList Applications { get; } = new List();
42 |
43 | #endregion
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/ReceivePipeline.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents a BizTalk Receive Pipeline.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
12 | {
13 | #region Using Directives
14 |
15 | using System;
16 | using System.Collections.Generic;
17 | using System.Diagnostics.CodeAnalysis;
18 | using System.Globalization;
19 | using System.IO;
20 | using System.Linq;
21 | using System.Reflection;
22 | using System.Xml.Schema;
23 | using System.Xml.Xsl;
24 |
25 | #endregion
26 |
27 | ///
28 | /// Represents a BizTalk Receive Pipeline.
29 | ///
30 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
31 | [Serializable]
32 | public class ReceivePipeline : Pipeline
33 | {
34 | #region Public Instance Properties
35 |
36 | ///
37 | /// Gets or sets the list of instances for the Decode stage.
38 | ///
39 | public List DecodeStageComponents
40 | {
41 | get
42 | {
43 | return Components.Where(c => c.Stage == Enumerations.PipelineStage.Decode).ToList();
44 | }
45 | }
46 |
47 | #endregion
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Bindings/BindingInfo.Methods.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // BizTalk bindings.
9 | //-----------------------------------------------------------------------
10 |
11 | using System;
12 | using System.Collections.Generic;
13 | using System.IO;
14 | using System.Text;
15 | using System.Xml;
16 | using System.Xml.Serialization;
17 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Filters;
18 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Pipelines;
19 |
20 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Bindings
21 | {
22 | ///
23 | /// BizTalk bindings.
24 | ///
25 | public partial class BindingInfo
26 | {
27 | ///
28 | /// Converts the binding XML into a deserialized object.
29 | ///
30 | ///
31 | /// Returns a object deserialized from XML.
32 | public static BindingInfo FromXml(string xml)
33 | {
34 | BindingInfo bindingInfo;
35 | var xmlSerializer = new XmlSerializer(typeof(BindingInfo));
36 | using (var r = new StringReader(xml))
37 | {
38 | bindingInfo = (BindingInfo)xmlSerializer.Deserialize(r);
39 | }
40 | return bindingInfo;
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/AssemblyFile.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents a discovered BizTalk assembly file.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System;
14 | using System.Collections.Generic;
15 | using System.Text;
16 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.ApplicationDefinitions;
17 |
18 | #endregion
19 |
20 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
21 | {
22 | ///
23 | /// Represents a discovered BizTalk assembly file.
24 | ///
25 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
26 | [Serializable]
27 | public class AssemblyFile
28 | {
29 | ///
30 | /// Initializes a new instance of the class.
31 | ///
32 | /// The name of the resource container keyfor the assembly.
33 | public AssemblyFile(string resourceContainerKey)
34 | {
35 | ResourceContainerKey = resourceContainerKey ?? throw new ArgumentNullException(nameof(resourceContainerKey));
36 | }
37 |
38 | ///
39 | /// Gets or sets the resource container key of the assembly.
40 | ///
41 | public string ResourceContainerKey { get; set; }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/CompiledComponent.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents a base component that is a compiled part of a BizTalk application.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System;
14 | using System.Collections.Generic;
15 | using System.Text;
16 |
17 | #endregion
18 |
19 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
20 | {
21 | ///
22 | /// Represents a base component that is a compiled part of a BizTalk application.
23 | ///
24 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
25 | [Serializable]
26 | public abstract class CompiledComponent
27 | {
28 |
29 | ///
30 | /// Gets or sets the full name of the schema.
31 | ///
32 | public string FullName { get; set; }
33 |
34 | ///
35 | /// Gets or sets the name of the schema.
36 | ///
37 | public string Name { get; set; }
38 |
39 | ///
40 | /// Gets or sets the name of the module containing the schema.
41 | ///
42 | public string ModuleName { get; set; }
43 |
44 | ///
45 | /// Gets or sets the namespace for the schema.
46 | ///
47 | public string Namespace { get; set; }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Filters/FilterExpression.Methods.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // BizTalk filter expressions.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System;
14 | using System.Collections.Generic;
15 | using System.IO;
16 | using System.Text;
17 | using System.Xml.Serialization;
18 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
19 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
20 | using Newtonsoft.Json;
21 |
22 | #endregion
23 |
24 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Filters
25 | {
26 | ///
27 | /// BizTalk filter expressions.
28 | ///
29 | public partial class Filter
30 | {
31 | ///
32 | /// Returns a filterXml object deserialized from XML.
33 | ///
34 | /// An XML string containing the filter expression.
35 | /// A object deserialized from the input.
36 | public static Filter FromXml(string xml)
37 | {
38 | Filter filterXml;
39 | var xmlSerializer = new XmlSerializer(typeof(Filter));
40 | using (var r = new StringReader(xml))
41 | {
42 | filterXml = (Filter)xmlSerializer.Deserialize(r);
43 | }
44 | return filterXml;
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/AzureIntegrationServicesModelProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using Microsoft.AzureIntegrationMigration.ApplicationModel;
5 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
6 | using Microsoft.AzureIntegrationMigration.Runner.Model;
7 | using Microsoft.Extensions.Logging;
8 |
9 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners
10 | {
11 | ///
12 | /// Defines a model provider.
13 | ///
14 | public class AzureIntegrationServicesModelProvider : IApplicationModelProvider
15 | {
16 | ///
17 | /// Defines a logger.
18 | ///
19 | private readonly ILogger _logger;
20 |
21 | ///
22 | /// Initializes a new instance of the class with the name
23 | /// of the plugin, priority and a generic logger.
24 | ///
25 | /// The name of the plugin.
26 | /// The stage.
27 | /// The priority.
28 | /// A logger.
29 | public AzureIntegrationServicesModelProvider(ILogger logger)
30 | {
31 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
32 | }
33 |
34 | #region IApplicationModelProvider Interface Implementation
35 |
36 | ///
37 | /// Returns a new instance of the class.
38 | ///
39 | /// A new instance of the class.
40 | public IApplicationModel GetModel()
41 | {
42 | _logger.LogDebug(TraceMessages.RunningModelProvider);
43 |
44 | return new AzureIntegrationServicesModel();
45 | }
46 |
47 | #endregion
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Parse.Tests/TestConstants.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Defines test constants such as traits and categories.
9 | //-----------------------------------------------------------------------
10 |
11 | using System;
12 | using System.Collections.Generic;
13 | using System.Text;
14 |
15 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Parse.Tests
16 | {
17 | ///
18 | /// Defines test constants such as traits and categories.
19 | ///
20 | public static class TestConstants
21 | {
22 | #region Traits
23 |
24 | ///
25 | /// Defines a category trait that can be used to define the type of test.
26 | ///
27 | public const string TraitCategory = "Category";
28 |
29 | #endregion
30 |
31 | #region Categories
32 |
33 | ///
34 | /// Defines a category for unit tests.
35 | ///
36 | public const string CategoryUnitTest = "Unit";
37 |
38 | ///
39 | /// Defines a category for integration tests.
40 | ///
41 | public const string CategoryIntegrationTest = "Integration";
42 |
43 | ///
44 | /// Defines a category for acceptance tests.
45 | ///
46 | public const string CategoryAcceptanceTest = "Acceptance";
47 |
48 | ///
49 | /// Defines a category for smoke tests.
50 | ///
51 | public const string CategorySmokeTest = "Smoke";
52 |
53 | #endregion
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Types.Tests/TestConstants.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Defines test constants such as traits and categories.
9 | //-----------------------------------------------------------------------
10 |
11 | using System;
12 | using System.Collections.Generic;
13 | using System.Text;
14 |
15 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Tests
16 | {
17 | ///
18 | /// Defines test constants such as traits and categories.
19 | ///
20 | public static class TestConstants
21 | {
22 | #region Traits
23 |
24 | ///
25 | /// Defines a category trait that can be used to define the type of test.
26 | ///
27 | public const string TraitCategory = "Category";
28 |
29 | #endregion
30 |
31 | #region Categories
32 |
33 | ///
34 | /// Defines a category for unit tests.
35 | ///
36 | public const string CategoryUnitTest = "Unit";
37 |
38 | ///
39 | /// Defines a category for integration tests.
40 | ///
41 | public const string CategoryIntegrationTest = "Integration";
42 |
43 | ///
44 | /// Defines a category for acceptance tests.
45 | ///
46 | public const string CategoryAcceptanceTest = "Acceptance";
47 |
48 | ///
49 | /// Defines a category for smoke tests.
50 | ///
51 | public const string CategorySmokeTest = "Smoke";
52 |
53 | #endregion
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Microsoft.AzureIntegrationMigration.BizTalk.Types.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0;net461
5 | en
6 | Microsoft Corporation
7 | Microsoft Azure Integration Migration Tool
8 | Library that provides BizTalk types.
9 | Copyright © Microsoft Corporation 2020
10 | true
11 | $(MSBuildThisFileDirectory)\..\..\dist\packages
12 | Microsoft.AzureIntegrationMigration.BizTalk.Types
13 | https://github.com/azure/aimbiztalk
14 | 0.0.4-alpha
15 | NU5105
16 | true
17 | true
18 |
19 |
20 |
21 | true
22 |
23 |
24 |
25 |
26 | true
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | BizTalkServerPipelineSchema_v1.0.xsd
38 |
39 |
40 |
41 |
42 |
43 | Designer
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Analyze.Tests/TestConstants.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Defines test constants such as traits and categories.
9 | //-----------------------------------------------------------------------
10 |
11 | using System;
12 | using System.Collections.Generic;
13 | using System.Text;
14 |
15 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Analyze.Tests
16 | {
17 | ///
18 | /// Defines test constants such as traits and categories.
19 | ///
20 | public static class TestConstants
21 | {
22 | #region Traits
23 |
24 | ///
25 | /// Defines a category trait that can be used to define the type of test.
26 | ///
27 | public const string TraitCategory = "Category";
28 |
29 | #endregion
30 |
31 | #region Categories
32 |
33 | ///
34 | /// Defines a category for unit tests.
35 | ///
36 | public const string CategoryUnitTest = "Unit";
37 |
38 | ///
39 | /// Defines a category for integration tests.
40 | ///
41 | public const string CategoryIntegrationTest = "Integration";
42 |
43 | ///
44 | /// Defines a category for acceptance tests.
45 | ///
46 | public const string CategoryAcceptanceTest = "Acceptance";
47 |
48 | ///
49 | /// Defines a category for smoke tests.
50 | ///
51 | public const string CategorySmokeTest = "Smoke";
52 |
53 | #endregion
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Report.Tests/TestConstants.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Defines test constants such as traits and categories.
9 | //-----------------------------------------------------------------------
10 |
11 | using System;
12 | using System.Collections.Generic;
13 | using System.Text;
14 |
15 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Report.Tests
16 | {
17 | ///
18 | /// Defines test constants such as traits and categories.
19 | ///
20 | public static class TestConstants
21 | {
22 | #region Traits
23 |
24 | ///
25 | /// Defines a category trait that can be used to define the type of test.
26 | ///
27 | public const string TraitCategory = "Category";
28 |
29 | #endregion
30 |
31 | #region Categories
32 |
33 | ///
34 | /// Defines a category for unit tests.
35 | ///
36 | public const string CategoryUnitTest = "Unit";
37 |
38 | ///
39 | /// Defines a category for integration tests.
40 | ///
41 | public const string CategoryIntegrationTest = "Integration";
42 |
43 | ///
44 | /// Defines a category for acceptance tests.
45 | ///
46 | public const string CategoryAcceptanceTest = "Acceptance";
47 |
48 | ///
49 | /// Defines a category for smoke tests.
50 | ///
51 | public const string CategorySmokeTest = "Smoke";
52 |
53 | #endregion
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Discover.Tests/TestConstants.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Defines test constants such as traits and categories.
9 | //-----------------------------------------------------------------------
10 |
11 | using System;
12 | using System.Collections.Generic;
13 | using System.Text;
14 |
15 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Discover.Tests
16 | {
17 | ///
18 | /// Defines test constants such as traits and categories.
19 | ///
20 | public static class TestConstants
21 | {
22 | #region Traits
23 |
24 | ///
25 | /// Defines a category trait that can be used to define the type of test.
26 | ///
27 | public const string TraitCategory = "Category";
28 |
29 | #endregion
30 |
31 | #region Categories
32 |
33 | ///
34 | /// Defines a category for unit tests.
35 | ///
36 | public const string CategoryUnitTest = "Unit";
37 |
38 | ///
39 | /// Defines a category for integration tests.
40 | ///
41 | public const string CategoryIntegrationTest = "Integration";
42 |
43 | ///
44 | /// Defines a category for acceptance tests.
45 | ///
46 | public const string CategoryAcceptanceTest = "Acceptance";
47 |
48 | ///
49 | /// Defines a category for smoke tests.
50 | ///
51 | public const string CategorySmokeTest = "Smoke";
52 |
53 | #endregion
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Enumerations/PipelineStage.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Enum of pipeline stages.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations
12 | {
13 | #region Using Directives
14 |
15 | using System;
16 | using System.Collections.Generic;
17 | using System.Diagnostics.CodeAnalysis;
18 | using System.Globalization;
19 | using System.IO;
20 | using System.Linq;
21 | using Newtonsoft.Json;
22 | using Newtonsoft.Json.Converters;
23 |
24 | #endregion
25 |
26 | ///
27 | /// Enum of pipeline stages.
28 | ///
29 | [JsonConverter(typeof(StringEnumConverter))]
30 | public enum PipelineStage
31 | {
32 | ///
33 | /// Unknown pipeline stage.
34 | ///
35 | Unknown,
36 |
37 | ///
38 | /// Decode stage.
39 | ///
40 | Decode,
41 |
42 | ///
43 | /// Disassemble stage.
44 | ///
45 | Disassemble,
46 |
47 | ///
48 | /// Validate stage.
49 | ///
50 | Validate,
51 |
52 | ///
53 | /// Resolve party stage.
54 | ///
55 | ResolveParty,
56 |
57 | ///
58 | /// Encode stage.
59 | ///
60 | Encode,
61 |
62 | ///
63 | /// Assemble stage.
64 | ///
65 | Assemble,
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Bindings/SendPort.ISourceResource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Xml.Serialization;
7 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
8 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Filters;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Pipelines;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
11 | using Newtonsoft.Json;
12 |
13 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Bindings
14 | {
15 | ///
16 | /// Extensions for the send port.
17 | ///
18 | public partial class SendPort : ISourceResource
19 | {
20 | #region ISourceResource Implementation
21 |
22 | ///
23 | /// A pointer to the associated resource created from this object.
24 | ///
25 | [JsonIgnore]
26 | [XmlIgnore]
27 | public ResourceItem Resource { get; set; }
28 |
29 | ///
30 | /// The resource key for the associated resource.
31 | ///
32 | [XmlIgnore]
33 | public string ResourceKey { get; set; }
34 |
35 | #endregion
36 |
37 | ///
38 | /// Gets or sets the deserialized associated with the send port.
39 | ///
40 | [XmlIgnore]
41 | public Filter FilterExpression { get; set; }
42 |
43 | ///
44 | /// Gets or sets the deserialized detailing the custom configuration for this instance of the receive pipeline.
45 | ///
46 | [XmlIgnore]
47 | public Root SendPipelineCustomConfiguration { get; set; }
48 |
49 | ///
50 | /// Gets or sets the deserialized detailing the custom configuration for this instance of the send pipeline.
51 | ///
52 | [XmlIgnore]
53 | public Root ReceivePipelineCustomConfiguration { get; set; }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/ReceivePortParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Threading;
5 | using System.Threading.Tasks;
6 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
7 | using Microsoft.AzureIntegrationMigration.Runner.Core;
8 | using Microsoft.Extensions.DependencyInjection;
9 | using Microsoft.Extensions.Logging;
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
12 | {
13 | ///
14 | /// Defines a parser stage runner that parses BizTalk receive port definitions.
15 | ///
16 | public class ReceivePortParser : StageRunnerBase, IStageParser
17 | {
18 | ///
19 | /// Defines the name of this stage runner.
20 | ///
21 | public const string PluginName = ModelConstants.ApplicationPrefix + "receiveportparser";
22 |
23 | ///
24 | /// Defines a logger.
25 | ///
26 | private readonly ILogger _logger;
27 |
28 | ///
29 | /// Initializes a new instance of the class with a generic logger.
30 | ///
31 | /// A logger.
32 | public ReceivePortParser(ILogger logger)
33 | : base(PluginName, Stages.Parse, 30, logger)
34 | {
35 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
36 | }
37 |
38 | ///
39 | /// Runs the stage runner.
40 | ///
41 | /// The execution state.
42 | /// A cancellation token used to cancel this operation.
43 | /// A task used to await the operation.
44 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
45 | {
46 | _ = state ?? throw new ArgumentNullException(nameof(state));
47 |
48 | // Parse definition (should be async)
49 | var parser = Container.GetRequiredService();
50 | parser.Parse();
51 |
52 | await Task.CompletedTask.ConfigureAwait(false);
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/DistributionListParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Threading;
5 | using System.Threading.Tasks;
6 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
7 | using Microsoft.AzureIntegrationMigration.Runner.Core;
8 | using Microsoft.Extensions.DependencyInjection;
9 | using Microsoft.Extensions.Logging;
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
12 | {
13 | ///
14 | /// Defines a parser stage runner that parses BizTalk distribution lists.
15 | ///
16 | public class DistributionListParser : StageRunnerBase, IStageParser
17 | {
18 | ///
19 | /// Defines the name of this stage runner.
20 | ///
21 | public const string PluginName = ModelConstants.ApplicationPrefix + "distributionlistparser";
22 |
23 | ///
24 | /// Defines a logger.
25 | ///
26 | private readonly ILogger _logger;
27 |
28 | ///
29 | /// Initializes a new instance of the class with a generic logger.
30 | ///
31 | /// A logger.
32 | public DistributionListParser(ILogger logger)
33 | : base(PluginName, Stages.Parse, 30, logger)
34 | {
35 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
36 | }
37 |
38 | ///
39 | /// Runs the stage runner.
40 | ///
41 | /// The execution state.
42 | /// A cancellation token used to cancel this operation.
43 | /// A task used to await the operation.
44 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
45 | {
46 | _ = state ?? throw new ArgumentNullException(nameof(state));
47 |
48 | // Parse definition (should be async)
49 | var parser = Container.GetRequiredService();
50 | parser.Parse();
51 |
52 | await Task.CompletedTask.ConfigureAwait(false);
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Schemas/MetaModel.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/StringExtensions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Text.RegularExpressions;
8 | using Microsoft.AzureIntegrationMigration.ApplicationModel;
9 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types
12 | {
13 | ///
14 | /// Defines extensions for the class.
15 | ///
16 | public static class StringExtensions
17 | {
18 | ///
19 | /// Returns a formatted string suitable for a key in the object model.
20 | ///
21 | /// The value to format.
22 | /// A suitable key for the object model.
23 | public static string FormatKey(this string value)
24 | {
25 | return value.Replace(" ", string.Empty);
26 | }
27 |
28 | ///
29 | /// Converts a file path string by removing illegal characters.
30 | ///
31 | /// The file path to convert.
32 | /// The converted file path.
33 | public static string ToSafeFilePath(this string value)
34 | {
35 | // Strip out any double forward or back slashes.
36 | var safeFilePath = value.Replace("\\\\", "\\").Replace("//", "/");
37 |
38 | // Normalise to a forward slash path separator.
39 | safeFilePath = safeFilePath.Replace("\\", "/");
40 |
41 | var pattern = new Regex("[\\/:*?\"<>| ]", RegexOptions.Compiled);
42 |
43 | // Loop through the folders in the path and sanitize each folder.
44 | var sanitizedFolders = new List();
45 | foreach (var folder in safeFilePath.Split('/'))
46 | {
47 | // Remove invalid characters.
48 | var sanitizedFolder = pattern.Replace(folder, string.Empty);
49 |
50 | if (!string.IsNullOrEmpty(sanitizedFolder))
51 | {
52 | sanitizedFolders.Add(sanitizedFolder);
53 | }
54 | }
55 |
56 | // Return the sanitized path.
57 | return string.Join("/", sanitizedFolders);
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/ApplicationDefinitions/ApplicationDefinition.Methods.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // BizTalk application definition.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System;
14 | using System.Collections.Generic;
15 | using System.IO;
16 | using System.Linq;
17 | using System.Text;
18 | using System.Xml.Serialization;
19 |
20 | #endregion
21 |
22 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.ApplicationDefinitions
23 | {
24 | ///
25 | /// BizTalk application definition.
26 | ///
27 | public partial class ApplicationDefinition
28 | {
29 | ///
30 | /// Converts the application definition XML into a deserialized object.
31 | ///
32 | /// The serialized XML of the ADF.
33 | /// Returns a object deserialized from XML.
34 | public static ApplicationDefinition FromXml(string xml)
35 | {
36 | ApplicationDefinition applicationDefinition;
37 | var xmlSerializer = new XmlSerializer(typeof(ApplicationDefinition));
38 | using (var r = new StringReader(xml))
39 | {
40 | applicationDefinition = (ApplicationDefinition)xmlSerializer.Deserialize(r);
41 | }
42 | return applicationDefinition;
43 | }
44 |
45 | ///
46 | /// Returns an item from the property bag.
47 | ///
48 | /// The key to search on in the property bag.
49 | /// The value of the item, if found.
50 | public string GetPropertyValue(string key)
51 | {
52 | return Properties.Where(p => p.Name == key).SingleOrDefault()?.Value;
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/ParsedBizTalkApplication.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents a parsed BizTalk Application.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
12 | {
13 | #region Using Directives
14 |
15 | using System;
16 |
17 | using Types.Interfaces;
18 | using System.Collections.Generic;
19 |
20 | #endregion
21 |
22 | ///
23 | /// Represents a parsed BizTalk Application.
24 | ///
25 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
26 | [Serializable]
27 | public class ParsedBizTalkApplication
28 | {
29 | #region Public Instance Constructors
30 |
31 | ///
32 | /// Initializes a new instance of the class.
33 | ///
34 | public ParsedBizTalkApplication()
35 | {
36 | Id = Guid.NewGuid();
37 | Application = new BizTalkApplication();
38 | }
39 |
40 | #endregion
41 |
42 | #region Public Instance Properties
43 |
44 | ///
45 | /// Gets or sets the unique id for this application.
46 | ///
47 | public Guid Id { get; set; }
48 |
49 | ///
50 | /// Gets or sets the working folder for the application.
51 | ///
52 | public string WorkingFolder { get; set; }
53 |
54 | ///
55 | /// Gets or sets the Key of the resource container for the overall application.
56 | ///
57 | public string ResourceContainerKey { get; set; }
58 |
59 | ///
60 | /// Gets or sets the parsed instance.
61 | ///
62 | public BizTalkApplication Application { get; set; }
63 |
64 | #endregion
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Convert/Repositories/IFileRepository.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Text;
7 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
8 | using Newtonsoft.Json.Linq;
9 |
10 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Convert.Repositories
11 | {
12 | ///
13 | /// Defines an interface used to interact with a file repository.
14 | ///
15 | public interface IFileRepository
16 | {
17 | ///
18 | /// Creates the specified directory.
19 | ///
20 | /// The directory to create.
21 | /// The information regarding the created directory.
22 | DirectoryInfo CreateDirectory(string path);
23 |
24 | ///
25 | /// Does the specified directory exist.
26 | ///
27 | /// The directory to check.
28 | /// True if the directory exists, otherwise False.
29 | bool DoesDirectoryExist(string path);
30 |
31 | ///
32 | /// Does the specified file exist.
33 | ///
34 | /// The file to check.
35 | /// True if the file exists, otherwise False.
36 | bool DoesFileExist(string filePath);
37 |
38 | ///
39 | /// Writes the xml content to disk at the given path.
40 | ///
41 | /// The full name of the file to write to.
42 | /// The file content.
43 | void WriteXmlFile(string filePath, string content);
44 |
45 | ///
46 | /// Writes a Json token to a file.
47 | ///
48 | /// The full name of the file to write to.
49 | /// The Json token to write to the file.
50 | void WriteJsonFile(string filePath, JToken json);
51 |
52 | ///
53 | /// Copies the file.
54 | ///
55 | /// The source file path.
56 | /// The destination file path.
57 | void CopyFile(string sourceFilePath, string destinationFilePath);
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Report.Tests/TargetScenarioModellerFeature.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using FluentAssertions;
8 | using Microsoft.AzureIntegrationMigration.ApplicationModel;
9 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Report;
10 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
11 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Target;
12 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Target.Messages;
13 | using Microsoft.AzureIntegrationMigration.BizTalk.Report.TargetReport;
14 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
15 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
16 | using Microsoft.AzureIntegrationMigration.Runner.Model;
17 | using Microsoft.Extensions.Logging;
18 | using Moq;
19 | using Xbehave;
20 | using Xunit;
21 |
22 | #pragma warning disable CA1303 // Do not pass literals as localized parameters
23 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Report.Tests
24 | {
25 | ///
26 | /// Class containing tests for the .
27 | ///
28 | public class TargetScenarioModellerFeature
29 | {
30 | ///
31 | /// Tests comparison between two resource relationships.
32 | ///
33 | /// The first item to be compared.
34 | /// The second item to be compared.
35 | /// The result of the comparison.
36 | [Scenario]
37 | [Trait(TestConstants.TraitCategory, TestConstants.CategoryUnitTest)]
38 | public void DecodeScenariosHappyPath(AzureIntegrationServicesModel model, IList result)
39 | {
40 | "Given a model"
41 | .x(() =>
42 | {
43 | model = TestHelper.BuildModel();
44 | });
45 |
46 | "When comparing x and y"
47 | .x(() => result = TargetScenarioModeller.DecodeTargetModel(model.MigrationTarget));
48 |
49 | "Expect the correct number of applications"
50 | .x(() => {
51 | var results = result.ToList();
52 | results.Count.Should().Be(2);
53 | });
54 | }
55 | }
56 | }
57 | #pragma warning restore CA1303 // Do not pass literals as localized parameters
58 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Report/ReportFile.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using HtmlAgilityPack;
7 |
8 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Report
9 | {
10 | ///
11 | /// Represents a file that will be written as part of the report generation.
12 | ///
13 | /// The type of object the report file will be written from.
14 | public class ReportFile
15 | {
16 | ///
17 | /// Initializes a new instance of the class.
18 | ///
19 | /// The name of the report section.
20 | /// The description of the section.
21 | /// The data to render into the section.
22 | /// The prefix to apply to the file name.
23 | public ReportFile(string sectionName, string description, T reportData, string prefix)
24 | {
25 | SectionName = sectionName ?? throw new ArgumentNullException(nameof(sectionName));
26 | Description = description;
27 | ReportData = reportData;
28 | Filename = string.Concat(prefix, "-", sectionName.Replace(".", "-").Replace(" ", "-"), "-", RefId, ".html");
29 | }
30 |
31 | ///
32 | /// Gets or sets the filename.
33 | ///
34 | public string Filename { get; set; }
35 |
36 | ///
37 | /// Gets or sets a unique reference to ensure file name uniqueness when multiple applications have the same name.
38 | ///
39 | public string RefId { get; } = Guid.NewGuid().ToString();
40 |
41 | ///
42 | /// Gets or sets the name of the section.
43 | ///
44 | public string SectionName { get; set; }
45 |
46 | ///
47 | /// Gets or sets the description of the section.
48 | ///
49 | public string Description { get; set; }
50 |
51 | ///
52 | /// Gets or sets the underlying data item for the report.
53 | ///
54 | public T ReportData { get; set; }
55 |
56 | ///
57 | /// Gets the report HTML document.
58 | ///
59 | public HtmlDocument ReportHtml { get; } = new HtmlDocument();
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/TransformParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
18 | {
19 | ///
20 | /// Defines a parser stage runner that parses BizTalk transforms.
21 | ///
22 | public class TransformParser : StageRunnerBase, IStageParser
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "transformparser";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public TransformParser(ILogger logger)
39 | : base(PluginName, Stages.Parse, 30, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Parse definition (should be async)
55 | var parser = Container.GetRequiredService();
56 | parser.Parse();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/SendPortParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
18 | {
19 | ///
20 | /// Defines a parser stage runner that parses BizTalk send port definition.
21 | ///
22 | public class SendPortParser : StageRunnerBase, IStageParser
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "sendportparser";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public SendPortParser(ILogger logger)
39 | : base(PluginName, Stages.Parse, 30, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Parse definition (should be async)
55 | var parser = Container.GetRequiredService();
56 | parser.Parse();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/PipelineParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
18 | {
19 | ///
20 | /// Defines a parser stage runner that parses BizTalk pipeline definition.
21 | ///
22 | public class PipelineParser : StageRunnerBase, IStageParser
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "pipelineparser";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public PipelineParser(ILogger logger)
39 | : base(PluginName, Stages.Parse, 30, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Parse definition (should be async)
55 | var parser = Container.GetRequiredService();
56 | parser.Parse();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Cli.Tests/Microsoft.AzureIntegrationMigration.BizTalk.Cli.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | net5.0
6 | true
7 | true
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | True
27 | True
28 | InformationMessages.resx
29 |
30 |
31 |
32 |
33 |
34 | ResXFileCodeGenerator
35 | InformationMessages.Designer.cs
36 |
37 |
38 |
39 |
40 | false
41 | en
42 | 0.0.2
43 |
44 |
45 |
46 | true
47 |
48 |
49 |
50 | true
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/BindingFileParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
18 | {
19 | ///
20 | /// Defines a parser stage runner that parses BizTalk binding file.
21 | ///
22 | public class BindingFileParser : StageRunnerBase, IStageParser
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "bindingfileparser";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public BindingFileParser(ILogger logger)
39 | : base(PluginName, Stages.Parse, 20, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Parse definition (should be async)
55 | var parser = Container.GetRequiredService();
56 | parser.Parse();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/ContextProperty.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Class representing a context property.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System;
14 | using System.Collections.Generic;
15 | using System.Text;
16 | using System.Xml.Serialization;
17 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Source;
18 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
19 | using Newtonsoft.Json;
20 |
21 | #endregion
22 |
23 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
24 | {
25 | ///
26 | /// Class representing a context property.
27 | ///
28 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
29 | [Serializable]
30 | public class ContextProperty : ISourceResource
31 | {
32 | ///
33 | /// Gets or sets the fully qualified name of the property.
34 | ///
35 | public string FullyQualifiedName { get; set; }
36 |
37 | ///
38 | /// Gets or sets the name of the property.
39 | ///
40 | public string PropertyName { get; set; }
41 |
42 | ///
43 | /// Gets or sets the namespace of the property.
44 | ///
45 | public string Namespace { get; set; }
46 |
47 | ///
48 | /// Gets or sets the data type of the property.
49 | ///
50 | public string DataType { get; set; }
51 |
52 | #region ISourceResource Implementation
53 |
54 | ///
55 | /// A pointer to the associated resource created from this object.
56 | ///
57 | [JsonIgnore]
58 | [XmlIgnore]
59 | public ResourceItem Resource { get; set; }
60 |
61 | ///
62 | /// The resource key for the associated resource.
63 | ///
64 | [XmlIgnore]
65 | public string ResourceKey { get; set; }
66 |
67 | #endregion
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/ApplicationParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
18 | {
19 | ///
20 | /// Defines a parser stage runner that parses BizTalk application in the binding file.
21 | ///
22 | public class ApplicationParser : StageRunnerBase, IStageParser
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "applicationparser";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public ApplicationParser(ILogger logger)
39 | : base(PluginName, Stages.Parse, 10, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Parse definition (should be async)
55 | var parser = Container.GetRequiredService();
56 | parser.Parse();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/PipelineComponentParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
18 | {
19 | ///
20 | /// Defines a parser stage runner that parses BizTalk pipeline components.
21 | ///
22 | public class PipelineComponentParser : StageRunnerBase, IStageParser
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "pipelinecomponentparser";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public PipelineComponentParser(ILogger logger)
39 | : base(PluginName, Stages.Parse, 40, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Parse definition (should be async)
55 | var parser = Container.GetRequiredService();
56 | parser.Parse();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/DocumentSchemaParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
18 | {
19 | ///
20 | /// Defines a parser stage runner that parses BizTalk document schema resources and properties.
21 | ///
22 | public class DocumentSchemaParser : StageRunnerBase, IStageParser
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "documentschemaparser";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public DocumentSchemaParser(ILogger logger)
39 | : base(PluginName, Stages.Parse, 30, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Parse definition (should be async)
55 | var parser = Container.GetRequiredService();
56 | parser.Parse();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/MigrationContext.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Root object passed through the migration process.
9 | //-----------------------------------------------------------------------
10 |
11 | #region Using Directives
12 |
13 | using System;
14 | using System.Collections.Generic;
15 | using System.Linq;
16 | using System.Text;
17 | using System.Threading.Tasks;
18 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Interfaces;
19 |
20 | #endregion
21 |
22 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
23 | {
24 | ///
25 | /// Root object passed through the migration process.
26 | ///
27 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
28 | [Serializable]
29 | public class MigrationContext
30 | {
31 | ///
32 | /// Gets or sets the working folder.
33 | ///
34 | public string WorkingFolder { get; set; }
35 |
36 | ///
37 | /// Gets or sets the file path to the report file.
38 | ///
39 | public string ReportFilePath { get; set; }
40 |
41 | ///
42 | /// Gets or sets the directory path for the converted output.
43 | ///
44 | public string ConversionFolder { get; set; }
45 |
46 | ///
47 | /// Gets or sets the directory path for the generated output.
48 | ///
49 | public string GenerationFolder { get; set; }
50 |
51 | ///
52 | /// Gets or sets the directory path to the template configuration files.
53 | ///
54 | public string TemplateConfigFolder { get; set; }
55 |
56 | ///
57 | /// Gets or sets the paths to the template files.
58 | ///
59 | public IList TemplateFolders { get; } = new List();
60 |
61 | ///
62 | /// Gets or sets a list of errors.
63 | ///
64 | public List Errors { get; } = new List();
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/ApplicationDefinitionParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
18 | {
19 | ///
20 | /// Defines a parser stage runner that parses BizTalk application definition files.
21 | ///
22 | public class ApplicationDefinitionParser : StageRunnerBase, IStageParser
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "applicationdefinitionparser";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public ApplicationDefinitionParser(ILogger logger)
39 | : base(PluginName, Stages.Parse, 0, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Parse definition (should be async)
55 | var parser = Container.GetRequiredService();
56 | parser.Parse();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/SendPortPipelineDataParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
18 | {
19 | ///
20 | /// Defines a parser stage runner that parses BizTalk send port pipeline data definition.
21 | ///
22 | public class SendPortPipelineDataParser : StageRunnerBase, IStageParser
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "sendportpipelinedataparser";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public SendPortPipelineDataParser(ILogger logger)
39 | : base(PluginName, Stages.Parse, 30, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Parse definition (should be async)
55 | var parser = Container.GetRequiredService();
56 | parser.Parse();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/PropertySchemaPropertyParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
18 | {
19 | ///
20 | /// Defines a parser stage runner that parses BizTalk property schema properties.
21 | ///
22 | public class PropertySchemaPropertyParser : StageRunnerBase, IStageParser
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "propertyschemapropertyparser";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public PropertySchemaPropertyParser(ILogger logger)
39 | : base(PluginName, Stages.Parse, 30, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Parse definition (should be async)
55 | var parser = Container.GetRequiredService();
56 | parser.Parse();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Discover/AssemblyDiscoverer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Discover
18 | {
19 | ///
20 | /// Defines a discover stage runner that unpacks resources from BizTalk assembly files.
21 | ///
22 | public class AssemblyDiscoverer : StageRunnerBase, IStageDiscoverer
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "assemblydiscoverer";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public AssemblyDiscoverer(ILogger logger)
39 | : base(PluginName, Stages.Discover, 10, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Discover what's in the assemblies (should be async)
55 | var assemblyDiscoverer = Container.GetRequiredService();
56 | assemblyDiscoverer.Discover();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.StageRunners/Parse/ReceivePortPipelineDataParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Threading.Tasks;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
13 | using Microsoft.AzureIntegrationMigration.Runner.Core;
14 | using Microsoft.Extensions.DependencyInjection;
15 | using Microsoft.Extensions.Logging;
16 |
17 | namespace Microsoft.AzureIntegrationMigration.BizTalk.StageRunners.Parse
18 | {
19 | ///
20 | /// Defines a parser stage runner that parses BizTalk receive port pipeline data definition.
21 | ///
22 | public class ReceivePortPipelineDataParser : StageRunnerBase, IStageParser
23 | {
24 | ///
25 | /// Defines the name of this stage runner.
26 | ///
27 | public const string PluginName = ModelConstants.ApplicationPrefix + "receiveportpipelinedataparser";
28 |
29 | ///
30 | /// Defines a logger.
31 | ///
32 | private readonly ILogger _logger;
33 |
34 | ///
35 | /// Initializes a new instance of the class with a generic logger.
36 | ///
37 | /// A logger.
38 | public ReceivePortPipelineDataParser(ILogger logger)
39 | : base(PluginName, Stages.Parse, 30, logger)
40 | {
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Runs the stage runner.
46 | ///
47 | /// The execution state.
48 | /// A cancellation token used to cancel this operation.
49 | /// A task used to await the operation.
50 | protected override async Task InvokeRunAsync(IRunState state, CancellationToken token)
51 | {
52 | _ = state ?? throw new ArgumentNullException(nameof(state));
53 |
54 | // Parse definition (should be async)
55 | var parser = Container.GetRequiredService();
56 | parser.Parse();
57 |
58 | await Task.CompletedTask.ConfigureAwait(false);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/PropertyBagValue.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents the value for a property bag entry.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
12 | {
13 | #region Using Directives
14 |
15 | using System;
16 | using System.Collections.Generic;
17 | using System.Diagnostics.CodeAnalysis;
18 | using System.Globalization;
19 | using System.IO;
20 | using System.Linq;
21 | using System.Reflection;
22 | using System.Xml;
23 | using System.Xml.Schema;
24 |
25 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
26 |
27 | #endregion
28 |
29 | ///
30 | /// Represents the value for a property bag entry.
31 | ///
32 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
33 | [Serializable]
34 | public class PropertyBagValue
35 | {
36 | #region Public Constructors
37 |
38 | ///
39 | /// Initializes a new instance of the type.
40 | ///
41 | /// String value to use.
42 | public PropertyBagValue(string value) : this(value, PropertyBagValueType.String)
43 | {
44 | }
45 |
46 | ///
47 | /// Initializes a new instance of the type.
48 | ///
49 | /// Value to use.
50 | /// Type of value.
51 | public PropertyBagValue(string value, PropertyBagValueType type)
52 | {
53 | Value = value;
54 | Type = type;
55 | }
56 |
57 | #endregion
58 |
59 | #region Public Instance Properties
60 |
61 | ///
62 | /// Gets or sets the type of stored value.
63 | ///
64 | public ValueType Type { get; set; }
65 |
66 | ///
67 | /// Gets or sets the actual value stored.
68 | ///
69 | public string Value { get; set; }
70 |
71 | #endregion
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/BindingFile.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents a discovered BizTalk binding file.
9 | //-----------------------------------------------------------------------
10 |
11 | using System;
12 | using System.Collections.Generic;
13 | using System.Text;
14 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Bindings;
15 |
16 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
17 | {
18 | ///
19 | /// Represents a discovered BizTalk binding file.
20 | ///
21 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
22 | [Serializable]
23 | public class BindingFile
24 | {
25 | ///
26 | /// Initializes a new instance of the class.
27 | ///
28 | public BindingFile()
29 | {
30 | }
31 |
32 | ///
33 | /// Initializes a new instance of the class with related resource container and definition name.
34 | ///
35 | /// The key of the resource container for these bindings.
36 | /// The key of the resource definition containing the content of these bindings.
37 | public BindingFile(string resourceContainerKey, string resourceDefinitionKey)
38 | {
39 | ResourceContainerKey = resourceContainerKey ?? throw new ArgumentNullException(nameof(resourceContainerKey));
40 | ResourceDefinitionKey = resourceDefinitionKey ?? throw new ArgumentNullException(nameof(resourceDefinitionKey));
41 | }
42 |
43 | ///
44 | /// Gets or sets the resource container key of the bindings.
45 | ///
46 | public string ResourceContainerKey { get; set; }
47 |
48 | ///
49 | /// Gets or sets the resource definition key of the bindings.
50 | ///
51 | public string ResourceDefinitionKey { get; set; }
52 |
53 | ///
54 | /// Gets or sets the binding info.
55 | ///
56 | public BindingInfo BindingInfo { get; set; }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Security
4 |
5 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
6 |
7 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)), please report it to us as described below.
8 |
9 | ## Reporting Security Issues
10 |
11 | **Please do not report security vulnerabilities through public GitHub issues.**
12 |
13 | Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
14 |
15 | If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
16 |
17 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc).
18 |
19 | Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
20 |
21 | * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
22 | * Full paths of source file(s) related to the manifestation of the issue
23 | * The location of the affected source code (tag/branch/commit or direct URL)
24 | * Any special configuration required to reproduce the issue
25 | * Step-by-step instructions to reproduce the issue
26 | * Proof-of-concept or exploit code (if possible)
27 | * Impact of the issue, including how an attacker might exploit the issue
28 |
29 | This information will help us triage your report more quickly.
30 |
31 | If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs.
32 |
33 | ## Preferred Languages
34 |
35 | We prefer all communications to be in English.
36 |
37 | ## Policy
38 |
39 | Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd).
40 |
41 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Types.Tests/Microsoft.AzureIntegrationMigration.BizTalk.Types.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net5.0
5 | false
6 | en
7 | Microsoft Corporation
8 | Microsoft Azure Integration Migration Tool
9 | Library that provides BizTalk types testing components.
10 | Copyright © Microsoft Corporation 2020
11 | true
12 | $(MSBuildThisFileDirectory)\..\..\dist\packages
13 | Microsoft.AzureIntegrationMigration.BizTalk.Types.Tests
14 | 0.0.4-alpha
15 | true
16 | true
17 |
18 |
19 |
20 | true
21 |
22 |
23 |
24 |
25 | true
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | all
35 | runtime; build; native; contentfiles; analyzers; buildtransitive
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | all
45 | runtime; build; native; contentfiles; analyzers; buildtransitive
46 |
47 |
48 | all
49 | runtime; build; native; contentfiles; analyzers; buildtransitive
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Analyze/ConversionRules/MB001MessageBusAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Threading;
7 | using System.Threading.Tasks;
8 | using Microsoft.AzureIntegrationMigration.ApplicationModel.Report;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.Analyze.Resources;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
11 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
12 | using Microsoft.AzureIntegrationMigration.Runner.Model;
13 | using Microsoft.Extensions.Logging;
14 |
15 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Analyze.ConversionRules
16 | {
17 | ///
18 | /// Implements rule MB001, which analyzes the model and creates the messagebus on the target source.
19 | ///
20 | public sealed class MB001MessageBusAnalyzer : BizTalkAnalyzerBase
21 | {
22 | ///
23 | /// Defines the name of this rule.
24 | ///
25 | private const string RuleName = "MB001";
26 |
27 | ///
28 | /// Defines a logger.
29 | ///
30 | private readonly ILogger _logger;
31 |
32 | ///
33 | /// Creates a new instance of a class.
34 | ///
35 | /// The model.
36 | /// The context.
37 | /// A logger.
38 | public MB001MessageBusAnalyzer(IApplicationModel model, MigrationContext context, ILogger logger)
39 | : base(nameof(MB001MessageBusAnalyzer), model, context, logger)
40 | {
41 | // Validate and set the member.
42 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
43 | }
44 |
45 | ///
46 | /// Creates the message bus in the migration target.
47 | ///
48 | /// The cancellation token.
49 | /// Task used to await the operation.
50 | protected override async Task AnalyzeInternalAsync(CancellationToken token)
51 | {
52 | _logger.LogDebug(TraceMessages.RunningRule, RuleName, nameof(MB001MessageBusAnalyzer));
53 |
54 | Model.MigrationTarget.MessageBus = new ApplicationModel.Target.MessageBus
55 | {
56 | Name = MigrationTargetResources.MessageBusName,
57 | Key = ModelConstants.MessageBusLeafKey,
58 | ResourceMapKey = "messageBus",
59 | Description = MigrationTargetResources.MessageBusDescription,
60 | Rating = ConversionRating.FullConversion
61 | };
62 |
63 | _logger.LogDebug(TraceMessages.RuleCompleted, RuleName, nameof(MB001MessageBusAnalyzer));
64 |
65 | await Task.CompletedTask.ConfigureAwait(false);
66 | }
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/PipelineComponent.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents a BizTalk pipeline component.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
12 | {
13 | #region Using Directives
14 |
15 | using System;
16 | using System.Collections.Generic;
17 | using System.Diagnostics.CodeAnalysis;
18 | using System.Globalization;
19 | using System.IO;
20 | using System.Linq;
21 |
22 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Enumerations;
23 |
24 | #endregion
25 |
26 | ///
27 | /// Represents a BizTalk pipeline component.
28 | ///
29 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
30 | [Serializable]
31 | public class PipelineComponent
32 | {
33 | #region Public Instance Constructors
34 |
35 | ///
36 | /// Initializes a new instance of the class.
37 | ///
38 | public PipelineComponent()
39 | {
40 | PropertyBag = new Dictionary();
41 | }
42 |
43 | #endregion
44 |
45 | #region Public Instance Properties
46 |
47 | ///
48 | /// Gets or sets the stage this component belongs to.
49 | ///
50 | public PipelineStage Stage { get; set; }
51 |
52 | ///
53 | /// Gets or sets the name of the original component.
54 | ///
55 | public string Name { get; set; }
56 |
57 | ///
58 | /// Gets or sets the description of the original component.
59 | ///
60 | public string Description { get; set; }
61 |
62 | ///
63 | /// Gets or sets the type of the original component.
64 | ///
65 | public string Type { get; set; }
66 |
67 | ///
68 | /// Gets or sets the full type of the original component.
69 | ///
70 | public string FullType { get; set; }
71 |
72 | ///
73 | /// Gets or sets the version of the original component.
74 | ///
75 | public string Version { get; set; }
76 |
77 | ///
78 | /// Gets or sets the property bag for this component.
79 | ///
80 | public IDictionary PropertyBag { get; }
81 |
82 | #endregion
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Convert.Tests/Microsoft.AzureIntegrationMigration.BizTalk.Convert.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net5.0
5 | false
6 | true
7 | true
8 |
9 |
10 |
11 |
12 | true
13 |
14 |
15 |
16 |
17 | true
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | all
27 | runtime; build; native; contentfiles; analyzers; buildtransitive
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | all
38 | runtime; build; native; contentfiles; analyzers; buildtransitive
39 |
40 |
41 | all
42 | runtime; build; native; contentfiles; analyzers; buildtransitive
43 |
44 |
45 |
46 |
47 |
48 | all
49 | runtime; build; native; contentfiles; analyzers; buildtransitive
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Discover.Tests/Microsoft.AzureIntegrationMigration.BizTalk.Discover.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net5.0
5 | false
6 | true
7 | true
8 |
9 |
10 |
11 |
12 | true
13 |
14 |
15 |
16 |
17 | true
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | all
27 | runtime; build; native; contentfiles; analyzers; buildtransitive
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | all
38 | runtime; build; native; contentfiles; analyzers; buildtransitive
39 |
40 |
41 | all
42 | runtime; build; native; contentfiles; analyzers; buildtransitive
43 |
44 |
45 |
46 |
47 |
48 | all
49 | runtime; build; native; contentfiles; analyzers; buildtransitive
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Analyze/ConversionRules/AP002SystemApplicationAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Globalization;
5 | using System.Linq;
6 | using System.Threading;
7 | using System.Threading.Tasks;
8 | using Microsoft.AzureIntegrationMigration.BizTalk.Analyze.Resources;
9 | using Microsoft.AzureIntegrationMigration.BizTalk.Types;
10 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities;
11 | using Microsoft.AzureIntegrationMigration.Runner.Model;
12 | using Microsoft.Extensions.Logging;
13 |
14 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Analyze.ConversionRules
15 | {
16 | ///
17 | /// Implements rule AP002, which analyzes the model and creates the system application on the target source.
18 | ///
19 | public sealed class AP002SystemApplicationAnalyzer : BizTalkAnalyzerBase
20 | {
21 | ///
22 | /// Defines the name of this rule.
23 | ///
24 | private const string RuleName = "AP002";
25 |
26 | ///
27 | /// Defines a logger.
28 | ///
29 | private readonly ILogger _logger;
30 |
31 | ///
32 | /// Creates a new instance of a class.
33 | ///
34 | /// The model.
35 | /// The context.
36 | /// A logger.
37 | public AP002SystemApplicationAnalyzer(IApplicationModel model, MigrationContext context, ILogger logger)
38 | : base(nameof(AP002SystemApplicationAnalyzer), model, context, logger)
39 | {
40 | // Validate and set the member.
41 | _logger = logger ?? throw new ArgumentNullException(nameof(logger));
42 | }
43 |
44 | ///
45 | /// Creates the artifacts in the migration target.
46 | ///
47 | /// The cancellation token.
48 | /// Task used to await the operation.
49 | protected override async Task AnalyzeInternalAsync(CancellationToken token)
50 | {
51 | _logger.LogDebug(TraceMessages.RunningRule, RuleName, nameof(AP002SystemApplicationAnalyzer));
52 |
53 | Model.MigrationTarget.MessageBus.Applications.Add(new ApplicationModel.Target.Application
54 | {
55 | Name = MigrationTargetResources.SystemApplicationName,
56 | Key = $"{Model.MigrationTarget.MessageBus.Key}:{ModelConstants.SystemApplicationLeafKey}",
57 | ResourceMapKey = "systemApplication",
58 | Description = MigrationTargetResources.SystemApplicationDescription,
59 | Rating = ApplicationModel.Report.ConversionRating.FullConversion
60 | });
61 |
62 | _logger.LogDebug(TraceMessages.RuleCompleted, RuleName, nameof(AP002SystemApplicationAnalyzer));
63 |
64 | await Task.CompletedTask.ConfigureAwait(false);
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/tests/Microsoft.AzureIntegrationMigration.BizTalk.Parse.Tests/Microsoft.AzureIntegrationMigration.BizTalk.Parse.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net5.0
5 | false
6 | en
7 | Microsoft Corporation
8 | Microsoft Azure Integration Migration Tool
9 | Library that provides BizTalk parse testing components.
10 | Copyright © Microsoft Corporation 2020
11 | true
12 | $(MSBuildThisFileDirectory)\..\..\dist\packages
13 | Microsoft.AzureIntegrationMigration.BizTalk.Parse.Tests
14 | 0.0.4-alpha
15 | true
16 | true
17 |
18 |
19 |
20 | true
21 |
22 |
23 |
24 |
25 | true
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | all
35 | runtime; build; native; contentfiles; analyzers; buildtransitive
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | all
45 | runtime; build; native; contentfiles; analyzers; buildtransitive
46 |
47 |
48 | all
49 | runtime; build; native; contentfiles; analyzers; buildtransitive
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/src/Microsoft.AzureIntegrationMigration.BizTalk.Types/Entities/Orchestration.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | //-----------------------------------------------------------------------
5 | //
6 | // Copyright (c) Microsoft Corporation. All rights reserved. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7 | //
8 | // Represents a BizTalk Orchestration.
9 | //-----------------------------------------------------------------------
10 |
11 | namespace Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities
12 | {
13 | #region Using Directives
14 |
15 | using System;
16 | using System.Collections.Generic;
17 | using System.Diagnostics.CodeAnalysis;
18 | using System.Globalization;
19 | using System.IO;
20 | using System.Linq;
21 | using System.Reflection;
22 | using System.Xml.Schema;
23 | using System.Xml.Xsl;
24 | using Microsoft.AzureIntegrationMigration.BizTalk.Types.Entities.Orchestrations;
25 |
26 | #endregion
27 |
28 | ///
29 | /// Represents a BizTalk Orchestration.
30 | ///
31 | [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
32 | [Serializable]
33 | public class Orchestration : CompiledComponent
34 | {
35 | ///
36 | /// Initializes a new instance of the class.
37 | ///
38 | public Orchestration()
39 | {
40 | }
41 |
42 | ///
43 | /// Initializes a new instance of the class with related resource container and definition name.
44 | ///
45 | /// The key of the resource container for this orchestration.
46 | /// The key of the resource definition containing the content of this orchestration.
47 | public Orchestration(string resourceContainerKey, string resourceDefinitionKey)
48 | {
49 | ResourceContainerKey = resourceContainerKey ?? throw new ArgumentNullException(nameof(resourceContainerKey));
50 | ResourceDefinitionKey = resourceDefinitionKey ?? throw new ArgumentNullException(nameof(resourceDefinitionKey));
51 | }
52 |
53 | #region Public Instance Properties
54 |
55 | ///
56 | /// Gets or sets the resource container key of the orchestration.
57 | ///
58 | public string ResourceContainerKey { get; set; }
59 |
60 | ///
61 | /// Gets or sets the resource definition key of the orchestration.
62 | ///
63 | public string ResourceDefinitionKey { get; set; }
64 |
65 | ///
66 | /// Gets or sets the which represents the BizTalk Orchestration.
67 | ///
68 | public MetaModel Model { get; set; }
69 |
70 | #endregion
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # aimbiztalk
2 | [](https://github.com/azure/aimbiztalk/actions)
3 |
4 | ```
5 | $$$$$$$\ $$\ $$$$$$$$\ $$\ $$\
6 | $$ __$$\ \__| \__$$ __| $$ |$$ |
7 | $$ | $$ |$$\ $$$$$$$$\ $$ | $$$$$$\ $$ |$$ | $$\
8 | $$$$$$$\ |$$ |\____$$ |$$ | \____$$\ $$ |$$ | $$ |
9 | $$ __$$\ $$ | $$$$ _/ $$ | $$$$$$$ |$$ |$$$$$$ /
10 | $$ | $$ |$$ | $$ _/ $$ |$$ __$$ |$$ |$$ _$$<
11 | $$$$$$$ |$$ |$$$$$$$$\ $$ |\$$$$$$$ |$$ |$$ | \$$\
12 | \_______/ \__|\________|\__| \_______|\__|\__| \__|
13 |
14 |
15 |
16 | $$\ $$\ $$\ $$\
17 | $$$\ $$$ |\__| $$ |
18 | $$$$\ $$$$ |$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\
19 | $$\$$\$$ $$ |$$ |$$ __$$\ $$ __$$\ \____$$\\_$$ _| $$ __$$\ $$ __$$\
20 | $$ \$$$ $$ |$$ |$$ / $$ |$$ | \__|$$$$$$$ | $$ | $$ / $$ |$$ | \__|
21 | $$ |\$ /$$ |$$ |$$ | $$ |$$ | $$ __$$ | $$ |$$\ $$ | $$ |$$ |
22 | $$ | \_/ $$ |$$ |\$$$$$$$ |$$ | \$$$$$$$ | \$$$$ |\$$$$$$ |$$ |
23 | \__| \__|\__| \____$$ |\__| \_______| \____/ \______/ \__|
24 | $$\ $$ |
25 | \$$$$$$ |
26 | \______/
27 | ```
28 |
29 | # BizTalk Migrator
30 |
31 | This repository contains the BizTalk-specific components of the BizTalk Migrator.
32 |
33 | The BizTalk Migrator is a command-line tool that helps migrate BizTalk applications to Azure.
34 | This is implemented across several GitHub repositories - aimcore, aimmodel, aimtool, aimazure, and aimbiztalk.
35 | The documentation for the tool is available at the following link in the aimtool repository:
36 |
37 | - [aimtool](https://github.com/Azure/aimtool/blob/main/docs/README.md)
38 |
39 | # Contributing
40 |
41 | This project welcomes contributions and suggestions. Most contributions require you to agree to a
42 | Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
43 | the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
44 |
45 | When you submit a pull request, a CLA bot will automatically determine whether you need to provide
46 | a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
47 | provided by the bot. You will only need to do this once across all repos using our CLA.
48 |
49 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
50 | For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
51 | contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
52 |
--------------------------------------------------------------------------------