├── 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 | [![Build Status](https://github.com/azure/aimbiztalk/workflows/CI%20Build/badge.svg)](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 | --------------------------------------------------------------------------------