diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 60ad6c5402..0000000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.deployment b/.deployment deleted file mode 100644 index db5488a1df..0000000000 --- a/.deployment +++ /dev/null @@ -1,2 +0,0 @@ -[config] -command = deploy.cmd \ No newline at end of file diff --git a/PortSetter/App.config b/BuildDeployUtils/PortSetter/App.config similarity index 100% rename from PortSetter/App.config rename to BuildDeployUtils/PortSetter/App.config diff --git a/PortSetter/PortSetter.csproj b/BuildDeployUtils/PortSetter/PortSetter.csproj similarity index 100% rename from PortSetter/PortSetter.csproj rename to BuildDeployUtils/PortSetter/PortSetter.csproj diff --git a/PortSetter/Program.cs b/BuildDeployUtils/PortSetter/Program.cs similarity index 100% rename from PortSetter/Program.cs rename to BuildDeployUtils/PortSetter/Program.cs diff --git a/PortSetter/Properties/AssemblyInfo.cs b/BuildDeployUtils/PortSetter/Properties/AssemblyInfo.cs similarity index 100% rename from PortSetter/Properties/AssemblyInfo.cs rename to BuildDeployUtils/PortSetter/Properties/AssemblyInfo.cs diff --git a/SQL scripts/Clean up Hub registration in MT.sql b/BuildDeployUtils/SQL scripts/Clean up Hub registration in MT.sql similarity index 100% rename from SQL scripts/Clean up Hub registration in MT.sql rename to BuildDeployUtils/SQL scripts/Clean up Hub registration in MT.sql diff --git a/SQL scripts/Cleanup HangFire Jobs.sql b/BuildDeployUtils/SQL scripts/Cleanup HangFire Jobs.sql similarity index 100% rename from SQL scripts/Cleanup HangFire Jobs.sql rename to BuildDeployUtils/SQL scripts/Cleanup HangFire Jobs.sql diff --git a/SQL scripts/Count HangFire Jobs.sql b/BuildDeployUtils/SQL scripts/Count HangFire Jobs.sql similarity index 100% rename from SQL scripts/Count HangFire Jobs.sql rename to BuildDeployUtils/SQL scripts/Count HangFire Jobs.sql diff --git a/SQL scripts/Count Stats.sql b/BuildDeployUtils/SQL scripts/Count Stats.sql similarity index 100% rename from SQL scripts/Count Stats.sql rename to BuildDeployUtils/SQL scripts/Count Stats.sql diff --git a/SQL scripts/Deactivate All Integration Testing Plans.sql b/BuildDeployUtils/SQL scripts/Deactivate All Integration Testing Plans.sql similarity index 100% rename from SQL scripts/Deactivate All Integration Testing Plans.sql rename to BuildDeployUtils/SQL scripts/Deactivate All Integration Testing Plans.sql diff --git a/SQL scripts/Delete Duplicated Localhost Endpoints.sql b/BuildDeployUtils/SQL scripts/Delete Duplicated Localhost Endpoints.sql similarity index 100% rename from SQL scripts/Delete Duplicated Localhost Endpoints.sql rename to BuildDeployUtils/SQL scripts/Delete Duplicated Localhost Endpoints.sql diff --git a/SQL scripts/Delete HangFire tables.sql b/BuildDeployUtils/SQL scripts/Delete HangFire tables.sql similarity index 100% rename from SQL scripts/Delete HangFire tables.sql rename to BuildDeployUtils/SQL scripts/Delete HangFire tables.sql diff --git a/SQL scripts/Delete Terminal Registration.sql b/BuildDeployUtils/SQL scripts/Delete Terminal Registration.sql similarity index 100% rename from SQL scripts/Delete Terminal Registration.sql rename to BuildDeployUtils/SQL scripts/Delete Terminal Registration.sql diff --git a/SQL scripts/DeleteOldLogs.sql b/BuildDeployUtils/SQL scripts/DeleteOldLogs.sql similarity index 100% rename from SQL scripts/DeleteOldLogs.sql rename to BuildDeployUtils/SQL scripts/DeleteOldLogs.sql diff --git a/SQL scripts/Fix Terminal Endpoints.sql b/BuildDeployUtils/SQL scripts/Fix Terminal Endpoints.sql similarity index 100% rename from SQL scripts/Fix Terminal Endpoints.sql rename to BuildDeployUtils/SQL scripts/Fix Terminal Endpoints.sql diff --git a/SQL scripts/Restore Terminal Information.sql b/BuildDeployUtils/SQL scripts/Restore Terminal Information.sql similarity index 100% rename from SQL scripts/Restore Terminal Information.sql rename to BuildDeployUtils/SQL scripts/Restore Terminal Information.sql diff --git a/SQL scripts/Show Incidents.sql b/BuildDeployUtils/SQL scripts/Show Incidents.sql similarity index 100% rename from SQL scripts/Show Incidents.sql rename to BuildDeployUtils/SQL scripts/Show Incidents.sql diff --git a/_PowerShellScripts/Add-BuildServer.ps1 b/BuildDeployUtils/_PowerShellScripts/Add-BuildServer.ps1 similarity index 100% rename from _PowerShellScripts/Add-BuildServer.ps1 rename to BuildDeployUtils/_PowerShellScripts/Add-BuildServer.ps1 diff --git a/_PowerShellScripts/Add-Repo.ps1 b/BuildDeployUtils/_PowerShellScripts/Add-Repo.ps1 similarity index 100% rename from _PowerShellScripts/Add-Repo.ps1 rename to BuildDeployUtils/_PowerShellScripts/Add-Repo.ps1 diff --git a/_PowerShellScripts/Check-Confirmation.ps1 b/BuildDeployUtils/_PowerShellScripts/Check-Confirmation.ps1 similarity index 100% rename from _PowerShellScripts/Check-Confirmation.ps1 rename to BuildDeployUtils/_PowerShellScripts/Check-Confirmation.ps1 diff --git a/_PowerShellScripts/CheckWebSettings.ps1 b/BuildDeployUtils/_PowerShellScripts/CheckWebSettings.ps1 similarity index 100% rename from _PowerShellScripts/CheckWebSettings.ps1 rename to BuildDeployUtils/_PowerShellScripts/CheckWebSettings.ps1 diff --git a/_PowerShellScripts/CleanUpAfterTests.ps1 b/BuildDeployUtils/_PowerShellScripts/CleanUpAfterTests.ps1 similarity index 100% rename from _PowerShellScripts/CleanUpAfterTests.ps1 rename to BuildDeployUtils/_PowerShellScripts/CleanUpAfterTests.ps1 diff --git a/_PowerShellScripts/ClearDbBeforeTests.ps1 b/BuildDeployUtils/_PowerShellScripts/ClearDbBeforeTests.ps1 similarity index 100% rename from _PowerShellScripts/ClearDbBeforeTests.ps1 rename to BuildDeployUtils/_PowerShellScripts/ClearDbBeforeTests.ps1 diff --git a/_PowerShellScripts/CloneDatabase.ps1 b/BuildDeployUtils/_PowerShellScripts/CloneDatabase.ps1 similarity index 100% rename from _PowerShellScripts/CloneDatabase.ps1 rename to BuildDeployUtils/_PowerShellScripts/CloneDatabase.ps1 diff --git a/_PowerShellScripts/Combine-Sources.ps1 b/BuildDeployUtils/_PowerShellScripts/Combine-Sources.ps1 similarity index 100% rename from _PowerShellScripts/Combine-Sources.ps1 rename to BuildDeployUtils/_PowerShellScripts/Combine-Sources.ps1 diff --git a/_PowerShellScripts/Copy-ImagesBetweenAccount.ps1 b/BuildDeployUtils/_PowerShellScripts/Copy-ImagesBetweenAccount.ps1 similarity index 100% rename from _PowerShellScripts/Copy-ImagesBetweenAccount.ps1 rename to BuildDeployUtils/_PowerShellScripts/Copy-ImagesBetweenAccount.ps1 diff --git a/_PowerShellScripts/CopyAppInsightsConfigs.ps1 b/BuildDeployUtils/_PowerShellScripts/CopyAppInsightsConfigs.ps1 similarity index 100% rename from _PowerShellScripts/CopyAppInsightsConfigs.ps1 rename to BuildDeployUtils/_PowerShellScripts/CopyAppInsightsConfigs.ps1 diff --git a/_PowerShellScripts/Create-SDKNuget.ps1 b/BuildDeployUtils/_PowerShellScripts/Create-SDKNuget.ps1 similarity index 100% rename from _PowerShellScripts/Create-SDKNuget.ps1 rename to BuildDeployUtils/_PowerShellScripts/Create-SDKNuget.ps1 diff --git a/_PowerShellScripts/Create-VersionFile.ps1 b/BuildDeployUtils/_PowerShellScripts/Create-VersionFile.ps1 similarity index 100% rename from _PowerShellScripts/Create-VersionFile.ps1 rename to BuildDeployUtils/_PowerShellScripts/Create-VersionFile.ps1 diff --git a/_PowerShellScripts/DEV-settings.job b/BuildDeployUtils/_PowerShellScripts/DEV-settings.job similarity index 100% rename from _PowerShellScripts/DEV-settings.job rename to BuildDeployUtils/_PowerShellScripts/DEV-settings.job diff --git a/_PowerShellScripts/DeleteDatabase.ps1 b/BuildDeployUtils/_PowerShellScripts/DeleteDatabase.ps1 similarity index 100% rename from _PowerShellScripts/DeleteDatabase.ps1 rename to BuildDeployUtils/_PowerShellScripts/DeleteDatabase.ps1 diff --git a/_PowerShellScripts/DeleteHostedDatabase.ps1 b/BuildDeployUtils/_PowerShellScripts/DeleteHostedDatabase.ps1 similarity index 100% rename from _PowerShellScripts/DeleteHostedDatabase.ps1 rename to BuildDeployUtils/_PowerShellScripts/DeleteHostedDatabase.ps1 diff --git a/_PowerShellScripts/Deploy-HMAsWebJob.ps1 b/BuildDeployUtils/_PowerShellScripts/Deploy-HMAsWebJob.ps1 similarity index 100% rename from _PowerShellScripts/Deploy-HMAsWebJob.ps1 rename to BuildDeployUtils/_PowerShellScripts/Deploy-HMAsWebJob.ps1 diff --git a/_PowerShellScripts/DeployFr8Locally.ps1 b/BuildDeployUtils/_PowerShellScripts/DeployFr8Locally.ps1 similarity index 100% rename from _PowerShellScripts/DeployFr8Locally.ps1 rename to BuildDeployUtils/_PowerShellScripts/DeployFr8Locally.ps1 diff --git a/_PowerShellScripts/Filename.json b/BuildDeployUtils/_PowerShellScripts/Filename.json similarity index 100% rename from _PowerShellScripts/Filename.json rename to BuildDeployUtils/_PowerShellScripts/Filename.json diff --git a/_PowerShellScripts/HM-job-run.cmd b/BuildDeployUtils/_PowerShellScripts/HM-job-run.cmd similarity index 100% rename from _PowerShellScripts/HM-job-run.cmd rename to BuildDeployUtils/_PowerShellScripts/HM-job-run.cmd diff --git a/_PowerShellScripts/HM-job-settings.job b/BuildDeployUtils/_PowerShellScripts/HM-job-settings.job similarity index 100% rename from _PowerShellScripts/HM-job-settings.job rename to BuildDeployUtils/_PowerShellScripts/HM-job-settings.job diff --git a/_PowerShellScripts/MergePRSourcesIntoDev.ps1 b/BuildDeployUtils/_PowerShellScripts/MergePRSourcesIntoDev.ps1 similarity index 100% rename from _PowerShellScripts/MergePRSourcesIntoDev.ps1 rename to BuildDeployUtils/_PowerShellScripts/MergePRSourcesIntoDev.ps1 diff --git a/_PowerShellScripts/Reboot-CloudService.ps1 b/BuildDeployUtils/_PowerShellScripts/Reboot-CloudService.ps1 similarity index 100% rename from _PowerShellScripts/Reboot-CloudService.ps1 rename to BuildDeployUtils/_PowerShellScripts/Reboot-CloudService.ps1 diff --git a/_PowerShellScripts/Remove-HMAsWebJob.ps1 b/BuildDeployUtils/_PowerShellScripts/Remove-HMAsWebJob.ps1 similarity index 100% rename from _PowerShellScripts/Remove-HMAsWebJob.ps1 rename to BuildDeployUtils/_PowerShellScripts/Remove-HMAsWebJob.ps1 diff --git a/_PowerShellScripts/RestoreDatabaseFromBackup.ps1 b/BuildDeployUtils/_PowerShellScripts/RestoreDatabaseFromBackup.ps1 similarity index 100% rename from _PowerShellScripts/RestoreDatabaseFromBackup.ps1 rename to BuildDeployUtils/_PowerShellScripts/RestoreDatabaseFromBackup.ps1 diff --git a/_PowerShellScripts/Run-DBMigration.ps1 b/BuildDeployUtils/_PowerShellScripts/Run-DBMigration.ps1 similarity index 100% rename from _PowerShellScripts/Run-DBMigration.ps1 rename to BuildDeployUtils/_PowerShellScripts/Run-DBMigration.ps1 diff --git a/_PowerShellScripts/Run-IntegrationTests.ps1 b/BuildDeployUtils/_PowerShellScripts/Run-IntegrationTests.ps1 similarity index 100% rename from _PowerShellScripts/Run-IntegrationTests.ps1 rename to BuildDeployUtils/_PowerShellScripts/Run-IntegrationTests.ps1 diff --git a/_PowerShellScripts/Run-ProtractorTests.ps1 b/BuildDeployUtils/_PowerShellScripts/Run-ProtractorTests.ps1 similarity index 100% rename from _PowerShellScripts/Run-ProtractorTests.ps1 rename to BuildDeployUtils/_PowerShellScripts/Run-ProtractorTests.ps1 diff --git a/_PowerShellScripts/Run-SQL.ps1 b/BuildDeployUtils/_PowerShellScripts/Run-SQL.ps1 similarity index 100% rename from _PowerShellScripts/Run-SQL.ps1 rename to BuildDeployUtils/_PowerShellScripts/Run-SQL.ps1 diff --git a/_PowerShellScripts/RunFrontEndTests-VSO.ps1 b/BuildDeployUtils/_PowerShellScripts/RunFrontEndTests-VSO.ps1 similarity index 100% rename from _PowerShellScripts/RunFrontEndTests-VSO.ps1 rename to BuildDeployUtils/_PowerShellScripts/RunFrontEndTests-VSO.ps1 diff --git a/_PowerShellScripts/Set-AzureSQLService.ps1 b/BuildDeployUtils/_PowerShellScripts/Set-AzureSQLService.ps1 similarity index 100% rename from _PowerShellScripts/Set-AzureSQLService.ps1 rename to BuildDeployUtils/_PowerShellScripts/Set-AzureSQLService.ps1 diff --git a/_PowerShellScripts/Set-CS.ps1 b/BuildDeployUtils/_PowerShellScripts/Set-CS.ps1 similarity index 100% rename from _PowerShellScripts/Set-CS.ps1 rename to BuildDeployUtils/_PowerShellScripts/Set-CS.ps1 diff --git a/_PowerShellScripts/Set-Config.ps1 b/BuildDeployUtils/_PowerShellScripts/Set-Config.ps1 similarity index 100% rename from _PowerShellScripts/Set-Config.ps1 rename to BuildDeployUtils/_PowerShellScripts/Set-Config.ps1 diff --git a/_PowerShellScripts/Set-CsConfig.ps1 b/BuildDeployUtils/_PowerShellScripts/Set-CsConfig.ps1 similarity index 100% rename from _PowerShellScripts/Set-CsConfig.ps1 rename to BuildDeployUtils/_PowerShellScripts/Set-CsConfig.ps1 diff --git a/_PowerShellScripts/Set-Endpoints.ps1 b/BuildDeployUtils/_PowerShellScripts/Set-Endpoints.ps1 similarity index 100% rename from _PowerShellScripts/Set-Endpoints.ps1 rename to BuildDeployUtils/_PowerShellScripts/Set-Endpoints.ps1 diff --git a/_PowerShellScripts/Set-EndpointsDev.ps1 b/BuildDeployUtils/_PowerShellScripts/Set-EndpointsDev.ps1 similarity index 100% rename from _PowerShellScripts/Set-EndpointsDev.ps1 rename to BuildDeployUtils/_PowerShellScripts/Set-EndpointsDev.ps1 diff --git a/_PowerShellScripts/Set-EndpointsStaging.ps1 b/BuildDeployUtils/_PowerShellScripts/Set-EndpointsStaging.ps1 similarity index 100% rename from _PowerShellScripts/Set-EndpointsStaging.ps1 rename to BuildDeployUtils/_PowerShellScripts/Set-EndpointsStaging.ps1 diff --git a/_PowerShellScripts/Set-GitHubBuildStatus.ps1 b/BuildDeployUtils/_PowerShellScripts/Set-GitHubBuildStatus.ps1 similarity index 100% rename from _PowerShellScripts/Set-GitHubBuildStatus.ps1 rename to BuildDeployUtils/_PowerShellScripts/Set-GitHubBuildStatus.ps1 diff --git a/_PowerShellScripts/Set-WebsiteAppSettings.ps1 b/BuildDeployUtils/_PowerShellScripts/Set-WebsiteAppSettings.ps1 similarity index 100% rename from _PowerShellScripts/Set-WebsiteAppSettings.ps1 rename to BuildDeployUtils/_PowerShellScripts/Set-WebsiteAppSettings.ps1 diff --git a/_PowerShellScripts/SetCloudServiceSize.ps1 b/BuildDeployUtils/_PowerShellScripts/SetCloudServiceSize.ps1 similarity index 100% rename from _PowerShellScripts/SetCloudServiceSize.ps1 rename to BuildDeployUtils/_PowerShellScripts/SetCloudServiceSize.ps1 diff --git a/_PowerShellScripts/Start-Sleep.ps1 b/BuildDeployUtils/_PowerShellScripts/Start-Sleep.ps1 similarity index 100% rename from _PowerShellScripts/Start-Sleep.ps1 rename to BuildDeployUtils/_PowerShellScripts/Start-Sleep.ps1 diff --git a/_PowerShellScripts/Start-StagingWebsite.ps1 b/BuildDeployUtils/_PowerShellScripts/Start-StagingWebsite.ps1 similarity index 100% rename from _PowerShellScripts/Start-StagingWebsite.ps1 rename to BuildDeployUtils/_PowerShellScripts/Start-StagingWebsite.ps1 diff --git a/_PowerShellScripts/Stop-StagingWebsite.ps1 b/BuildDeployUtils/_PowerShellScripts/Stop-StagingWebsite.ps1 similarity index 100% rename from _PowerShellScripts/Stop-StagingWebsite.ps1 rename to BuildDeployUtils/_PowerShellScripts/Stop-StagingWebsite.ps1 diff --git a/_PowerShellScripts/Swap-CloudService.ps1 b/BuildDeployUtils/_PowerShellScripts/Swap-CloudService.ps1 similarity index 100% rename from _PowerShellScripts/Swap-CloudService.ps1 rename to BuildDeployUtils/_PowerShellScripts/Swap-CloudService.ps1 diff --git a/_PowerShellScripts/Update-HostnameInTerminalRegistration.ps1 b/BuildDeployUtils/_PowerShellScripts/Update-HostnameInTerminalRegistration.ps1 similarity index 100% rename from _PowerShellScripts/Update-HostnameInTerminalRegistration.ps1 rename to BuildDeployUtils/_PowerShellScripts/Update-HostnameInTerminalRegistration.ps1 diff --git a/_PowerShellScripts/Update-HostnameInTerminals.ps1 b/BuildDeployUtils/_PowerShellScripts/Update-HostnameInTerminals.ps1 similarity index 100% rename from _PowerShellScripts/Update-HostnameInTerminals.ps1 rename to BuildDeployUtils/_PowerShellScripts/Update-HostnameInTerminals.ps1 diff --git a/_PowerShellScripts/Upload-File.ps1 b/BuildDeployUtils/_PowerShellScripts/Upload-File.ps1 similarity index 100% rename from _PowerShellScripts/Upload-File.ps1 rename to BuildDeployUtils/_PowerShellScripts/Upload-File.ps1 diff --git a/_PowerShellScripts/Wait-Database.ps1 b/BuildDeployUtils/_PowerShellScripts/Wait-Database.ps1 similarity index 100% rename from _PowerShellScripts/Wait-Database.ps1 rename to BuildDeployUtils/_PowerShellScripts/Wait-Database.ps1 diff --git a/lib/DayPilot.Web.Mvc.dll b/Common/Library/DayPilot.Web.Mvc.dll similarity index 100% rename from lib/DayPilot.Web.Mvc.dll rename to Common/Library/DayPilot.Web.Mvc.dll diff --git a/lib/Ionic.ZLib.dll b/Common/Library/Ionic.ZLib.dll similarity index 100% rename from lib/Ionic.ZLib.dll rename to Common/Library/Ionic.ZLib.dll diff --git a/lib/S22.Imap.dll b/Common/Library/S22.Imap.dll similarity index 100% rename from lib/S22.Imap.dll rename to Common/Library/S22.Imap.dll diff --git a/lib/TLSharp.Core.dll b/Common/Library/TLSharp.Core.dll similarity index 100% rename from lib/TLSharp.Core.dll rename to Common/Library/TLSharp.Core.dll diff --git a/Tests/Fr8.Testing/BaseHealthMonitorTest.cs b/Common/Tests/Fr8.Testing/BaseHealthMonitorTest.cs similarity index 100% rename from Tests/Fr8.Testing/BaseHealthMonitorTest.cs rename to Common/Tests/Fr8.Testing/BaseHealthMonitorTest.cs diff --git a/Tests/Fr8.Testing/Fr8.Testing.csproj b/Common/Tests/Fr8.Testing/Fr8.Testing.csproj similarity index 80% rename from Tests/Fr8.Testing/Fr8.Testing.csproj rename to Common/Tests/Fr8.Testing/Fr8.Testing.csproj index 8444912892..53540358e0 100644 --- a/Tests/Fr8.Testing/Fr8.Testing.csproj +++ b/Common/Tests/Fr8.Testing/Fr8.Testing.csproj @@ -51,51 +51,51 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True False - ..\..\packages\Microsoft.AspNet.Identity.Core.2.0.0\lib\net45\Microsoft.AspNet.Identity.Core.dll + ..\..\..\packages\Microsoft.AspNet.Identity.Core.2.0.0\lib\net45\Microsoft.AspNet.Identity.Core.dll False - ..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.0\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll + ..\..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.0\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll False - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll False - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll - ..\..\packages\OpenPop.NET.2.0.6.1120\lib\net40\OpenPop.dll + ..\..\..\packages\OpenPop.NET.2.0.6.1120\lib\net40\OpenPop.dll True False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll @@ -104,11 +104,11 @@ False - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll False - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll @@ -180,19 +180,19 @@ - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub @@ -208,10 +208,10 @@ - + - - + + - + diff --git a/Tests/HealthMonitor/ApplicationInsights.config b/Common/Tests/HealthMonitor/ApplicationInsights.config similarity index 100% rename from Tests/HealthMonitor/ApplicationInsights.config rename to Common/Tests/HealthMonitor/ApplicationInsights.config diff --git a/Tests/HealthMonitor/Build-Settings.ps1 b/Common/Tests/HealthMonitor/Build-Settings.ps1 similarity index 100% rename from Tests/HealthMonitor/Build-Settings.ps1 rename to Common/Tests/HealthMonitor/Build-Settings.ps1 diff --git a/Tests/HealthMonitor/CleanupService.cs b/Common/Tests/HealthMonitor/CleanupService.cs similarity index 100% rename from Tests/HealthMonitor/CleanupService.cs rename to Common/Tests/HealthMonitor/CleanupService.cs diff --git a/Tests/HealthMonitor/Config/Settings.config.src.readme b/Common/Tests/HealthMonitor/Config/Settings.config.src.readme similarity index 100% rename from Tests/HealthMonitor/Config/Settings.config.src.readme rename to Common/Tests/HealthMonitor/Config/Settings.config.src.readme diff --git a/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Demo.config.readme b/Common/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Demo.config.readme similarity index 100% rename from Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Demo.config.readme rename to Common/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Demo.config.readme diff --git a/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Dev.config.readme b/Common/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Dev.config.readme similarity index 100% rename from Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Dev.config.readme rename to Common/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Dev.config.readme diff --git a/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Release.config.readme b/Common/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Release.config.readme similarity index 100% rename from Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Release.config.readme rename to Common/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.Release.config.readme diff --git a/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.config.readme b/Common/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.config.readme similarity index 100% rename from Tests/HealthMonitor/Config/log4net.tests.healthMonitor.config.readme rename to Common/Tests/HealthMonitor/Config/log4net.tests.healthMonitor.config.readme diff --git a/Tests/HealthMonitor/Configuration/HealthMonitorConfigurationSection.cs b/Common/Tests/HealthMonitor/Configuration/HealthMonitorConfigurationSection.cs similarity index 100% rename from Tests/HealthMonitor/Configuration/HealthMonitorConfigurationSection.cs rename to Common/Tests/HealthMonitor/Configuration/HealthMonitorConfigurationSection.cs diff --git a/Tests/HealthMonitor/Configuration/NotifiersConfigurationCollection.cs b/Common/Tests/HealthMonitor/Configuration/NotifiersConfigurationCollection.cs similarity index 100% rename from Tests/HealthMonitor/Configuration/NotifiersConfigurationCollection.cs rename to Common/Tests/HealthMonitor/Configuration/NotifiersConfigurationCollection.cs diff --git a/Tests/HealthMonitor/Configuration/SelfHostedTerminalsCollection.cs b/Common/Tests/HealthMonitor/Configuration/SelfHostedTerminalsCollection.cs similarity index 100% rename from Tests/HealthMonitor/Configuration/SelfHostedTerminalsCollection.cs rename to Common/Tests/HealthMonitor/Configuration/SelfHostedTerminalsCollection.cs diff --git a/Tests/HealthMonitor/Configuration/TestSuiteConfigurationCollection.cs b/Common/Tests/HealthMonitor/Configuration/TestSuiteConfigurationCollection.cs similarity index 100% rename from Tests/HealthMonitor/Configuration/TestSuiteConfigurationCollection.cs rename to Common/Tests/HealthMonitor/Configuration/TestSuiteConfigurationCollection.cs diff --git a/Tests/HealthMonitor/Context.cs b/Common/Tests/HealthMonitor/Context.cs similarity index 100% rename from Tests/HealthMonitor/Context.cs rename to Common/Tests/HealthMonitor/Context.cs diff --git a/Tests/HealthMonitor/HealthMonitor.csproj b/Common/Tests/HealthMonitor/HealthMonitor.csproj similarity index 69% rename from Tests/HealthMonitor/HealthMonitor.csproj rename to Common/Tests/HealthMonitor/HealthMonitor.csproj index 13e828dfd4..4db58194d6 100644 --- a/Tests/HealthMonitor/HealthMonitor.csproj +++ b/Common/Tests/HealthMonitor/HealthMonitor.csproj @@ -62,7 +62,7 @@ true - $([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\..\..\packages\SlowCheetah.2.5.15\tools\)) + $([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\..\..\..\packages\SlowCheetah.2.5.15\tools\)) true $([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\Properties\SlowCheetah\SlowCheetah.Transforms.targets )) $(SlowCheetah_NuGetImportPath) @@ -79,165 +79,165 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\Hyak.Common.1.0.2\lib\net45\Hyak.Common.dll + ..\..\..\packages\Hyak.Common.1.0.2\lib\net45\Hyak.Common.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.Agent.Intercept.1.2.1\lib\net45\Microsoft.AI.Agent.Intercept.dll + ..\..\..\packages\Microsoft.ApplicationInsights.Agent.Intercept.1.2.1\lib\net45\Microsoft.AI.Agent.Intercept.dll True - ..\..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.0.0\lib\net45\Microsoft.AI.DependencyCollector.dll + ..\..\..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.0.0\lib\net45\Microsoft.AI.DependencyCollector.dll True - ..\..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll + ..\..\..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll True - ..\..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll + ..\..\..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll True - ..\..\packages\Microsoft.ApplicationInsights.Web.2.0.0\lib\net45\Microsoft.AI.Web.dll + ..\..\..\packages\Microsoft.ApplicationInsights.Web.2.0.0\lib\net45\Microsoft.AI.Web.dll True - ..\..\packages\Microsoft.ApplicationInsights.WindowsServer.2.0.0\lib\net45\Microsoft.AI.WindowsServer.dll + ..\..\..\packages\Microsoft.ApplicationInsights.WindowsServer.2.0.0\lib\net45\Microsoft.AI.WindowsServer.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.AspNet.Identity.Core.2.1.0\lib\net45\Microsoft.AspNet.Identity.Core.dll + ..\..\..\packages\Microsoft.AspNet.Identity.Core.2.1.0\lib\net45\Microsoft.AspNet.Identity.Core.dll True - ..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.1.0\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll + ..\..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.1.0\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll True - ..\..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.dll + ..\..\..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.dll True - ..\..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.NetFramework.dll True - ..\..\packages\Microsoft.Azure.KeyVault.1.0.0\lib\net45\Microsoft.Azure.KeyVault.dll + ..\..\..\packages\Microsoft.Azure.KeyVault.1.0.0\lib\net45\Microsoft.Azure.KeyVault.dll True - ..\..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll + ..\..\..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll True - ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll True - ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Microsoft.Owin.Host.HttpListener.3.0.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll + ..\..\..\packages\Microsoft.Owin.Host.HttpListener.3.0.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.core.dll + ..\..\..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.core.dll True - ..\..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.core.interfaces.dll + ..\..\..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.core.interfaces.dll True - ..\..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.framework.dll + ..\..\..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.framework.dll - ..\..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.util.dll + ..\..\..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.util.dll True - ..\..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\NUnit.VisualStudio.TestAdapter.dll + ..\..\..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\NUnit.VisualStudio.TestAdapter.dll False - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.3.0.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.3.0.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\..\packages\SendGrid.SmtpApi.1.1.3\lib\net40\SendGrid.SmtpApi.dll + ..\..\..\packages\SendGrid.SmtpApi.1.1.3\lib\net40\SendGrid.SmtpApi.dll - ..\..\packages\Sendgrid.5.0.0\lib\SendGridMail.dll + ..\..\..\packages\Sendgrid.5.0.0\lib\SendGridMail.dll False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll @@ -252,25 +252,25 @@ - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True False - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True @@ -279,7 +279,7 @@ - ..\..\packages\YamlDotNet.3.8.0\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.8.0\lib\net35\YamlDotNet.dll True @@ -342,43 +342,43 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + {0dcd9aae-f141-4fad-8e87-1c610f0582db} terminalAsana - + {19e2fda9-d7ac-4365-a25a-4bbcaf8be7fd} terminalBasecamp2 - + {84800565-b464-471d-8f02-1a93311c3388} terminalBox - + {c982a6fe-6fd4-47fa-a69d-91ffa80fedaa} terminalFacebook - + {26c15dc0-73ca-46e3-aeba-17353c59c2f3} terminalInstagram - + {5fb0adc8-24c7-4b32-a4d2-afa31b0baaa7} terminalStatX - + {fba67d4e-d81a-4b6e-a6fd-464a2a5af9d5} terminalTelegram @@ -386,139 +386,135 @@ {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing - + {1e8dd13a-846b-4c36-a9c4-5997c5fd74ff} HubTests - + {89d763ed-3ea6-4303-ab29-3239095a4b06} terminalAtlassian - + {d019b112-55a8-4661-aff5-329f998d9e28} terminalAzure - + {4e04feb2-b452-4739-8336-ea2cefb18d87} terminalDocuSign - + {3b0a3d34-d926-4356-be31-809055fe835a} terminalAsanaTests - + {f39ea7be-25c2-45ed-91ac-29647effad2b} terminalAtlassianTests - + {42f21ce5-c8d1-4083-937b-951b92c2f93c} terminalDropboxTests - + {cfba4468-222f-4255-8d94-809acbf7ac47} terminalDropbox - + {57373d06-6b82-4ec6-af62-ed25fe170c61} terminalExcel - + {380c028e-2623-4207-b8af-f21b92183ed8} terminalFacebookTests - + {6c3090fc-50d2-4a7e-9b29-eab9d8802f42} terminalFr8CoreTests - + {ad226a7f-0641-4589-93eb-06e5ee7e767b} terminalFr8Core - + {62219aa6-9276-4935-b934-f0f50ecef6fb} terminalGoogleTests - + {cddccfab-28b8-446c-8585-72d2bb78f2dc} terminalGoogle - + {d0bbf260-ad17-41bf-9e11-6ea0cc8308e1} terminalInstagramTests - - {579ba25f-1df5-474a-8a3e-0447ff75711c} - terminalIntegrationTests - - + {74d9bdc7-7b46-456f-b3c5-a4cdb5d74d7b} terminalPapertrail - + {3d4116ce-63dd-406c-8235-0115a8fa90f1} terminalQuickBooks - + {fda06158-a81e-46b4-9f25-5ab76dfd400a} terminalSalesforceTests - + {85cb0215-96df-4c38-a022-1be6c952813b} terminalSalesforce - + {ee3e1e99-175f-4507-96da-421fcd0f6d9e} terminalSendGridTests - + {1e1ab01b-f6ab-4420-bf1d-5e6ef41d76bf} terminalSendGrid - + {1246a6d6-fb9d-4564-8e86-a9f14a7ad177} terminalSlackTests - + {990db8cb-aad6-42fe-940d-3a731df56abe} terminalSlack - + {e0e04964-f77e-435f-8b90-f4338c30ddad} terminalStatXTests - + {6b807ab1-f549-49cb-9f52-52bc33d23443} terminalTwilioTests - + {14404298-4182-4d43-8098-5a199ed2fcaa} terminalTwilio - + {d2638cb3-33d6-443f-bc87-e20260d3c9ef} terminalYammerTests - + {e8bf04ac-1a7d-4cbe-80b9-e20f53699f2d} terminalYammer - + {36ed6f21-1a8f-4f07-a08a-a55639891e9b} terminalAzureTests - + {a6e317fa-2eb0-4447-8ecd-6725f6b78435} terminalDocuSignTests - + {a854eb96-b28a-42fc-8209-3e5e9d6b208c} terminalExcelTests - + {8f5be349-6d11-44ad-a1cc-b5bb5eb4b179} terminalPapertrailTests - + {6367b304-3e18-4da6-a7e7-0893da806953} terminalQuickBooksTests @@ -574,13 +570,13 @@ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + - + - - + + powershell.exe –NonInteractive –ExecutionPolicy Unrestricted –command "& { $(ProjectDir)Build-Settings.ps1 }" @@ -588,7 +584,7 @@ - + -

FILE PICKER DEMO

-
- -
-

RADIO BUTTON GROUP DEMO

-
- -
-

DROP DOWN LIST BOX DEMO

-
- -
- -
- -
- - - diff --git a/ExceptionHandlers/ExeceptionHandler.cs b/ExceptionHandlers/ExeceptionHandler.cs deleted file mode 100644 index 07755f69e4..0000000000 --- a/ExceptionHandlers/ExeceptionHandler.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Threading; -using System.Threading.Tasks; -using System.Web.Http.ExceptionHandling; - -namespace Web.ExceptionHandling -{ - public class ExeceptionHandler : IExceptionHandler - { - public virtual Task HandleAsync(ExceptionHandlerContext context, CancellationToken cancellationToken) - { - if (!ShouldHandle(context)) - { - return Task.FromResult(0); - } - - return HandleAsyncCore(context, cancellationToken); - } - - public virtual Task HandleAsyncCore(ExceptionHandlerContext context, CancellationToken cancellationToken) - { - HandleCore(context); - return Task.FromResult(0); - } - - public virtual void HandleCore(ExceptionHandlerContext context) - { - } - - public virtual bool ShouldHandle(ExceptionHandlerContext context) - { - return context.ExceptionContext.CatchBlock.IsTopLevel; - } - } -} \ No newline at end of file diff --git a/ExceptionHandlers/Fr8ExceptionHandler.ErrorResult.cs b/ExceptionHandlers/Fr8ExceptionHandler.ErrorResult.cs deleted file mode 100644 index 0abcf78197..0000000000 --- a/ExceptionHandlers/Fr8ExceptionHandler.ErrorResult.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System.Net; -using System.Net.Http; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using System.Web.Http; -using Data.Interfaces.DataTransferObjects; -using Newtonsoft.Json; - -namespace Web.ExceptionHandling -{ - public partial class Fr8ExceptionHandler - { - private class ErrorResult : IHttpActionResult - { - public HttpRequestMessage Request - { - get; - set; - } - - public ErrorDTO Content - { - get; - set; - } - - public ErrorResult(HttpRequestMessage request, ErrorDTO content) - { - Request = request; - Content = content; - } - - public Task ExecuteAsync(CancellationToken cancellationToken) - { - var response = new HttpResponseMessage(HttpStatusCode.InternalServerError); - - response.Content = new StringContent(JsonConvert.SerializeObject(Content), Encoding.UTF8, "application/json"); - response.RequestMessage = Request; - - return Task.FromResult(response); - } - } - } -} \ No newline at end of file diff --git a/ExceptionHandlers/Fr8ExceptionHandler.cs b/ExceptionHandlers/Fr8ExceptionHandler.cs deleted file mode 100644 index bac79e51f4..0000000000 --- a/ExceptionHandlers/Fr8ExceptionHandler.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Web; -using System.Web.Http.ExceptionHandling; -using Data.Interfaces.DataTransferObjects; - -namespace Web.ExceptionHandling -{ - public partial class Fr8ExceptionHandler : ExeceptionHandler - { - public override void HandleCore(ExceptionHandlerContext context) - { - var error = ErrorDTO.InternalError(); - - error.Message = "Sorry, an unexpected error has occurred while serving your request. Please try again in a few minutes."; - - // if debugging enabled send back the details of exception as well - if (HttpContext.Current.IsDebuggingEnabled) - { - error.Details = new - { - exception = context.Exception, - catchBlock = context.CatchBlock, - }; - } - - context.Result = new ErrorResult(context.ExceptionContext.Request, error); - } - } -} \ No newline at end of file diff --git a/ExceptionHandlers/MvcHandleErrorAttribute.cs b/ExceptionHandlers/MvcHandleErrorAttribute.cs deleted file mode 100644 index 63d085e3aa..0000000000 --- a/ExceptionHandlers/MvcHandleErrorAttribute.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System; -using System.IO; -using System.Web; -using System.Web.Mvc; -using Core.StructureMap; -using Data.Entities; -using Data.Infrastructure; - -using Data.Interfaces; -using StructureMap; -using Utilities.Logging; - -namespace Web.ExceptionHandling -{ - public class MvcHandleErrorAttribute : HandleErrorAttribute - { - public override void OnException(ExceptionContext filterContext) - { - if (filterContext == null) - { - throw new ArgumentNullException("filterContext"); - } - if (filterContext.IsChildAction) - { - return; - } - - // If custom errors are disabled, we need to let the normal ASP.NET exception handler - // execute so that the user can see useful debugging information. - if (filterContext.ExceptionHandled || !filterContext.HttpContext.IsCustomErrorEnabled) - { - return; - } - - Exception exception = filterContext.Exception; - - if (!ExceptionType.IsInstanceOfType(exception)) - { - return; - } - - string controllerName = (string)filterContext.RouteData.Values["controller"]; - string actionName = (string)filterContext.RouteData.Values["action"]; - - var httpException = filterContext.Exception as HttpException; - int statusCode = 500; - var view = View; - if (httpException != null) - { - statusCode = httpException.GetHttpCode(); - var viewPath = String.Format("Views/Shared/{0}.cshtml", statusCode); - var explicitPath = Path.Combine(Utilities.Server.ServerPhysicalPath, viewPath); - if (File.Exists(explicitPath)) - { - view = statusCode.ToString(); - } - } - - Logger.GetLogger().Error("Critical internal error occured.", exception); - - HandleErrorInfo model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName); - filterContext.Result = new ViewResult - { - ViewName = view, - MasterName = Master, - ViewData = new ViewDataDictionary(model), - TempData = filterContext.Controller.TempData - }; - filterContext.ExceptionHandled = true; - filterContext.HttpContext.Response.Clear(); - filterContext.HttpContext.Response.StatusCode = statusCode; - - // Certain versions of IIS will sometimes use their own error page when - // they detect a server error. Setting this property indicates that we - // want it to try to render ASP.NET MVC's error page instead. - filterContext.HttpContext.Response.TrySkipIisCustomErrors = true; - - SaveUnhandledException(filterContext); - - - } - //Save unhandle exception to incident table - private void SaveUnhandledException(ExceptionContext filterContext) - { - using (var _uow = ContainerObjectFactory.Container.GetInstance()) - { - IncidentDO incidentDO = new IncidentDO(); - incidentDO.PrimaryCategory = "Error"; - if (filterContext.Exception.Message.Contains("Validation failed")) - incidentDO.SecondaryCategory = "ValidationException"; - else - incidentDO.SecondaryCategory = "ApplicationException"; - incidentDO.Data = filterContext.Exception.Message; - _uow.IncidentRepository.Add(incidentDO); - _uow.SaveChanges(); - } - - } - } -} \ No newline at end of file diff --git a/ExceptionHandlers/WebApiExceptionFilterAttribute.cs b/ExceptionHandlers/WebApiExceptionFilterAttribute.cs deleted file mode 100644 index 4deab71805..0000000000 --- a/ExceptionHandlers/WebApiExceptionFilterAttribute.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Net; -using System.Net.Http; -using System.Text; -using System.Web; -using System.Web.Http.Filters; -using Core.Exceptions; -using Core.Managers; -using Core.StructureMap; -using Data.Infrastructure; - -using Data.Interfaces.DataTransferObjects; -using Newtonsoft.Json; -using PluginBase; -using StructureMap; -using Utilities; - -namespace Web.ExceptionHandling -{ - /// - /// This exception filter handles any non-handled exception. Usually for such - /// exceptions we can provide no specific or useful instructions to user. - /// - public class WebApiExceptionFilterAttribute : ExceptionFilterAttribute - { - public override void OnException(HttpActionExecutedContext context) - { - ErrorDTO errorDto; - - var alertManager = ContainerObjectFactory.Container.GetInstance(); - var ex = context.Exception; - - alertManager.UnhandledErrorCaught( - String.Format("Unhandled exception has occurred.\r\nError message: {0}\r\nCall stack:\r\n{1}", - ex.Message, - ex.Source)); - - context.Response = new HttpResponseMessage(HttpStatusCode.InternalServerError); - - if (ex is AuthenticationExeception) - { - errorDto = ErrorDTO.AuthenticationError(); - } - else - { - errorDto = ErrorDTO.InternalError(); - } - - errorDto.Message = "Sorry, an unexpected error has occurred while serving your request. Please try again in a few minutes."; - - // if debugging enabled send back the details of exception as well - if (HttpContext.Current.IsDebuggingEnabled) - { - if (ex is PluginCodedException) - { - var pluginEx = (PluginCodedException)ex; - - errorDto.Details = new - { - errorCode = pluginEx.ErrorCode, - message = pluginEx.ErrorCode.GetEnumDescription() - }; - } - else - { - errorDto.Details = new {exception = context.Exception}; - } - } - - context.Response.Content = new StringContent(JsonConvert.SerializeObject(errorDto), Encoding.UTF8, "application/json"); - } - } -} \ No newline at end of file diff --git a/Fr8.sln b/Fr8.sln index 4ef78a5c9d..dea04084b9 100644 --- a/Fr8.sln +++ b/Fr8.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.25123.0 +VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{99D5A940-8674-4060-902B-381DF8B99D43}" ProjectSection(SolutionItems) = preProject @@ -10,1212 +10,894 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{99D5A9 .nuget\NuGet.targets = .nuget\NuGet.targets EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Terminals", "Terminals", "{9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BuildUtils", "BuildUtils", "{932981E0-0644-4BED-84A9-FEF0664F6296}" ProjectSection(SolutionItems) = preProject BuildUtils\Handle.exe = BuildUtils\Handle.exe BuildUtils\xcopy.exe = BuildUtils\xcopy.exe EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{95890593-84B1-4CF8-A31B-542B143B4C73}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Hub", "Hub", "{F848932E-7332-4B29-AB1E-9A794098501C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Services", "Services", "{43A55C9F-CC6B-42C7-BE5A-0FBE635A0C02}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SDK", "SDK", "{1B8F7B8D-8367-4B4E-BC79-002D26DF53D4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HubWeb", "HubWeb.csproj", "{F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Terminals", "Terminals", "{B3FD0936-ACF8-4F91-A5EF-0712D6567E6F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Data", "Data\Data.csproj", "{990241EA-6CF0-4026-B57C-A9031463C7C0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{D9827A77-B254-4962-B5DC-3D2C01C8044F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hub", "Hub\Hub.csproj", "{9891496C-8512-4708-925A-EE9D0F9199D4}" - ProjectSection(ProjectDependencies) = postProject - {990241EA-6CF0-4026-B57C-A9031463C7C0} = {990241EA-6CF0-4026-B57C-A9031463C7C0} - EndProjectSection +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{4FDBF40A-36B2-4EBE-98B0-434F2E177779}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAzure", "terminalAzure\terminalAzure.csproj", "{D019B112-55A8-4661-AFF5-329F998D9E28}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HealthMonitor.HubLauncher", "Common\Tests\HealthMonitor.HubLauncher\HealthMonitor.HubLauncher.csproj", "{47CA975F-1F5B-4C90-9DA1-A88C53E0760A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalDocuSign", "terminalDocuSign\terminalDocuSign.csproj", "{4E04FEB2-B452-4739-8336-EA2CEFB18D87}" - ProjectSection(ProjectDependencies) = postProject - {990241EA-6CF0-4026-B57C-A9031463C7C0} = {990241EA-6CF0-4026-B57C-A9031463C7C0} - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HealthMonitor", "Common\Tests\HealthMonitor\HealthMonitor.csproj", "{83231577-13A5-419F-8269-02AE59D8951A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalFr8Core", "terminalFr8Core\terminalFr8Core.csproj", "{AD226A7F-0641-4589-93EB-06E5EE7E767B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fr8.Testing", "Common\Tests\Fr8.Testing\Fr8.Testing.csproj", "{459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSlack", "terminalSlack\terminalSlack.csproj", "{990DB8CB-AAD6-42FE-940D-3A731DF56ABE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Data", "Hub\Data\Data.csproj", "{990241EA-6CF0-4026-B57C-A9031463C7C0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSalesforce", "terminalSalesforce\terminalSalesforce.csproj", "{85CB0215-96DF-4C38-A022-1BE6C952813B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hub", "Hub\Hub\Hub.csproj", "{9891496C-8512-4708-925A-EE9D0F9199D4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalExcel", "terminalExcel\terminalExcel.csproj", "{57373D06-6B82-4EC6-AF62-ED25FE170C61}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HubWeb", "Hub\HubWeb\HubWeb.csproj", "{F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalTwilio", "terminalTwilio\terminalTwilio.csproj", "{14404298-4182-4D43-8098-5A199ED2FCAA}" - ProjectSection(ProjectDependencies) = postProject - {990241EA-6CF0-4026-B57C-A9031463C7C0} = {990241EA-6CF0-4026-B57C-A9031463C7C0} - EndProjectSection +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{F40D465A-8FE2-4DEF-8587-34A0C3ACEA75}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalFr8CoreTests", "Tests\terminalFr8CoreTests\terminalFr8CoreTests.csproj", "{6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HubTests", "Hub\Tests\HubTests\HubTests.csproj", "{1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TerminalSqlUtilities", "TerminalSqlUtilities\TerminalSqlUtilities.csproj", "{FA105E66-8756-4F57-8230-2A52BFEBDDC6}" - ProjectSection(ProjectDependencies) = postProject - {990241EA-6CF0-4026-B57C-A9031463C7C0} = {990241EA-6CF0-4026-B57C-A9031463C7C0} - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fr8TerminalBase.NET", "SDK\Fr8TerminalBase.NET\Fr8TerminalBase.NET.csproj", "{BF96675E-6BAF-4AC9-B247-1551D62E8C44}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fr8Infrastructure.NET", "SDK\Fr8Infrastructure.NET\Fr8Infrastructure.NET.csproj", "{BBA91AF2-7636-41B6-87C4-C1575AE8B04B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Asana", "Asana", "{4E7316D4-035A-41FA-B070-7FCCE94E2D10}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Atlassian", "Atlassian", "{DFFAFECB-52FB-4FB4-97B1-09703D672669}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Azure", "Azure", "{B02DEFA7-9B3E-4F83-A4E0-C3C49C3818EC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Basecamp", "Basecamp", "{26F33C5D-13F3-44E6-8FC3-A67C8D4BBC78}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Box", "Box", "{64C3DC28-96BE-4C83-B62A-4AC394AC63F1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docusign", "Docusign", "{1341D9FE-1CCB-439C-AD50-DC84DFE815FA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dropbox", "Dropbox", "{3E904983-4408-42B7-8F5A-AC82B9F77240}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Excel", "Excel", "{6C9DA552-D09B-4009-9B3B-4E431972325E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Facebook", "Facebook", "{1D24F2B2-7F1A-40C3-B325-005FDB02E222}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Fr8Core", "Fr8Core", "{73C92DFB-1BA5-472F-9885-754AA3A6A77A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Google", "Google", "{A9022E15-C17D-4D86-A471-FF72B82098CC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Instagram", "Instagram", "{7B573E88-8710-4CE6-8BAE-361B97F05926}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Papertrail", "Papertrail", "{5D030BDE-4EB4-4F8F-B783-E5A378B9DD67}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "QuickBooks", "QuickBooks", "{3E374228-5084-4174-B919-0D9C85878A22}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Salesforce", "Salesforce", "{A13F8853-17D9-46CE-A179-65BAA8B4A969}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SendGrid", "SendGrid", "{180C5712-35E2-48CD-ACA1-8576260D2EFB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{3A2B8C1D-C46D-48B4-827C-7771AB0992BB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Slack", "Slack", "{A31279C2-23EC-425F-9B41-D27AC7781EDE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StatX", "StatX", "{69B33D93-8553-4EF4-9D48-6E2A29B640DF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Telegram", "Telegram", "{1E14D628-54AC-4576-ADE8-59CAE8472BE6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Twilio", "Twilio", "{BA6548DC-9289-40C4-9658-09BE25A800FF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Yammer", "Yammer", "{32B6E8D2-C447-4DD7-932C-5CEBD9F296B6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAsana", "Terminals\Asana\terminalAsana\terminalAsana.csproj", "{0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAsanaTests", "Terminals\Asana\terminalAsanaTests\terminalAsanaTests.csproj", "{3B0A3D34-D926-4356-BE31-809055FE835A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAtlassian", "Terminals\Atlassian\terminalAtlassian\terminalAtlassian.csproj", "{89D763ED-3EA6-4303-AB29-3239095A4B06}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalGoogle", "terminalGoogle\terminalGoogle.csproj", "{CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAtlassianTests", "Terminals\Atlassian\terminalAtlassianTests\terminalAtlassianTests.csproj", "{F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HubTests", "Tests\HubTests\HubTests.csproj", "{1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAzure", "Terminals\Azure\terminalAzure\terminalAzure.csproj", "{D019B112-55A8-4661-AFF5-329F998D9E28}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSendGrid", "terminalSendGrid\terminalSendGrid.csproj", "{1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAzureTests", "Terminals\Azure\terminalAzureTests\terminalAzureTests.csproj", "{36ED6F21-1A8F-4F07-A08A-A55639891E9B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalDropbox", "terminalDropbox\terminalDropbox.csproj", "{CFBA4468-222F-4255-8D94-809ACBF7AC47}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalBasecamp2", "Terminals\Basecamp\terminalBasecamp2\terminalBasecamp2.csproj", "{19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalDropboxTests", "Tests\terminalDropboxTests\terminalDropboxTests.csproj", "{42F21CE5-C8D1-4083-937B-951B92C2F93C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalBasecamp2Tests", "Terminals\Basecamp\terminalBasecamp2Tests\terminalBasecamp2Tests.csproj", "{3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalBaseTests", "Tests\terminalBaseTests\terminalBaseTests.csproj", "{40625AD3-D5D2-4CF0-8E3E-FD232A54A808}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalBox", "Terminals\Box\terminalBox\terminalBox.csproj", "{84800565-B464-471D-8F02-1A93311C3388}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalPapertrail", "terminalPapertrail\terminalPapertrail.csproj", "{74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalBoxTests", "Terminals\Box\terminalBoxTests\terminalBoxTests.csproj", "{1ABD6365-E04D-4971-8D0D-5364C896113F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalIntegrationTests", "Tests\terminalIntegrationTests\terminalIntegrationTests.csproj", "{579BA25F-1DF5-474A-8A3E-0447FF75711C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalDocuSign", "Terminals\Docusign\terminalDocuSign\terminalDocuSign.csproj", "{4E04FEB2-B452-4739-8336-EA2CEFB18D87}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HealthMonitor", "Tests\HealthMonitor\HealthMonitor.csproj", "{83231577-13A5-419F-8269-02AE59D8951A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalDocuSignTests", "Terminals\Docusign\terminalDocuSignTests\terminalDocuSignTests.csproj", "{A6E317FA-2EB0-4447-8ECD-6725F6B78435}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalDocuSignTests", "Tests\terminalDocuSignTests\terminalDocuSignTests.csproj", "{A6E317FA-2EB0-4447-8ECD-6725F6B78435}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalDropbox", "Terminals\Dropbox\terminalDropbox\terminalDropbox.csproj", "{CFBA4468-222F-4255-8D94-809ACBF7AC47}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalPapertrailTests", "Tests\terminalPapertrailTests\terminalPapertrailTests.csproj", "{8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalDropboxTests", "Terminals\Dropbox\terminalDropboxTests\terminalDropboxTests.csproj", "{42F21CE5-C8D1-4083-937B-951B92C2F93C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalExcelTests", "Tests\terminalExcelTests\terminalExcelTests.csproj", "{A854EB96-B28A-42FC-8209-3E5E9D6B208C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalExcel", "Terminals\Excel\terminalExcel\terminalExcel.csproj", "{57373D06-6B82-4EC6-AF62-ED25FE170C61}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalGoogleTests", "Tests\terminalGoogleTests\terminalGoogleTests.csproj", "{62219AA6-9276-4935-B934-F0F50ECEF6FB}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalExcelTests", "Terminals\Excel\terminalExcelTests\terminalExcelTests.csproj", "{A854EB96-B28A-42FC-8209-3E5E9D6B208C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSlackTests", "Tests\terminalSlackTests\terminalSlackTests.csproj", "{1246A6D6-FB9D-4564-8E86-A9F14A7AD177}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalFacebook", "Terminals\Facebook\terminalFacebook\terminalFacebook.csproj", "{C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAtlassian", "terminalAtlassian\terminalAtlassian.csproj", "{89D763ED-3EA6-4303-AB29-3239095A4B06}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalFacebookTests", "Terminals\Facebook\terminalFacebookTests\terminalFacebookTests.csproj", "{380C028E-2623-4207-B8AF-F21B92183ED8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAtlassianTests", "Tests\terminalAtlassianTests\terminalAtlassianTests.csproj", "{F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalFr8Core", "Terminals\Fr8Core\terminalFr8Core\terminalFr8Core.csproj", "{AD226A7F-0641-4589-93EB-06E5EE7E767B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSendGridTests", "Tests\terminalSendGridTests\terminalSendGridTests.csproj", "{EE3E1E99-175F-4507-96DA-421FCD0F6D9E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalFr8CoreTests", "Terminals\Fr8Core\terminalFr8CoreTests\terminalFr8CoreTests.csproj", "{6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAzureTests", "Tests\terminalAzureTests\terminalAzureTests.csproj", "{36ED6F21-1A8F-4F07-A08A-A55639891E9B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalGoogle", "Terminals\Google\terminalGoogle\terminalGoogle.csproj", "{CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalTwilioTests", "Tests\terminalTwilioTests\terminalTwilioTests.csproj", "{6B807AB1-F549-49CB-9F52-52BC33D23443}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalGoogleTests", "Terminals\Google\terminalGoogleTests\terminalGoogleTests.csproj", "{62219AA6-9276-4935-B934-F0F50ECEF6FB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalQuickBooks", "terminalQuickBooks\terminalQuickBooks.csproj", "{3D4116CE-63DD-406C-8235-0115A8FA90F1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalInstagram", "Terminals\Instagram\terminalInstagram\terminalInstagram.csproj", "{26C15DC0-73CA-46E3-AEBA-17353C59C2F3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalQuickBooksTests", "Tests\terminalQuickBooksTests\terminalQuickBooksTests.csproj", "{6367B304-3E18-4DA6-A7E7-0893DA806953}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalInstagramTests", "Terminals\Instagram\terminalInstagramTests\terminalInstagramTests.csproj", "{D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSalesforceTests", "Tests\terminalSalesforceTests\terminalSalesforceTests.csproj", "{FDA06158-A81E-46B4-9F25-5AB76DFD400A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalPapertrail", "Terminals\Papertrail\terminalPapertrail\terminalPapertrail.csproj", "{74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalYammer", "terminalYammer\terminalYammer.csproj", "{E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalPapertrailTests", "Terminals\Papertrail\terminalPapertrailTests\terminalPapertrailTests.csproj", "{8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalYammerTests", "Tests\terminalYammerTests\terminalYammerTests.csproj", "{D2638CB3-33D6-443F-BC87-E20260D3C9EF}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalQuickBooks", "Terminals\QuickBooks\terminalQuickBooks\terminalQuickBooks.csproj", "{3D4116CE-63DD-406C-8235-0115A8FA90F1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HealthMonitor.HubLauncher", "Tests\HealthMonitor.HubLauncher\HealthMonitor.HubLauncher.csproj", "{47CA975F-1F5B-4C90-9DA1-A88C53E0760A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalQuickBooksTests", "Terminals\QuickBooks\terminalQuickBooksTests\terminalQuickBooksTests.csproj", "{6367B304-3E18-4DA6-A7E7-0893DA806953}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalUtilities", "terminalUtilities\terminalUtilities.csproj", "{E46B602A-287B-450F-B455-5EED20C93EB7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSalesforce", "Terminals\Salesforce\terminalSalesforce\terminalSalesforce.csproj", "{85CB0215-96DF-4C38-A022-1BE6C952813B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalTest", "Tests\terminalTest\terminalTest.csproj", "{267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSalesforceTests", "Terminals\Salesforce\terminalSalesforceTests\terminalSalesforceTests.csproj", "{FDA06158-A81E-46B4-9F25-5AB76DFD400A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalBox", "terminalBox\terminalBox.csproj", "{84800565-B464-471D-8F02-1A93311C3388}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSendGrid", "Terminals\SendGrid\terminalSendGrid\terminalSendGrid.csproj", "{1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalBoxTests", "Tests\terminalBoxTests\terminalBoxTests.csproj", "{1ABD6365-E04D-4971-8D0D-5364C896113F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSendGridTests", "Terminals\SendGrid\terminalSendGridTests\terminalSendGridTests.csproj", "{EE3E1E99-175F-4507-96DA-421FCD0F6D9E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fr8Infrastructure.NET", "Fr8Infrastructure.NET\Fr8Infrastructure.NET.csproj", "{BBA91AF2-7636-41B6-87C4-C1575AE8B04B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TerminalSqlUtilities", "Terminals\Shared\TerminalSqlUtilities\TerminalSqlUtilities.csproj", "{FA105E66-8756-4F57-8230-2A52BFEBDDC6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fr8TerminalBase.NET", "Fr8TerminalBase.NET\Fr8TerminalBase.NET.csproj", "{BF96675E-6BAF-4AC9-B247-1551D62E8C44}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalUtilities", "Terminals\Shared\terminalUtilities\terminalUtilities.csproj", "{E46B602A-287B-450F-B455-5EED20C93EB7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fr8.Testing.Integration.Tools", "Tests\Fr8.Testing.Integration.Tools\Fr8.Testing.Integration.Tools.csproj", "{4F56C030-D16B-4A51-82D0-3C23A47AB703}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSlack", "Terminals\Slack\terminalSlack\terminalSlack.csproj", "{990DB8CB-AAD6-42FE-940D-3A731DF56ABE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fr8.Testing", "Tests\Fr8.Testing\Fr8.Testing.csproj", "{459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalSlackTests", "Terminals\Slack\terminalSlackTests\terminalSlackTests.csproj", "{1246A6D6-FB9D-4564-8E86-A9F14A7AD177}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalInstagram", "terminalInstagram\terminalInstagram.csproj", "{26C15DC0-73CA-46E3-AEBA-17353C59C2F3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalStatX", "Terminals\StatX\terminalStatX\terminalStatX.csproj", "{5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalStatX", "terminalStatX\terminalStatX.csproj", "{5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalStatXTests", "Terminals\StatX\terminalStatXTests\terminalStatXTests.csproj", "{E0E04964-F77E-435F-8B90-F4338C30DDAD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalFacebook", "terminalFacebook\terminalFacebook.csproj", "{C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalTelegram", "Terminals\Telegram\terminalTelegram\terminalTelegram.csproj", "{FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalBasecamp2Tests", "Tests\terminalBasecamp2Tests\terminalBasecamp2Tests.csproj", "{3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalTwilio", "Terminals\Twilio\terminalTwilio\terminalTwilio.csproj", "{14404298-4182-4D43-8098-5A199ED2FCAA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalStatXTests", "Tests\terminalStatXTests\terminalStatXTests.csproj", "{E0E04964-F77E-435F-8B90-F4338C30DDAD}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalTwilioTests", "Terminals\Twilio\terminalTwilioTests\terminalTwilioTests.csproj", "{6B807AB1-F549-49CB-9F52-52BC33D23443}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalTelegram", "terminalTelegram\terminalTelegram.csproj", "{FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalYammer", "Terminals\Yammer\terminalYammer\terminalYammer.csproj", "{E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalBasecamp2", "terminalBasecamp2\terminalBasecamp2.csproj", "{19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalYammerTests", "Terminals\Yammer\terminalYammerTests\terminalYammerTests.csproj", "{D2638CB3-33D6-443F-BC87-E20260D3C9EF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalInstagramTests", "Tests\terminalInstagramTests\terminalInstagramTests.csproj", "{D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BuildDeployUtils", "BuildDeployUtils", "{31DC7E45-FE4F-4CCD-9234-9FBD42F412C5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalFacebookTests", "Tests\terminalFacebookTests\terminalFacebookTests.csproj", "{380C028E-2623-4207-B8AF-F21B92183ED8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_PowerShellScripts", "_PowerShellScripts", "{30EF2DF0-6F6A-4D9C-ADF1-11985030849E}" + ProjectSection(SolutionItems) = preProject + BuildDeployUtils\_PowerShellScripts\Add-BuildServer.ps1 = BuildDeployUtils\_PowerShellScripts\Add-BuildServer.ps1 + BuildDeployUtils\_PowerShellScripts\Add-Repo.ps1 = BuildDeployUtils\_PowerShellScripts\Add-Repo.ps1 + BuildDeployUtils\_PowerShellScripts\Check-Confirmation.ps1 = BuildDeployUtils\_PowerShellScripts\Check-Confirmation.ps1 + BuildDeployUtils\_PowerShellScripts\CheckWebSettings.ps1 = BuildDeployUtils\_PowerShellScripts\CheckWebSettings.ps1 + BuildDeployUtils\_PowerShellScripts\CleanUpAfterTests.ps1 = BuildDeployUtils\_PowerShellScripts\CleanUpAfterTests.ps1 + BuildDeployUtils\_PowerShellScripts\ClearDbBeforeTests.ps1 = BuildDeployUtils\_PowerShellScripts\ClearDbBeforeTests.ps1 + BuildDeployUtils\_PowerShellScripts\CloneDatabase.ps1 = BuildDeployUtils\_PowerShellScripts\CloneDatabase.ps1 + BuildDeployUtils\_PowerShellScripts\Combine-Sources.ps1 = BuildDeployUtils\_PowerShellScripts\Combine-Sources.ps1 + BuildDeployUtils\_PowerShellScripts\Copy-ImagesBetweenAccount.ps1 = BuildDeployUtils\_PowerShellScripts\Copy-ImagesBetweenAccount.ps1 + BuildDeployUtils\_PowerShellScripts\CopyAppInsightsConfigs.ps1 = BuildDeployUtils\_PowerShellScripts\CopyAppInsightsConfigs.ps1 + BuildDeployUtils\_PowerShellScripts\Create-SDKNuget.ps1 = BuildDeployUtils\_PowerShellScripts\Create-SDKNuget.ps1 + BuildDeployUtils\_PowerShellScripts\Create-VersionFile.ps1 = BuildDeployUtils\_PowerShellScripts\Create-VersionFile.ps1 + BuildDeployUtils\_PowerShellScripts\DeleteDatabase.ps1 = BuildDeployUtils\_PowerShellScripts\DeleteDatabase.ps1 + BuildDeployUtils\_PowerShellScripts\DeleteHostedDatabase.ps1 = BuildDeployUtils\_PowerShellScripts\DeleteHostedDatabase.ps1 + BuildDeployUtils\_PowerShellScripts\Deploy-HMAsWebJob.ps1 = BuildDeployUtils\_PowerShellScripts\Deploy-HMAsWebJob.ps1 + BuildDeployUtils\_PowerShellScripts\DeployFr8Locally.ps1 = BuildDeployUtils\_PowerShellScripts\DeployFr8Locally.ps1 + BuildDeployUtils\_PowerShellScripts\DEV-settings.job = BuildDeployUtils\_PowerShellScripts\DEV-settings.job + BuildDeployUtils\_PowerShellScripts\Filename.json = BuildDeployUtils\_PowerShellScripts\Filename.json + BuildDeployUtils\_PowerShellScripts\HM-job-run.cmd = BuildDeployUtils\_PowerShellScripts\HM-job-run.cmd + BuildDeployUtils\_PowerShellScripts\HM-job-settings.job = BuildDeployUtils\_PowerShellScripts\HM-job-settings.job + BuildDeployUtils\_PowerShellScripts\MergePRSourcesIntoDev.ps1 = BuildDeployUtils\_PowerShellScripts\MergePRSourcesIntoDev.ps1 + BuildDeployUtils\_PowerShellScripts\Reboot-CloudService.ps1 = BuildDeployUtils\_PowerShellScripts\Reboot-CloudService.ps1 + BuildDeployUtils\_PowerShellScripts\Remove-HMAsWebJob.ps1 = BuildDeployUtils\_PowerShellScripts\Remove-HMAsWebJob.ps1 + BuildDeployUtils\_PowerShellScripts\RestoreDatabaseFromBackup.ps1 = BuildDeployUtils\_PowerShellScripts\RestoreDatabaseFromBackup.ps1 + BuildDeployUtils\_PowerShellScripts\Run-DBMigration.ps1 = BuildDeployUtils\_PowerShellScripts\Run-DBMigration.ps1 + BuildDeployUtils\_PowerShellScripts\Run-IntegrationTests.ps1 = BuildDeployUtils\_PowerShellScripts\Run-IntegrationTests.ps1 + BuildDeployUtils\_PowerShellScripts\Run-ProtractorTests.ps1 = BuildDeployUtils\_PowerShellScripts\Run-ProtractorTests.ps1 + BuildDeployUtils\_PowerShellScripts\Run-SQL.ps1 = BuildDeployUtils\_PowerShellScripts\Run-SQL.ps1 + BuildDeployUtils\_PowerShellScripts\RunFrontEndTests-VSO.ps1 = BuildDeployUtils\_PowerShellScripts\RunFrontEndTests-VSO.ps1 + BuildDeployUtils\_PowerShellScripts\Set-AzureSQLService.ps1 = BuildDeployUtils\_PowerShellScripts\Set-AzureSQLService.ps1 + BuildDeployUtils\_PowerShellScripts\Set-Config.ps1 = BuildDeployUtils\_PowerShellScripts\Set-Config.ps1 + BuildDeployUtils\_PowerShellScripts\Set-CS.ps1 = BuildDeployUtils\_PowerShellScripts\Set-CS.ps1 + BuildDeployUtils\_PowerShellScripts\Set-CsConfig.ps1 = BuildDeployUtils\_PowerShellScripts\Set-CsConfig.ps1 + BuildDeployUtils\_PowerShellScripts\Set-Endpoints.ps1 = BuildDeployUtils\_PowerShellScripts\Set-Endpoints.ps1 + BuildDeployUtils\_PowerShellScripts\Set-EndpointsDev.ps1 = BuildDeployUtils\_PowerShellScripts\Set-EndpointsDev.ps1 + BuildDeployUtils\_PowerShellScripts\Set-EndpointsStaging.ps1 = BuildDeployUtils\_PowerShellScripts\Set-EndpointsStaging.ps1 + BuildDeployUtils\_PowerShellScripts\Set-GitHubBuildStatus.ps1 = BuildDeployUtils\_PowerShellScripts\Set-GitHubBuildStatus.ps1 + BuildDeployUtils\_PowerShellScripts\Set-WebsiteAppSettings.ps1 = BuildDeployUtils\_PowerShellScripts\Set-WebsiteAppSettings.ps1 + BuildDeployUtils\_PowerShellScripts\SetCloudServiceSize.ps1 = BuildDeployUtils\_PowerShellScripts\SetCloudServiceSize.ps1 + BuildDeployUtils\_PowerShellScripts\Start-Sleep.ps1 = BuildDeployUtils\_PowerShellScripts\Start-Sleep.ps1 + BuildDeployUtils\_PowerShellScripts\Start-StagingWebsite.ps1 = BuildDeployUtils\_PowerShellScripts\Start-StagingWebsite.ps1 + BuildDeployUtils\_PowerShellScripts\Stop-StagingWebsite.ps1 = BuildDeployUtils\_PowerShellScripts\Stop-StagingWebsite.ps1 + BuildDeployUtils\_PowerShellScripts\Swap-CloudService.ps1 = BuildDeployUtils\_PowerShellScripts\Swap-CloudService.ps1 + BuildDeployUtils\_PowerShellScripts\Update-HostnameInTerminalRegistration.ps1 = BuildDeployUtils\_PowerShellScripts\Update-HostnameInTerminalRegistration.ps1 + BuildDeployUtils\_PowerShellScripts\Update-HostnameInTerminals.ps1 = BuildDeployUtils\_PowerShellScripts\Update-HostnameInTerminals.ps1 + BuildDeployUtils\_PowerShellScripts\Upload-File.ps1 = BuildDeployUtils\_PowerShellScripts\Upload-File.ps1 + BuildDeployUtils\_PowerShellScripts\Wait-Database.ps1 = BuildDeployUtils\_PowerShellScripts\Wait-Database.ps1 + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SQL Scripts", "SQL Scripts", "{137776F2-F3F6-463C-9FF4-04F08F8789DF}" + ProjectSection(SolutionItems) = preProject + BuildDeployUtils\SQL scripts\Clean up Hub registration in MT.sql = BuildDeployUtils\SQL scripts\Clean up Hub registration in MT.sql + BuildDeployUtils\SQL scripts\Cleanup HangFire Jobs.sql = BuildDeployUtils\SQL scripts\Cleanup HangFire Jobs.sql + BuildDeployUtils\SQL scripts\Count HangFire Jobs.sql = BuildDeployUtils\SQL scripts\Count HangFire Jobs.sql + BuildDeployUtils\SQL scripts\Count Stats.sql = BuildDeployUtils\SQL scripts\Count Stats.sql + BuildDeployUtils\SQL scripts\Deactivate All Integration Testing Plans.sql = BuildDeployUtils\SQL scripts\Deactivate All Integration Testing Plans.sql + BuildDeployUtils\SQL scripts\Delete Duplicated Localhost Endpoints.sql = BuildDeployUtils\SQL scripts\Delete Duplicated Localhost Endpoints.sql + BuildDeployUtils\SQL scripts\Delete HangFire tables.sql = BuildDeployUtils\SQL scripts\Delete HangFire tables.sql + BuildDeployUtils\SQL scripts\Delete Terminal Registration.sql = BuildDeployUtils\SQL scripts\Delete Terminal Registration.sql + BuildDeployUtils\SQL scripts\DeleteOldLogs.sql = BuildDeployUtils\SQL scripts\DeleteOldLogs.sql + BuildDeployUtils\SQL scripts\Fix Terminal Endpoints.sql = BuildDeployUtils\SQL scripts\Fix Terminal Endpoints.sql + BuildDeployUtils\SQL scripts\Restore Terminal Information.sql = BuildDeployUtils\SQL scripts\Restore Terminal Information.sql + BuildDeployUtils\SQL scripts\Show Incidents.sql = BuildDeployUtils\SQL scripts\Show Incidents.sql + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{722D6B74-78CB-4995-84E3-B0705C7DDA96}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAsana", "terminalAsana\terminalAsana.csproj", "{0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalBaseTests", "Terminals\Shared\Tests\terminalBaseTests\terminalBaseTests.csproj", "{40625AD3-D5D2-4CF0-8E3E-FD232A54A808}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalAsanaTests", "Tests\terminalAsanaTests\terminalAsanaTests.csproj", "{3B0A3D34-D926-4356-BE31-809055FE835A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "terminalIntegrationTests", "Terminals\Shared\Tests\terminalIntegrationTests\terminalIntegrationTests.csproj", "{579BA25F-1DF5-474A-8A3E-0447FF75711C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PlanDirectoryTests", "Tests\PlanDirectoryTests\PlanDirectoryTests.csproj", "{3F32543F-7A89-4AE3-A607-A58C4B52B841}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fr8.Testing.Integration.Tools", "Terminals\Shared\Tests\Fr8.Testing.Integration.Tools\Fr8.Testing.Integration.Tools.csproj", "{4F56C030-D16B-4A51-82D0-3C23A47AB703}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution alexlocal|Any CPU = alexlocal|Any CPU - alexlocal|x86 = alexlocal|x86 Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 Demo|Any CPU = Demo|Any CPU - Demo|x86 = Demo|x86 Dev|Any CPU = Dev|Any CPU - Dev|x86 = Dev|x86 Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.alexlocal|Any CPU.ActiveCfg = Debug|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.alexlocal|Any CPU.Build.0 = Debug|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.alexlocal|x86.ActiveCfg = Release|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Debug|x86.ActiveCfg = Debug|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Demo|Any CPU.Build.0 = Demo|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Demo|x86.ActiveCfg = Dev|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Dev|Any CPU.Build.0 = Dev|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Dev|x86.ActiveCfg = Dev|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Release|Any CPU.Build.0 = Release|Any CPU - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Release|x86.ActiveCfg = Release|Any CPU - {990241EA-6CF0-4026-B57C-A9031463C7C0}.alexlocal|Any CPU.ActiveCfg = Debug|Any CPU - {990241EA-6CF0-4026-B57C-A9031463C7C0}.alexlocal|Any CPU.Build.0 = Debug|Any CPU - {990241EA-6CF0-4026-B57C-A9031463C7C0}.alexlocal|x86.ActiveCfg = Release|Any CPU + {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Demo|Any CPU.Build.0 = Demo|Any CPU + {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Dev|Any CPU.Build.0 = Dev|Any CPU + {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Release|Any CPU.Build.0 = Release|Any CPU + {83231577-13A5-419F-8269-02AE59D8951A}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {83231577-13A5-419F-8269-02AE59D8951A}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {83231577-13A5-419F-8269-02AE59D8951A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83231577-13A5-419F-8269-02AE59D8951A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83231577-13A5-419F-8269-02AE59D8951A}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {83231577-13A5-419F-8269-02AE59D8951A}.Demo|Any CPU.Build.0 = Demo|Any CPU + {83231577-13A5-419F-8269-02AE59D8951A}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {83231577-13A5-419F-8269-02AE59D8951A}.Dev|Any CPU.Build.0 = Dev|Any CPU + {83231577-13A5-419F-8269-02AE59D8951A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83231577-13A5-419F-8269-02AE59D8951A}.Release|Any CPU.Build.0 = Release|Any CPU + {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Demo|Any CPU.Build.0 = Demo|Any CPU + {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Dev|Any CPU.Build.0 = Dev|Any CPU + {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Release|Any CPU.Build.0 = Release|Any CPU + {990241EA-6CF0-4026-B57C-A9031463C7C0}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {990241EA-6CF0-4026-B57C-A9031463C7C0}.alexlocal|Any CPU.Build.0 = Demo|Any CPU {990241EA-6CF0-4026-B57C-A9031463C7C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {990241EA-6CF0-4026-B57C-A9031463C7C0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {990241EA-6CF0-4026-B57C-A9031463C7C0}.Debug|x86.ActiveCfg = Debug|Any CPU {990241EA-6CF0-4026-B57C-A9031463C7C0}.Demo|Any CPU.ActiveCfg = Demo|Any CPU {990241EA-6CF0-4026-B57C-A9031463C7C0}.Demo|Any CPU.Build.0 = Demo|Any CPU - {990241EA-6CF0-4026-B57C-A9031463C7C0}.Demo|x86.ActiveCfg = Debug|Any CPU {990241EA-6CF0-4026-B57C-A9031463C7C0}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {990241EA-6CF0-4026-B57C-A9031463C7C0}.Dev|Any CPU.Build.0 = Dev|Any CPU - {990241EA-6CF0-4026-B57C-A9031463C7C0}.Dev|x86.ActiveCfg = Debug|Any CPU {990241EA-6CF0-4026-B57C-A9031463C7C0}.Release|Any CPU.ActiveCfg = Release|Any CPU {990241EA-6CF0-4026-B57C-A9031463C7C0}.Release|Any CPU.Build.0 = Release|Any CPU - {990241EA-6CF0-4026-B57C-A9031463C7C0}.Release|x86.ActiveCfg = Release|Any CPU - {9891496C-8512-4708-925A-EE9D0F9199D4}.alexlocal|Any CPU.ActiveCfg = Debug|Any CPU - {9891496C-8512-4708-925A-EE9D0F9199D4}.alexlocal|Any CPU.Build.0 = Debug|Any CPU - {9891496C-8512-4708-925A-EE9D0F9199D4}.alexlocal|x86.ActiveCfg = Release|Any CPU + {9891496C-8512-4708-925A-EE9D0F9199D4}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {9891496C-8512-4708-925A-EE9D0F9199D4}.alexlocal|Any CPU.Build.0 = Demo|Any CPU {9891496C-8512-4708-925A-EE9D0F9199D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9891496C-8512-4708-925A-EE9D0F9199D4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9891496C-8512-4708-925A-EE9D0F9199D4}.Debug|x86.ActiveCfg = Debug|Any CPU {9891496C-8512-4708-925A-EE9D0F9199D4}.Demo|Any CPU.ActiveCfg = Demo|Any CPU {9891496C-8512-4708-925A-EE9D0F9199D4}.Demo|Any CPU.Build.0 = Demo|Any CPU - {9891496C-8512-4708-925A-EE9D0F9199D4}.Demo|x86.ActiveCfg = Dev|Any CPU {9891496C-8512-4708-925A-EE9D0F9199D4}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {9891496C-8512-4708-925A-EE9D0F9199D4}.Dev|Any CPU.Build.0 = Dev|Any CPU - {9891496C-8512-4708-925A-EE9D0F9199D4}.Dev|x86.ActiveCfg = Dev|Any CPU {9891496C-8512-4708-925A-EE9D0F9199D4}.Release|Any CPU.ActiveCfg = Release|Any CPU {9891496C-8512-4708-925A-EE9D0F9199D4}.Release|Any CPU.Build.0 = Release|Any CPU - {9891496C-8512-4708-925A-EE9D0F9199D4}.Release|x86.ActiveCfg = Release|Any CPU - {D019B112-55A8-4661-AFF5-329F998D9E28}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {D019B112-55A8-4661-AFF5-329F998D9E28}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {D019B112-55A8-4661-AFF5-329F998D9E28}.alexlocal|x86.ActiveCfg = Release|Any CPU + {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.alexlocal|Any CPU.ActiveCfg = alexlocal|Any CPU + {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.alexlocal|Any CPU.Build.0 = alexlocal|Any CPU + {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Demo|Any CPU.Build.0 = Demo|Any CPU + {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Dev|Any CPU.Build.0 = Dev|Any CPU + {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE}.Release|Any CPU.Build.0 = Release|Any CPU + {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Demo|Any CPU.Build.0 = Demo|Any CPU + {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Dev|Any CPU.Build.0 = Dev|Any CPU + {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Release|Any CPU.Build.0 = Release|Any CPU + {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU + {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.alexlocal|Any CPU.Build.0 = Dev|Any CPU + {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Demo|Any CPU.ActiveCfg = Dev|Any CPU + {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Demo|Any CPU.Build.0 = Dev|Any CPU + {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Dev|Any CPU.Build.0 = Dev|Any CPU + {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Release|Any CPU.Build.0 = Release|Any CPU + {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU + {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.alexlocal|Any CPU.Build.0 = Dev|Any CPU + {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Demo|Any CPU.ActiveCfg = Dev|Any CPU + {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Demo|Any CPU.Build.0 = Dev|Any CPU + {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Dev|Any CPU.Build.0 = Dev|Any CPU + {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Release|Any CPU.Build.0 = Release|Any CPU + {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Demo|Any CPU.Build.0 = Demo|Any CPU + {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Dev|Any CPU.Build.0 = Dev|Any CPU + {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Release|Any CPU.Build.0 = Release|Any CPU + {3B0A3D34-D926-4356-BE31-809055FE835A}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU + {3B0A3D34-D926-4356-BE31-809055FE835A}.alexlocal|Any CPU.Build.0 = Release|Any CPU + {3B0A3D34-D926-4356-BE31-809055FE835A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B0A3D34-D926-4356-BE31-809055FE835A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B0A3D34-D926-4356-BE31-809055FE835A}.Demo|Any CPU.ActiveCfg = Debug|Any CPU + {3B0A3D34-D926-4356-BE31-809055FE835A}.Demo|Any CPU.Build.0 = Debug|Any CPU + {3B0A3D34-D926-4356-BE31-809055FE835A}.Dev|Any CPU.ActiveCfg = Debug|Any CPU + {3B0A3D34-D926-4356-BE31-809055FE835A}.Dev|Any CPU.Build.0 = Debug|Any CPU + {3B0A3D34-D926-4356-BE31-809055FE835A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B0A3D34-D926-4356-BE31-809055FE835A}.Release|Any CPU.Build.0 = Release|Any CPU + {89D763ED-3EA6-4303-AB29-3239095A4B06}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {89D763ED-3EA6-4303-AB29-3239095A4B06}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {89D763ED-3EA6-4303-AB29-3239095A4B06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {89D763ED-3EA6-4303-AB29-3239095A4B06}.Debug|Any CPU.Build.0 = Debug|Any CPU + {89D763ED-3EA6-4303-AB29-3239095A4B06}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {89D763ED-3EA6-4303-AB29-3239095A4B06}.Demo|Any CPU.Build.0 = Demo|Any CPU + {89D763ED-3EA6-4303-AB29-3239095A4B06}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {89D763ED-3EA6-4303-AB29-3239095A4B06}.Dev|Any CPU.Build.0 = Dev|Any CPU + {89D763ED-3EA6-4303-AB29-3239095A4B06}.Release|Any CPU.ActiveCfg = Release|Any CPU + {89D763ED-3EA6-4303-AB29-3239095A4B06}.Release|Any CPU.Build.0 = Release|Any CPU + {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Demo|Any CPU.Build.0 = Demo|Any CPU + {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Dev|Any CPU.Build.0 = Dev|Any CPU + {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Release|Any CPU.Build.0 = Release|Any CPU + {D019B112-55A8-4661-AFF5-329F998D9E28}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {D019B112-55A8-4661-AFF5-329F998D9E28}.alexlocal|Any CPU.Build.0 = Demo|Any CPU {D019B112-55A8-4661-AFF5-329F998D9E28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D019B112-55A8-4661-AFF5-329F998D9E28}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D019B112-55A8-4661-AFF5-329F998D9E28}.Debug|x86.ActiveCfg = Debug|Any CPU {D019B112-55A8-4661-AFF5-329F998D9E28}.Demo|Any CPU.ActiveCfg = Demo|Any CPU {D019B112-55A8-4661-AFF5-329F998D9E28}.Demo|Any CPU.Build.0 = Demo|Any CPU - {D019B112-55A8-4661-AFF5-329F998D9E28}.Demo|x86.ActiveCfg = Dev|Any CPU - {D019B112-55A8-4661-AFF5-329F998D9E28}.Demo|x86.Build.0 = Dev|Any CPU {D019B112-55A8-4661-AFF5-329F998D9E28}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {D019B112-55A8-4661-AFF5-329F998D9E28}.Dev|Any CPU.Build.0 = Dev|Any CPU - {D019B112-55A8-4661-AFF5-329F998D9E28}.Dev|x86.ActiveCfg = Dev|Any CPU - {D019B112-55A8-4661-AFF5-329F998D9E28}.Dev|x86.Build.0 = Dev|Any CPU {D019B112-55A8-4661-AFF5-329F998D9E28}.Release|Any CPU.ActiveCfg = Release|Any CPU {D019B112-55A8-4661-AFF5-329F998D9E28}.Release|Any CPU.Build.0 = Release|Any CPU - {D019B112-55A8-4661-AFF5-329F998D9E28}.Release|x86.ActiveCfg = Release|Any CPU - {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.alexlocal|x86.ActiveCfg = Release|Any CPU + {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Demo|Any CPU.Build.0 = Demo|Any CPU + {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Dev|Any CPU.Build.0 = Dev|Any CPU + {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Release|Any CPU.Build.0 = Release|Any CPU + {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Demo|Any CPU.Build.0 = Demo|Any CPU + {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Dev|Any CPU.Build.0 = Dev|Any CPU + {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Release|Any CPU.Build.0 = Release|Any CPU + {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Demo|Any CPU.Build.0 = Demo|Any CPU + {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Dev|Any CPU.Build.0 = Dev|Any CPU + {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Release|Any CPU.Build.0 = Release|Any CPU + {84800565-B464-471D-8F02-1A93311C3388}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU + {84800565-B464-471D-8F02-1A93311C3388}.alexlocal|Any CPU.Build.0 = Dev|Any CPU + {84800565-B464-471D-8F02-1A93311C3388}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84800565-B464-471D-8F02-1A93311C3388}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84800565-B464-471D-8F02-1A93311C3388}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {84800565-B464-471D-8F02-1A93311C3388}.Demo|Any CPU.Build.0 = Demo|Any CPU + {84800565-B464-471D-8F02-1A93311C3388}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {84800565-B464-471D-8F02-1A93311C3388}.Dev|Any CPU.Build.0 = Dev|Any CPU + {84800565-B464-471D-8F02-1A93311C3388}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84800565-B464-471D-8F02-1A93311C3388}.Release|Any CPU.Build.0 = Release|Any CPU + {1ABD6365-E04D-4971-8D0D-5364C896113F}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU + {1ABD6365-E04D-4971-8D0D-5364C896113F}.alexlocal|Any CPU.Build.0 = Dev|Any CPU + {1ABD6365-E04D-4971-8D0D-5364C896113F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1ABD6365-E04D-4971-8D0D-5364C896113F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1ABD6365-E04D-4971-8D0D-5364C896113F}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {1ABD6365-E04D-4971-8D0D-5364C896113F}.Demo|Any CPU.Build.0 = Demo|Any CPU + {1ABD6365-E04D-4971-8D0D-5364C896113F}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {1ABD6365-E04D-4971-8D0D-5364C896113F}.Dev|Any CPU.Build.0 = Dev|Any CPU + {1ABD6365-E04D-4971-8D0D-5364C896113F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1ABD6365-E04D-4971-8D0D-5364C896113F}.Release|Any CPU.Build.0 = Release|Any CPU + {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.alexlocal|Any CPU.Build.0 = Demo|Any CPU {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Debug|x86.ActiveCfg = Debug|Any CPU {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Demo|Any CPU.ActiveCfg = Demo|Any CPU {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Demo|Any CPU.Build.0 = Demo|Any CPU - {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Demo|x86.ActiveCfg = Debug|Any CPU - {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Demo|x86.Build.0 = Debug|Any CPU {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Dev|Any CPU.Build.0 = Dev|Any CPU - {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Dev|x86.ActiveCfg = Debug|Any CPU - {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Dev|x86.Build.0 = Debug|Any CPU {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Release|Any CPU.ActiveCfg = Release|Any CPU {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Release|Any CPU.Build.0 = Release|Any CPU - {4E04FEB2-B452-4739-8336-EA2CEFB18D87}.Release|x86.ActiveCfg = Release|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.alexlocal|x86.ActiveCfg = Release|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Debug|x86.ActiveCfg = Debug|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Demo|Any CPU.Build.0 = Demo|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Demo|x86.ActiveCfg = Debug|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Demo|x86.Build.0 = Debug|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Dev|Any CPU.Build.0 = Dev|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Dev|x86.ActiveCfg = Debug|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Dev|x86.Build.0 = Debug|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Release|Any CPU.Build.0 = Release|Any CPU - {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Release|x86.ActiveCfg = Release|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.alexlocal|x86.ActiveCfg = Release|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Debug|x86.ActiveCfg = Debug|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Demo|Any CPU.Build.0 = Demo|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Demo|x86.ActiveCfg = Dev|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Demo|x86.Build.0 = Dev|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Dev|Any CPU.Build.0 = Dev|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Dev|x86.ActiveCfg = Dev|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Dev|x86.Build.0 = Dev|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Release|Any CPU.Build.0 = Release|Any CPU - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Release|x86.ActiveCfg = Release|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.alexlocal|x86.ActiveCfg = Release|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Debug|x86.ActiveCfg = Debug|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Demo|Any CPU.Build.0 = Demo|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Demo|x86.ActiveCfg = Dev|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Demo|x86.Build.0 = Dev|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Dev|Any CPU.Build.0 = Dev|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Dev|x86.ActiveCfg = Dev|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Dev|x86.Build.0 = Dev|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Release|Any CPU.Build.0 = Release|Any CPU - {85CB0215-96DF-4C38-A022-1BE6C952813B}.Release|x86.ActiveCfg = Release|Any CPU - {57373D06-6B82-4EC6-AF62-ED25FE170C61}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {57373D06-6B82-4EC6-AF62-ED25FE170C61}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {57373D06-6B82-4EC6-AF62-ED25FE170C61}.alexlocal|x86.ActiveCfg = Release|Any CPU + {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Demo|Any CPU.Build.0 = Demo|Any CPU + {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Dev|Any CPU.Build.0 = Dev|Any CPU + {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Release|Any CPU.Build.0 = Release|Any CPU + {CFBA4468-222F-4255-8D94-809ACBF7AC47}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {CFBA4468-222F-4255-8D94-809ACBF7AC47}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Demo|Any CPU.Build.0 = Demo|Any CPU + {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Dev|Any CPU.Build.0 = Dev|Any CPU + {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Release|Any CPU.Build.0 = Release|Any CPU + {42F21CE5-C8D1-4083-937B-951B92C2F93C}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {42F21CE5-C8D1-4083-937B-951B92C2F93C}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Demo|Any CPU.Build.0 = Demo|Any CPU + {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Dev|Any CPU.Build.0 = Dev|Any CPU + {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Release|Any CPU.Build.0 = Release|Any CPU + {57373D06-6B82-4EC6-AF62-ED25FE170C61}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {57373D06-6B82-4EC6-AF62-ED25FE170C61}.alexlocal|Any CPU.Build.0 = Demo|Any CPU {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Debug|Any CPU.Build.0 = Debug|Any CPU - {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Debug|x86.ActiveCfg = Debug|Any CPU {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Demo|Any CPU.ActiveCfg = Demo|Any CPU {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Demo|Any CPU.Build.0 = Demo|Any CPU - {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Demo|x86.ActiveCfg = Dev|Any CPU - {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Demo|x86.Build.0 = Dev|Any CPU {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Dev|Any CPU.Build.0 = Dev|Any CPU - {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Dev|x86.ActiveCfg = Dev|Any CPU - {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Dev|x86.Build.0 = Dev|Any CPU {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Release|Any CPU.ActiveCfg = Release|Any CPU {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Release|Any CPU.Build.0 = Release|Any CPU - {57373D06-6B82-4EC6-AF62-ED25FE170C61}.Release|x86.ActiveCfg = Release|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.alexlocal|x86.ActiveCfg = Release|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Debug|x86.ActiveCfg = Debug|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Demo|Any CPU.Build.0 = Demo|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Demo|x86.ActiveCfg = Dev|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Demo|x86.Build.0 = Dev|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Dev|Any CPU.Build.0 = Dev|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Dev|x86.ActiveCfg = Dev|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Dev|x86.Build.0 = Dev|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Release|Any CPU.Build.0 = Release|Any CPU - {14404298-4182-4D43-8098-5A199ED2FCAA}.Release|x86.ActiveCfg = Release|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.alexlocal|x86.ActiveCfg = Release|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Debug|x86.ActiveCfg = Debug|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Demo|Any CPU.Build.0 = Demo|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Demo|x86.ActiveCfg = Dev|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Dev|Any CPU.Build.0 = Dev|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Dev|x86.ActiveCfg = Dev|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Release|Any CPU.Build.0 = Release|Any CPU - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Release|x86.ActiveCfg = Release|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.alexlocal|x86.ActiveCfg = Release|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Debug|x86.ActiveCfg = Debug|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Demo|Any CPU.Build.0 = Demo|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Demo|x86.ActiveCfg = Debug|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Dev|Any CPU.Build.0 = Dev|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Dev|x86.ActiveCfg = Debug|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Release|Any CPU.Build.0 = Release|Any CPU - {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Release|x86.ActiveCfg = Release|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.alexlocal|x86.ActiveCfg = Release|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Debug|x86.ActiveCfg = Debug|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Demo|Any CPU.Build.0 = Demo|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Demo|x86.ActiveCfg = Debug|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Dev|Any CPU.Build.0 = Dev|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Dev|x86.ActiveCfg = Debug|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Release|Any CPU.Build.0 = Release|Any CPU - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Release|x86.ActiveCfg = Release|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.alexlocal|x86.ActiveCfg = Release|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Debug|x86.ActiveCfg = Debug|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Demo|Any CPU.Build.0 = Demo|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Demo|x86.ActiveCfg = Debug|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Dev|Any CPU.Build.0 = Dev|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Dev|x86.ActiveCfg = Debug|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Release|Any CPU.Build.0 = Release|Any CPU - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF}.Release|x86.ActiveCfg = Release|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.alexlocal|Any CPU.Build.0 = Dev|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.alexlocal|x86.ActiveCfg = Dev|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.alexlocal|x86.Build.0 = Dev|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Debug|x86.ActiveCfg = Debug|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Debug|x86.Build.0 = Debug|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Demo|Any CPU.Build.0 = Demo|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Demo|x86.ActiveCfg = Dev|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Demo|x86.Build.0 = Dev|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Dev|Any CPU.Build.0 = Dev|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Dev|x86.ActiveCfg = Dev|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Dev|x86.Build.0 = Dev|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Release|Any CPU.Build.0 = Release|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Release|x86.ActiveCfg = Release|Any CPU - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Release|x86.Build.0 = Release|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.alexlocal|Any CPU.Build.0 = Dev|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.alexlocal|x86.ActiveCfg = Dev|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.alexlocal|x86.Build.0 = Dev|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Debug|x86.ActiveCfg = Debug|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Debug|x86.Build.0 = Debug|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Demo|Any CPU.Build.0 = Demo|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Demo|x86.ActiveCfg = Dev|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Demo|x86.Build.0 = Dev|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Dev|Any CPU.Build.0 = Dev|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Dev|x86.ActiveCfg = Dev|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Dev|x86.Build.0 = Dev|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Release|Any CPU.Build.0 = Release|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Release|x86.ActiveCfg = Release|Any CPU - {CFBA4468-222F-4255-8D94-809ACBF7AC47}.Release|x86.Build.0 = Release|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.alexlocal|x86.ActiveCfg = Release|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.alexlocal|x86.Build.0 = Release|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Debug|x86.ActiveCfg = Debug|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Debug|x86.Build.0 = Debug|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Demo|Any CPU.Build.0 = Demo|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Demo|x86.ActiveCfg = Dev|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Demo|x86.Build.0 = Dev|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Dev|Any CPU.Build.0 = Dev|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Dev|x86.ActiveCfg = Dev|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Dev|x86.Build.0 = Dev|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Release|Any CPU.Build.0 = Release|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Release|x86.ActiveCfg = Release|Any CPU - {42F21CE5-C8D1-4083-937B-951B92C2F93C}.Release|x86.Build.0 = Release|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.alexlocal|x86.ActiveCfg = Release|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Debug|Any CPU.Build.0 = Debug|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Debug|x86.ActiveCfg = Debug|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Demo|Any CPU.Build.0 = Demo|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Demo|x86.ActiveCfg = Dev|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Dev|Any CPU.Build.0 = Dev|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Dev|x86.ActiveCfg = Dev|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Release|Any CPU.ActiveCfg = Release|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Release|Any CPU.Build.0 = Release|Any CPU - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Release|x86.ActiveCfg = Release|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.alexlocal|Any CPU.Build.0 = Dev|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.alexlocal|x86.ActiveCfg = Dev|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.alexlocal|x86.Build.0 = Dev|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Debug|x86.ActiveCfg = Debug|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Debug|x86.Build.0 = Debug|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Demo|Any CPU.Build.0 = Demo|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Demo|x86.ActiveCfg = Dev|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Demo|x86.Build.0 = Dev|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Dev|Any CPU.Build.0 = Dev|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Dev|x86.ActiveCfg = Dev|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Dev|x86.Build.0 = Dev|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Release|Any CPU.Build.0 = Release|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Release|x86.ActiveCfg = Release|Any CPU - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Release|x86.Build.0 = Release|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.alexlocal|Any CPU.Build.0 = Dev|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.alexlocal|x86.ActiveCfg = Dev|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.alexlocal|x86.Build.0 = Dev|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Debug|x86.ActiveCfg = Debug|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Debug|x86.Build.0 = Debug|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Demo|Any CPU.Build.0 = Demo|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Demo|x86.ActiveCfg = Dev|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Demo|x86.Build.0 = Dev|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Dev|Any CPU.Build.0 = Dev|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Dev|x86.ActiveCfg = Dev|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Dev|x86.Build.0 = Dev|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Release|Any CPU.Build.0 = Release|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Release|x86.ActiveCfg = Release|Any CPU - {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Release|x86.Build.0 = Release|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.alexlocal|x86.ActiveCfg = Release|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Debug|x86.ActiveCfg = Debug|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Demo|Any CPU.Build.0 = Demo|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Demo|x86.ActiveCfg = Debug|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Dev|Any CPU.Build.0 = Dev|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Dev|x86.ActiveCfg = Debug|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Release|Any CPU.Build.0 = Release|Any CPU - {83231577-13A5-419F-8269-02AE59D8951A}.Release|x86.ActiveCfg = Release|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.alexlocal|x86.ActiveCfg = Release|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Debug|x86.ActiveCfg = Debug|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Demo|Any CPU.Build.0 = Demo|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Demo|x86.ActiveCfg = Debug|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Dev|Any CPU.Build.0 = Dev|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Dev|x86.ActiveCfg = Debug|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Release|Any CPU.Build.0 = Release|Any CPU - {A6E317FA-2EB0-4447-8ECD-6725F6B78435}.Release|x86.ActiveCfg = Release|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.alexlocal|x86.ActiveCfg = Release|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Debug|x86.ActiveCfg = Debug|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Demo|Any CPU.Build.0 = Demo|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Demo|x86.ActiveCfg = Debug|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Dev|Any CPU.Build.0 = Dev|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Dev|x86.ActiveCfg = Debug|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Release|Any CPU.Build.0 = Release|Any CPU - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Release|x86.ActiveCfg = Release|Any CPU - {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.alexlocal|x86.ActiveCfg = Release|Any CPU + {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.alexlocal|Any CPU.Build.0 = Demo|Any CPU {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Debug|x86.ActiveCfg = Debug|Any CPU {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Demo|Any CPU.ActiveCfg = Demo|Any CPU {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Demo|Any CPU.Build.0 = Demo|Any CPU - {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Demo|x86.ActiveCfg = Debug|Any CPU {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Dev|Any CPU.Build.0 = Dev|Any CPU - {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Dev|x86.ActiveCfg = Debug|Any CPU {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Release|Any CPU.ActiveCfg = Release|Any CPU {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Release|Any CPU.Build.0 = Release|Any CPU - {A854EB96-B28A-42FC-8209-3E5E9D6B208C}.Release|x86.ActiveCfg = Release|Any CPU - {62219AA6-9276-4935-B934-F0F50ECEF6FB}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {62219AA6-9276-4935-B934-F0F50ECEF6FB}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {62219AA6-9276-4935-B934-F0F50ECEF6FB}.alexlocal|x86.ActiveCfg = Release|Any CPU + {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Demo|Any CPU.Build.0 = Demo|Any CPU + {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Dev|Any CPU.Build.0 = Dev|Any CPU + {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Release|Any CPU.Build.0 = Release|Any CPU + {380C028E-2623-4207-B8AF-F21B92183ED8}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU + {380C028E-2623-4207-B8AF-F21B92183ED8}.alexlocal|Any CPU.Build.0 = Dev|Any CPU + {380C028E-2623-4207-B8AF-F21B92183ED8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {380C028E-2623-4207-B8AF-F21B92183ED8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {380C028E-2623-4207-B8AF-F21B92183ED8}.Demo|Any CPU.ActiveCfg = Dev|Any CPU + {380C028E-2623-4207-B8AF-F21B92183ED8}.Demo|Any CPU.Build.0 = Dev|Any CPU + {380C028E-2623-4207-B8AF-F21B92183ED8}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {380C028E-2623-4207-B8AF-F21B92183ED8}.Dev|Any CPU.Build.0 = Dev|Any CPU + {380C028E-2623-4207-B8AF-F21B92183ED8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {380C028E-2623-4207-B8AF-F21B92183ED8}.Release|Any CPU.Build.0 = Release|Any CPU + {AD226A7F-0641-4589-93EB-06E5EE7E767B}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {AD226A7F-0641-4589-93EB-06E5EE7E767B}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Demo|Any CPU.Build.0 = Demo|Any CPU + {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Dev|Any CPU.Build.0 = Dev|Any CPU + {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD226A7F-0641-4589-93EB-06E5EE7E767B}.Release|Any CPU.Build.0 = Release|Any CPU + {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Demo|Any CPU.Build.0 = Demo|Any CPU + {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Dev|Any CPU.Build.0 = Dev|Any CPU + {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42}.Release|Any CPU.Build.0 = Release|Any CPU + {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Demo|Any CPU.Build.0 = Demo|Any CPU + {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Dev|Any CPU.Build.0 = Dev|Any CPU + {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC}.Release|Any CPU.Build.0 = Release|Any CPU + {62219AA6-9276-4935-B934-F0F50ECEF6FB}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {62219AA6-9276-4935-B934-F0F50ECEF6FB}.alexlocal|Any CPU.Build.0 = Demo|Any CPU {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Debug|x86.ActiveCfg = Debug|Any CPU {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Demo|Any CPU.ActiveCfg = Demo|Any CPU {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Demo|Any CPU.Build.0 = Demo|Any CPU - {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Demo|x86.ActiveCfg = Debug|Any CPU {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Dev|Any CPU.Build.0 = Dev|Any CPU - {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Dev|x86.ActiveCfg = Debug|Any CPU {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Release|Any CPU.ActiveCfg = Release|Any CPU {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Release|Any CPU.Build.0 = Release|Any CPU - {62219AA6-9276-4935-B934-F0F50ECEF6FB}.Release|x86.ActiveCfg = Release|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.alexlocal|x86.ActiveCfg = Release|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Debug|x86.ActiveCfg = Debug|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Demo|Any CPU.Build.0 = Demo|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Demo|x86.ActiveCfg = Debug|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Dev|Any CPU.Build.0 = Dev|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Dev|x86.ActiveCfg = Debug|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Release|Any CPU.Build.0 = Release|Any CPU - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Release|x86.ActiveCfg = Release|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.alexlocal|x86.ActiveCfg = Release|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Debug|Any CPU.Build.0 = Debug|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Debug|x86.ActiveCfg = Debug|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Demo|Any CPU.Build.0 = Demo|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Demo|x86.ActiveCfg = Debug|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Dev|Any CPU.Build.0 = Dev|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Dev|x86.ActiveCfg = Debug|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Release|Any CPU.ActiveCfg = Release|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Release|Any CPU.Build.0 = Release|Any CPU - {89D763ED-3EA6-4303-AB29-3239095A4B06}.Release|x86.ActiveCfg = Release|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.alexlocal|x86.ActiveCfg = Release|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Debug|x86.ActiveCfg = Debug|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Demo|Any CPU.Build.0 = Demo|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Demo|x86.ActiveCfg = Debug|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Dev|Any CPU.Build.0 = Dev|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Dev|x86.ActiveCfg = Debug|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Release|Any CPU.Build.0 = Release|Any CPU - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B}.Release|x86.ActiveCfg = Release|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.alexlocal|x86.ActiveCfg = Release|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Debug|x86.ActiveCfg = Debug|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Demo|Any CPU.Build.0 = Demo|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Demo|x86.ActiveCfg = Debug|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Dev|Any CPU.Build.0 = Dev|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Dev|x86.ActiveCfg = Debug|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Release|Any CPU.Build.0 = Release|Any CPU - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Release|x86.ActiveCfg = Release|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.alexlocal|x86.ActiveCfg = Release|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Debug|x86.ActiveCfg = Debug|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Demo|Any CPU.Build.0 = Demo|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Demo|x86.ActiveCfg = Debug|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Dev|Any CPU.Build.0 = Dev|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Dev|x86.ActiveCfg = Debug|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Release|Any CPU.Build.0 = Release|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Release|x86.ActiveCfg = Release|Any CPU - {36ED6F21-1A8F-4F07-A08A-A55639891E9B}.Release|x86.Build.0 = Release|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.alexlocal|x86.ActiveCfg = Release|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Debug|x86.ActiveCfg = Debug|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Demo|Any CPU.Build.0 = Demo|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Demo|x86.ActiveCfg = Debug|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Dev|Any CPU.Build.0 = Dev|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Dev|x86.ActiveCfg = Debug|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Release|Any CPU.Build.0 = Release|Any CPU - {6B807AB1-F549-49CB-9F52-52BC33D23443}.Release|x86.ActiveCfg = Release|Any CPU - {3D4116CE-63DD-406C-8235-0115A8FA90F1}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU - {3D4116CE-63DD-406C-8235-0115A8FA90F1}.alexlocal|Any CPU.Build.0 = Dev|Any CPU - {3D4116CE-63DD-406C-8235-0115A8FA90F1}.alexlocal|x86.ActiveCfg = Dev|Any CPU + {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Demo|Any CPU.Build.0 = Demo|Any CPU + {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Dev|Any CPU.Build.0 = Dev|Any CPU + {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Release|Any CPU.Build.0 = Release|Any CPU + {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Demo|Any CPU.Build.0 = Demo|Any CPU + {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Dev|Any CPU.Build.0 = Dev|Any CPU + {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Release|Any CPU.Build.0 = Release|Any CPU + {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Demo|Any CPU.Build.0 = Demo|Any CPU + {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Dev|Any CPU.Build.0 = Dev|Any CPU + {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B}.Release|Any CPU.Build.0 = Release|Any CPU + {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Demo|Any CPU.Build.0 = Demo|Any CPU + {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Dev|Any CPU.Build.0 = Dev|Any CPU + {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179}.Release|Any CPU.Build.0 = Release|Any CPU + {3D4116CE-63DD-406C-8235-0115A8FA90F1}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {3D4116CE-63DD-406C-8235-0115A8FA90F1}.alexlocal|Any CPU.Build.0 = Demo|Any CPU {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Debug|x86.ActiveCfg = Debug|Any CPU {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Demo|Any CPU.ActiveCfg = Demo|Any CPU {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Demo|Any CPU.Build.0 = Demo|Any CPU - {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Demo|x86.ActiveCfg = Dev|Any CPU {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Dev|Any CPU.Build.0 = Dev|Any CPU - {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Dev|x86.ActiveCfg = Dev|Any CPU {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Release|Any CPU.ActiveCfg = Release|Any CPU {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Release|Any CPU.Build.0 = Release|Any CPU - {3D4116CE-63DD-406C-8235-0115A8FA90F1}.Release|x86.ActiveCfg = Release|Any CPU - {6367B304-3E18-4DA6-A7E7-0893DA806953}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {6367B304-3E18-4DA6-A7E7-0893DA806953}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {6367B304-3E18-4DA6-A7E7-0893DA806953}.alexlocal|x86.ActiveCfg = Release|Any CPU + {6367B304-3E18-4DA6-A7E7-0893DA806953}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {6367B304-3E18-4DA6-A7E7-0893DA806953}.alexlocal|Any CPU.Build.0 = Demo|Any CPU {6367B304-3E18-4DA6-A7E7-0893DA806953}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6367B304-3E18-4DA6-A7E7-0893DA806953}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6367B304-3E18-4DA6-A7E7-0893DA806953}.Debug|x86.ActiveCfg = Debug|Any CPU {6367B304-3E18-4DA6-A7E7-0893DA806953}.Demo|Any CPU.ActiveCfg = Demo|Any CPU {6367B304-3E18-4DA6-A7E7-0893DA806953}.Demo|Any CPU.Build.0 = Demo|Any CPU - {6367B304-3E18-4DA6-A7E7-0893DA806953}.Demo|x86.ActiveCfg = Debug|Any CPU {6367B304-3E18-4DA6-A7E7-0893DA806953}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {6367B304-3E18-4DA6-A7E7-0893DA806953}.Dev|Any CPU.Build.0 = Dev|Any CPU - {6367B304-3E18-4DA6-A7E7-0893DA806953}.Dev|x86.ActiveCfg = Debug|Any CPU {6367B304-3E18-4DA6-A7E7-0893DA806953}.Release|Any CPU.ActiveCfg = Release|Any CPU {6367B304-3E18-4DA6-A7E7-0893DA806953}.Release|Any CPU.Build.0 = Release|Any CPU - {6367B304-3E18-4DA6-A7E7-0893DA806953}.Release|x86.ActiveCfg = Release|Any CPU - {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.alexlocal|x86.ActiveCfg = Release|Any CPU + {85CB0215-96DF-4C38-A022-1BE6C952813B}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {85CB0215-96DF-4C38-A022-1BE6C952813B}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {85CB0215-96DF-4C38-A022-1BE6C952813B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85CB0215-96DF-4C38-A022-1BE6C952813B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85CB0215-96DF-4C38-A022-1BE6C952813B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {85CB0215-96DF-4C38-A022-1BE6C952813B}.Demo|Any CPU.Build.0 = Demo|Any CPU + {85CB0215-96DF-4C38-A022-1BE6C952813B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {85CB0215-96DF-4C38-A022-1BE6C952813B}.Dev|Any CPU.Build.0 = Dev|Any CPU + {85CB0215-96DF-4C38-A022-1BE6C952813B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85CB0215-96DF-4C38-A022-1BE6C952813B}.Release|Any CPU.Build.0 = Release|Any CPU + {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.alexlocal|Any CPU.Build.0 = Demo|Any CPU {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Debug|x86.ActiveCfg = Debug|Any CPU {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Demo|Any CPU.ActiveCfg = Demo|Any CPU {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Demo|Any CPU.Build.0 = Demo|Any CPU - {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Demo|x86.ActiveCfg = Debug|Any CPU {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Dev|Any CPU.Build.0 = Dev|Any CPU - {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Dev|x86.ActiveCfg = Debug|Any CPU {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Release|Any CPU.ActiveCfg = Release|Any CPU {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Release|Any CPU.Build.0 = Release|Any CPU - {FDA06158-A81E-46B4-9F25-5AB76DFD400A}.Release|x86.ActiveCfg = Release|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.alexlocal|Any CPU.Build.0 = Dev|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.alexlocal|x86.ActiveCfg = Dev|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Debug|x86.ActiveCfg = Debug|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Demo|Any CPU.Build.0 = Demo|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Demo|x86.ActiveCfg = Dev|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Dev|Any CPU.Build.0 = Dev|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Dev|x86.ActiveCfg = Dev|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Release|Any CPU.Build.0 = Release|Any CPU - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Release|x86.ActiveCfg = Release|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.alexlocal|x86.ActiveCfg = Release|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Debug|x86.ActiveCfg = Debug|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Demo|Any CPU.Build.0 = Demo|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Demo|x86.ActiveCfg = Debug|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Dev|Any CPU.Build.0 = Dev|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Dev|x86.ActiveCfg = Debug|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Release|Any CPU.Build.0 = Release|Any CPU - {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Release|x86.ActiveCfg = Release|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.alexlocal|x86.ActiveCfg = Release|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.alexlocal|x86.Build.0 = Release|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Debug|x86.ActiveCfg = Debug|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Debug|x86.Build.0 = Debug|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Demo|Any CPU.Build.0 = Demo|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Demo|x86.ActiveCfg = Debug|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Demo|x86.Build.0 = Debug|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Dev|Any CPU.Build.0 = Dev|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Dev|x86.ActiveCfg = Debug|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Dev|x86.Build.0 = Debug|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Release|Any CPU.Build.0 = Release|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Release|x86.ActiveCfg = Release|Any CPU - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A}.Release|x86.Build.0 = Release|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.alexlocal|x86.ActiveCfg = Release|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.alexlocal|x86.Build.0 = Release|Any CPU + {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Demo|Any CPU.Build.0 = Demo|Any CPU + {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Dev|Any CPU.Build.0 = Dev|Any CPU + {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF}.Release|Any CPU.Build.0 = Release|Any CPU + {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Demo|Any CPU.Build.0 = Demo|Any CPU + {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Dev|Any CPU.Build.0 = Dev|Any CPU + {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE3E1E99-175F-4507-96DA-421FCD0F6D9E}.Release|Any CPU.Build.0 = Release|Any CPU + {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Demo|Any CPU.Build.0 = Demo|Any CPU + {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Dev|Any CPU.Build.0 = Dev|Any CPU + {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA105E66-8756-4F57-8230-2A52BFEBDDC6}.Release|Any CPU.Build.0 = Release|Any CPU + {E46B602A-287B-450F-B455-5EED20C93EB7}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU + {E46B602A-287B-450F-B455-5EED20C93EB7}.alexlocal|Any CPU.Build.0 = Dev|Any CPU {E46B602A-287B-450F-B455-5EED20C93EB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E46B602A-287B-450F-B455-5EED20C93EB7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.Debug|x86.ActiveCfg = Debug|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.Debug|x86.Build.0 = Debug|Any CPU {E46B602A-287B-450F-B455-5EED20C93EB7}.Demo|Any CPU.ActiveCfg = Demo|Any CPU {E46B602A-287B-450F-B455-5EED20C93EB7}.Demo|Any CPU.Build.0 = Demo|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.Demo|x86.ActiveCfg = Debug|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.Demo|x86.Build.0 = Debug|Any CPU {E46B602A-287B-450F-B455-5EED20C93EB7}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {E46B602A-287B-450F-B455-5EED20C93EB7}.Dev|Any CPU.Build.0 = Dev|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.Dev|x86.ActiveCfg = Debug|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.Dev|x86.Build.0 = Debug|Any CPU {E46B602A-287B-450F-B455-5EED20C93EB7}.Release|Any CPU.ActiveCfg = Release|Any CPU {E46B602A-287B-450F-B455-5EED20C93EB7}.Release|Any CPU.Build.0 = Release|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.Release|x86.ActiveCfg = Release|Any CPU - {E46B602A-287B-450F-B455-5EED20C93EB7}.Release|x86.Build.0 = Release|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.alexlocal|x86.ActiveCfg = Release|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.alexlocal|x86.Build.0 = Release|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Debug|Any CPU.Build.0 = Debug|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Debug|x86.ActiveCfg = Debug|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Debug|x86.Build.0 = Debug|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Demo|x86.ActiveCfg = Debug|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Dev|Any CPU.Build.0 = Dev|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Dev|x86.ActiveCfg = Debug|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Dev|x86.Build.0 = Debug|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Release|Any CPU.ActiveCfg = Release|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Release|Any CPU.Build.0 = Release|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Release|x86.ActiveCfg = Release|Any CPU - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305}.Release|x86.Build.0 = Release|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.alexlocal|x86.ActiveCfg = Release|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.alexlocal|x86.Build.0 = Release|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Debug|Any CPU.Build.0 = Debug|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Debug|x86.ActiveCfg = Debug|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Debug|x86.Build.0 = Debug|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Demo|x86.ActiveCfg = Debug|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Dev|Any CPU.Build.0 = Dev|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Dev|x86.ActiveCfg = Debug|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Dev|x86.Build.0 = Debug|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Release|Any CPU.ActiveCfg = Release|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Release|Any CPU.Build.0 = Release|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Release|x86.ActiveCfg = Release|Any CPU - {84800565-B464-471D-8F02-1A93311C3388}.Release|x86.Build.0 = Release|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.alexlocal|x86.ActiveCfg = Release|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.alexlocal|x86.Build.0 = Release|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Debug|x86.ActiveCfg = Debug|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Debug|x86.Build.0 = Debug|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Demo|Any CPU.Build.0 = Demo|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Demo|x86.ActiveCfg = Debug|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Demo|x86.Build.0 = Debug|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Dev|Any CPU.Build.0 = Dev|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Dev|x86.ActiveCfg = Debug|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Dev|x86.Build.0 = Debug|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Release|Any CPU.Build.0 = Release|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Release|x86.ActiveCfg = Release|Any CPU - {1ABD6365-E04D-4971-8D0D-5364C896113F}.Release|x86.Build.0 = Release|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.alexlocal|x86.ActiveCfg = Release|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.alexlocal|x86.Build.0 = Release|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Debug|x86.ActiveCfg = Debug|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Debug|x86.Build.0 = Debug|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Demo|Any CPU.Build.0 = Debug|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Demo|x86.ActiveCfg = Debug|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Demo|x86.Build.0 = Debug|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Dev|Any CPU.Build.0 = Dev|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Dev|x86.ActiveCfg = Debug|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Dev|x86.Build.0 = Debug|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Release|Any CPU.Build.0 = Release|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Release|x86.ActiveCfg = Release|Any CPU - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B}.Release|x86.Build.0 = Release|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.alexlocal|x86.ActiveCfg = Release|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.alexlocal|x86.Build.0 = Release|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Debug|x86.ActiveCfg = Debug|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Debug|x86.Build.0 = Debug|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Demo|Any CPU.Build.0 = Debug|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Demo|x86.ActiveCfg = Debug|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Demo|x86.Build.0 = Debug|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Dev|Any CPU.Build.0 = Dev|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Dev|x86.ActiveCfg = Debug|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Dev|x86.Build.0 = Debug|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Release|Any CPU.Build.0 = Release|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Release|x86.ActiveCfg = Release|Any CPU - {BF96675E-6BAF-4AC9-B247-1551D62E8C44}.Release|x86.Build.0 = Release|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.alexlocal|x86.ActiveCfg = Release|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.alexlocal|x86.Build.0 = Release|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Debug|x86.ActiveCfg = Debug|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Debug|x86.Build.0 = Debug|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Demo|Any CPU.Build.0 = Debug|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Demo|x86.ActiveCfg = Debug|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Demo|x86.Build.0 = Debug|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Dev|Any CPU.Build.0 = Dev|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Dev|x86.ActiveCfg = Debug|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Dev|x86.Build.0 = Debug|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Release|Any CPU.Build.0 = Release|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Release|x86.ActiveCfg = Release|Any CPU - {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Release|x86.Build.0 = Release|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.alexlocal|Any CPU.Build.0 = Demo|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.alexlocal|x86.ActiveCfg = Demo|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.alexlocal|x86.Build.0 = Demo|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Debug|x86.ActiveCfg = Debug|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Debug|x86.Build.0 = Debug|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Demo|Any CPU.Build.0 = Demo|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Demo|x86.ActiveCfg = Demo|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Demo|x86.Build.0 = Demo|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Dev|Any CPU.Build.0 = Dev|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Dev|x86.ActiveCfg = Dev|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Dev|x86.Build.0 = Dev|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Release|Any CPU.Build.0 = Release|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Release|x86.ActiveCfg = Release|Any CPU - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B}.Release|x86.Build.0 = Release|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.alexlocal|x86.ActiveCfg = Release|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.alexlocal|x86.Build.0 = Release|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Debug|x86.ActiveCfg = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Debug|x86.Build.0 = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Demo|Any CPU.Build.0 = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Demo|x86.ActiveCfg = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Demo|x86.Build.0 = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Dev|Any CPU.ActiveCfg = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Dev|Any CPU.Build.0 = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Dev|x86.ActiveCfg = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Dev|x86.Build.0 = Debug|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Release|Any CPU.Build.0 = Release|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Release|x86.ActiveCfg = Release|Any CPU - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3}.Release|x86.Build.0 = Release|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.alexlocal|x86.ActiveCfg = Release|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.alexlocal|x86.Build.0 = Release|Any CPU + {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Demo|Any CPU.Build.0 = Demo|Any CPU + {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Dev|Any CPU.Build.0 = Dev|Any CPU + {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {990DB8CB-AAD6-42FE-940D-3A731DF56ABE}.Release|Any CPU.Build.0 = Release|Any CPU + {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Demo|Any CPU.Build.0 = Demo|Any CPU + {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Dev|Any CPU.Build.0 = Dev|Any CPU + {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1246A6D6-FB9D-4564-8E86-A9F14A7AD177}.Release|Any CPU.Build.0 = Release|Any CPU + {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU + {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.alexlocal|Any CPU.Build.0 = Dev|Any CPU {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Debug|x86.ActiveCfg = Debug|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Debug|x86.Build.0 = Debug|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Demo|Any CPU.Build.0 = Debug|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Demo|x86.ActiveCfg = Debug|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Demo|x86.Build.0 = Debug|Any CPU + {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Demo|Any CPU.Build.0 = Demo|Any CPU {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Dev|Any CPU.Build.0 = Dev|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Dev|x86.ActiveCfg = Debug|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Dev|x86.Build.0 = Debug|Any CPU {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Release|Any CPU.ActiveCfg = Release|Any CPU {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Release|Any CPU.Build.0 = Release|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Release|x86.ActiveCfg = Release|Any CPU - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7}.Release|x86.Build.0 = Release|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.alexlocal|x86.ActiveCfg = Release|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.alexlocal|x86.Build.0 = Release|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Debug|x86.ActiveCfg = Debug|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Debug|x86.Build.0 = Debug|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Demo|Any CPU.Build.0 = Debug|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Demo|x86.ActiveCfg = Debug|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Demo|x86.Build.0 = Debug|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Dev|Any CPU.Build.0 = Dev|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Dev|x86.ActiveCfg = Debug|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Dev|x86.Build.0 = Debug|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Release|Any CPU.Build.0 = Release|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Release|x86.ActiveCfg = Release|Any CPU - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA}.Release|x86.Build.0 = Release|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.alexlocal|x86.ActiveCfg = Release|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.alexlocal|x86.Build.0 = Release|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Debug|x86.ActiveCfg = Debug|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Debug|x86.Build.0 = Debug|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Demo|Any CPU.Build.0 = Demo|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Demo|x86.ActiveCfg = Debug|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Demo|x86.Build.0 = Debug|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Dev|Any CPU.Build.0 = Dev|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Dev|x86.ActiveCfg = Debug|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Dev|x86.Build.0 = Debug|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Release|Any CPU.Build.0 = Release|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Release|x86.ActiveCfg = Release|Any CPU - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445}.Release|x86.Build.0 = Release|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.alexlocal|x86.ActiveCfg = Release|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.alexlocal|x86.Build.0 = Release|Any CPU + {E0E04964-F77E-435F-8B90-F4338C30DDAD}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU + {E0E04964-F77E-435F-8B90-F4338C30DDAD}.alexlocal|Any CPU.Build.0 = Dev|Any CPU {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Debug|x86.ActiveCfg = Debug|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Debug|x86.Build.0 = Debug|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Demo|Any CPU.Build.0 = Debug|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Demo|x86.ActiveCfg = Debug|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Demo|x86.Build.0 = Debug|Any CPU + {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Demo|Any CPU.ActiveCfg = Dev|Any CPU + {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Demo|Any CPU.Build.0 = Dev|Any CPU {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Dev|Any CPU.ActiveCfg = Dev|Any CPU {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Dev|Any CPU.Build.0 = Dev|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Dev|x86.ActiveCfg = Debug|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Dev|x86.Build.0 = Debug|Any CPU {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Release|Any CPU.ActiveCfg = Release|Any CPU {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Release|Any CPU.Build.0 = Release|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Release|x86.ActiveCfg = Release|Any CPU - {E0E04964-F77E-435F-8B90-F4338C30DDAD}.Release|x86.Build.0 = Release|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.alexlocal|x86.ActiveCfg = Release|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.alexlocal|x86.Build.0 = Release|Any CPU + {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.alexlocal|Any CPU.Build.0 = Demo|Any CPU {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Debug|x86.ActiveCfg = Debug|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Debug|x86.Build.0 = Debug|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Demo|Any CPU.Build.0 = Debug|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Demo|x86.ActiveCfg = Debug|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Demo|x86.Build.0 = Debug|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Dev|Any CPU.ActiveCfg = Debug|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Dev|Any CPU.Build.0 = Debug|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Dev|x86.ActiveCfg = Debug|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Dev|x86.Build.0 = Debug|Any CPU + {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Demo|Any CPU.Build.0 = Demo|Any CPU + {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Dev|Any CPU.Build.0 = Dev|Any CPU {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Release|Any CPU.ActiveCfg = Release|Any CPU {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Release|Any CPU.Build.0 = Release|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Release|x86.ActiveCfg = Release|Any CPU - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5}.Release|x86.Build.0 = Release|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.alexlocal|x86.ActiveCfg = Release|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.alexlocal|x86.Build.0 = Release|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Debug|x86.ActiveCfg = Debug|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Debug|x86.Build.0 = Debug|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Demo|Any CPU.Build.0 = Demo|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Demo|x86.ActiveCfg = Debug|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Demo|x86.Build.0 = Debug|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Dev|Any CPU.Build.0 = Dev|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Dev|x86.ActiveCfg = Debug|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Dev|x86.Build.0 = Debug|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Release|Any CPU.Build.0 = Release|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Release|x86.ActiveCfg = Release|Any CPU - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD}.Release|x86.Build.0 = Release|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.alexlocal|Any CPU.Build.0 = Demo|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.alexlocal|x86.ActiveCfg = Demo|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.alexlocal|x86.Build.0 = Demo|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Debug|x86.ActiveCfg = Debug|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Debug|x86.Build.0 = Debug|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Demo|Any CPU.Build.0 = Demo|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Demo|x86.ActiveCfg = Demo|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Demo|x86.Build.0 = Demo|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Dev|Any CPU.Build.0 = Dev|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Dev|x86.ActiveCfg = Dev|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Dev|x86.Build.0 = Dev|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Release|Any CPU.Build.0 = Release|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Release|x86.ActiveCfg = Release|Any CPU - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1}.Release|x86.Build.0 = Release|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.alexlocal|Any CPU.Build.0 = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.alexlocal|x86.ActiveCfg = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.alexlocal|x86.Build.0 = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Debug|x86.ActiveCfg = Debug|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Debug|x86.Build.0 = Debug|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Demo|Any CPU.ActiveCfg = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Demo|Any CPU.Build.0 = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Demo|x86.ActiveCfg = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Demo|x86.Build.0 = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Dev|Any CPU.ActiveCfg = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Dev|Any CPU.Build.0 = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Dev|x86.ActiveCfg = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Dev|x86.Build.0 = Dev|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Release|Any CPU.Build.0 = Release|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Release|x86.ActiveCfg = Release|Any CPU - {380C028E-2623-4207-B8AF-F21B92183ED8}.Release|x86.Build.0 = Release|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.alexlocal|x86.ActiveCfg = Release|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.alexlocal|x86.Build.0 = Release|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Debug|x86.ActiveCfg = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Debug|x86.Build.0 = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Demo|Any CPU.Build.0 = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Demo|x86.ActiveCfg = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Demo|x86.Build.0 = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Dev|Any CPU.ActiveCfg = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Dev|Any CPU.Build.0 = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Dev|x86.ActiveCfg = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Dev|x86.Build.0 = Debug|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Release|Any CPU.Build.0 = Release|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Release|x86.ActiveCfg = Release|Any CPU - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB}.Release|x86.Build.0 = Release|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.alexlocal|x86.ActiveCfg = Release|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.alexlocal|x86.Build.0 = Release|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Debug|x86.ActiveCfg = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Debug|x86.Build.0 = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Demo|Any CPU.Build.0 = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Demo|x86.ActiveCfg = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Demo|x86.Build.0 = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Dev|Any CPU.ActiveCfg = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Dev|Any CPU.Build.0 = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Dev|x86.ActiveCfg = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Dev|x86.Build.0 = Debug|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Release|Any CPU.Build.0 = Release|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Release|x86.ActiveCfg = Release|Any CPU - {3B0A3D34-D926-4356-BE31-809055FE835A}.Release|x86.Build.0 = Release|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.alexlocal|Any CPU.ActiveCfg = Release|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.alexlocal|Any CPU.Build.0 = Release|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.alexlocal|x86.ActiveCfg = Release|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.alexlocal|x86.Build.0 = Release|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Debug|x86.ActiveCfg = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Debug|x86.Build.0 = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Demo|Any CPU.Build.0 = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Demo|x86.ActiveCfg = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Demo|x86.Build.0 = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Dev|Any CPU.ActiveCfg = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Dev|Any CPU.Build.0 = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Dev|x86.ActiveCfg = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Dev|x86.Build.0 = Debug|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Release|Any CPU.Build.0 = Release|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Release|x86.ActiveCfg = Release|Any CPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841}.Release|x86.Build.0 = Release|Any CPU + {14404298-4182-4D43-8098-5A199ED2FCAA}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {14404298-4182-4D43-8098-5A199ED2FCAA}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {14404298-4182-4D43-8098-5A199ED2FCAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14404298-4182-4D43-8098-5A199ED2FCAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14404298-4182-4D43-8098-5A199ED2FCAA}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {14404298-4182-4D43-8098-5A199ED2FCAA}.Demo|Any CPU.Build.0 = Demo|Any CPU + {14404298-4182-4D43-8098-5A199ED2FCAA}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {14404298-4182-4D43-8098-5A199ED2FCAA}.Dev|Any CPU.Build.0 = Dev|Any CPU + {14404298-4182-4D43-8098-5A199ED2FCAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14404298-4182-4D43-8098-5A199ED2FCAA}.Release|Any CPU.Build.0 = Release|Any CPU + {6B807AB1-F549-49CB-9F52-52BC33D23443}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {6B807AB1-F549-49CB-9F52-52BC33D23443}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {6B807AB1-F549-49CB-9F52-52BC33D23443}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B807AB1-F549-49CB-9F52-52BC33D23443}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B807AB1-F549-49CB-9F52-52BC33D23443}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {6B807AB1-F549-49CB-9F52-52BC33D23443}.Demo|Any CPU.Build.0 = Demo|Any CPU + {6B807AB1-F549-49CB-9F52-52BC33D23443}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {6B807AB1-F549-49CB-9F52-52BC33D23443}.Dev|Any CPU.Build.0 = Dev|Any CPU + {6B807AB1-F549-49CB-9F52-52BC33D23443}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B807AB1-F549-49CB-9F52-52BC33D23443}.Release|Any CPU.Build.0 = Release|Any CPU + {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Demo|Any CPU.Build.0 = Demo|Any CPU + {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Dev|Any CPU.Build.0 = Dev|Any CPU + {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D}.Release|Any CPU.Build.0 = Release|Any CPU + {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Demo|Any CPU.Build.0 = Demo|Any CPU + {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Dev|Any CPU.Build.0 = Dev|Any CPU + {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2638CB3-33D6-443F-BC87-E20260D3C9EF}.Release|Any CPU.Build.0 = Release|Any CPU + {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Demo|Any CPU.Build.0 = Demo|Any CPU + {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Dev|Any CPU.Build.0 = Dev|Any CPU + {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40625AD3-D5D2-4CF0-8E3E-FD232A54A808}.Release|Any CPU.Build.0 = Release|Any CPU + {579BA25F-1DF5-474A-8A3E-0447FF75711C}.alexlocal|Any CPU.ActiveCfg = Demo|Any CPU + {579BA25F-1DF5-474A-8A3E-0447FF75711C}.alexlocal|Any CPU.Build.0 = Demo|Any CPU + {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Demo|Any CPU.ActiveCfg = Demo|Any CPU + {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Demo|Any CPU.Build.0 = Demo|Any CPU + {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Dev|Any CPU.Build.0 = Dev|Any CPU + {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {579BA25F-1DF5-474A-8A3E-0447FF75711C}.Release|Any CPU.Build.0 = Release|Any CPU + {4F56C030-D16B-4A51-82D0-3C23A47AB703}.alexlocal|Any CPU.ActiveCfg = Dev|Any CPU + {4F56C030-D16B-4A51-82D0-3C23A47AB703}.alexlocal|Any CPU.Build.0 = Dev|Any CPU + {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Demo|Any CPU.ActiveCfg = Dev|Any CPU + {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Demo|Any CPU.Build.0 = Dev|Any CPU + {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Dev|Any CPU.ActiveCfg = Dev|Any CPU + {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Dev|Any CPU.Build.0 = Dev|Any CPU + {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F56C030-D16B-4A51-82D0-3C23A47AB703}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {D019B112-55A8-4661-AFF5-329F998D9E28} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {4E04FEB2-B452-4739-8336-EA2CEFB18D87} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {AD226A7F-0641-4589-93EB-06E5EE7E767B} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {990DB8CB-AAD6-42FE-940D-3A731DF56ABE} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {85CB0215-96DF-4C38-A022-1BE6C952813B} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {57373D06-6B82-4EC6-AF62-ED25FE170C61} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {14404298-4182-4D43-8098-5A199ED2FCAA} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {FA105E66-8756-4F57-8230-2A52BFEBDDC6} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {CFBA4468-222F-4255-8D94-809ACBF7AC47} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {42F21CE5-C8D1-4083-937B-951B92C2F93C} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {40625AD3-D5D2-4CF0-8E3E-FD232A54A808} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {579BA25F-1DF5-474A-8A3E-0447FF75711C} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {83231577-13A5-419F-8269-02AE59D8951A} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {A6E317FA-2EB0-4447-8ECD-6725F6B78435} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {A854EB96-B28A-42FC-8209-3E5E9D6B208C} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {62219AA6-9276-4935-B934-F0F50ECEF6FB} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {1246A6D6-FB9D-4564-8E86-A9F14A7AD177} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {89D763ED-3EA6-4303-AB29-3239095A4B06} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {EE3E1E99-175F-4507-96DA-421FCD0F6D9E} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {36ED6F21-1A8F-4F07-A08A-A55639891E9B} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {6B807AB1-F549-49CB-9F52-52BC33D23443} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {3D4116CE-63DD-406C-8235-0115A8FA90F1} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {6367B304-3E18-4DA6-A7E7-0893DA806953} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {FDA06158-A81E-46B4-9F25-5AB76DFD400A} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {D2638CB3-33D6-443F-BC87-E20260D3C9EF} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {47CA975F-1F5B-4C90-9DA1-A88C53E0760A} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {E46B602A-287B-450F-B455-5EED20C93EB7} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {84800565-B464-471D-8F02-1A93311C3388} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {1ABD6365-E04D-4971-8D0D-5364C896113F} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {4F56C030-D16B-4A51-82D0-3C23A47AB703} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {26C15DC0-73CA-46E3-AEBA-17353C59C2F3} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {E0E04964-F77E-435F-8B90-F4338C30DDAD} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {380C028E-2623-4207-B8AF-F21B92183ED8} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB} = {9A01CAA2-30D9-45B5-9FF3-A0DDF12551F2} - {3B0A3D34-D926-4356-BE31-809055FE835A} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} - {3F32543F-7A89-4AE3-A607-A58C4B52B841} = {6CF6EAFB-0D62-4D76-8B2C-FA9C6BBB073B} + {4FDBF40A-36B2-4EBE-98B0-434F2E177779} = {D9827A77-B254-4962-B5DC-3D2C01C8044F} + {47CA975F-1F5B-4C90-9DA1-A88C53E0760A} = {4FDBF40A-36B2-4EBE-98B0-434F2E177779} + {83231577-13A5-419F-8269-02AE59D8951A} = {4FDBF40A-36B2-4EBE-98B0-434F2E177779} + {459FE39A-A5CC-41D8-B06E-8FAE3A1A623B} = {4FDBF40A-36B2-4EBE-98B0-434F2E177779} + {990241EA-6CF0-4026-B57C-A9031463C7C0} = {F848932E-7332-4B29-AB1E-9A794098501C} + {9891496C-8512-4708-925A-EE9D0F9199D4} = {F848932E-7332-4B29-AB1E-9A794098501C} + {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE} = {F848932E-7332-4B29-AB1E-9A794098501C} + {F40D465A-8FE2-4DEF-8587-34A0C3ACEA75} = {F848932E-7332-4B29-AB1E-9A794098501C} + {1E8DD13A-846B-4C36-A9C4-5997C5FD74FF} = {F40D465A-8FE2-4DEF-8587-34A0C3ACEA75} + {BF96675E-6BAF-4AC9-B247-1551D62E8C44} = {1B8F7B8D-8367-4B4E-BC79-002D26DF53D4} + {BBA91AF2-7636-41B6-87C4-C1575AE8B04B} = {1B8F7B8D-8367-4B4E-BC79-002D26DF53D4} + {4E7316D4-035A-41FA-B070-7FCCE94E2D10} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {DFFAFECB-52FB-4FB4-97B1-09703D672669} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {B02DEFA7-9B3E-4F83-A4E0-C3C49C3818EC} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {26F33C5D-13F3-44E6-8FC3-A67C8D4BBC78} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {64C3DC28-96BE-4C83-B62A-4AC394AC63F1} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {1341D9FE-1CCB-439C-AD50-DC84DFE815FA} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {3E904983-4408-42B7-8F5A-AC82B9F77240} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {6C9DA552-D09B-4009-9B3B-4E431972325E} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {1D24F2B2-7F1A-40C3-B325-005FDB02E222} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {73C92DFB-1BA5-472F-9885-754AA3A6A77A} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {A9022E15-C17D-4D86-A471-FF72B82098CC} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {7B573E88-8710-4CE6-8BAE-361B97F05926} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {5D030BDE-4EB4-4F8F-B783-E5A378B9DD67} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {3E374228-5084-4174-B919-0D9C85878A22} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {A13F8853-17D9-46CE-A179-65BAA8B4A969} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {180C5712-35E2-48CD-ACA1-8576260D2EFB} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {3A2B8C1D-C46D-48B4-827C-7771AB0992BB} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {A31279C2-23EC-425F-9B41-D27AC7781EDE} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {69B33D93-8553-4EF4-9D48-6E2A29B640DF} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {1E14D628-54AC-4576-ADE8-59CAE8472BE6} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {BA6548DC-9289-40C4-9658-09BE25A800FF} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {32B6E8D2-C447-4DD7-932C-5CEBD9F296B6} = {B3FD0936-ACF8-4F91-A5EF-0712D6567E6F} + {0DCD9AAE-F141-4FAD-8E87-1C610F0582DB} = {4E7316D4-035A-41FA-B070-7FCCE94E2D10} + {3B0A3D34-D926-4356-BE31-809055FE835A} = {4E7316D4-035A-41FA-B070-7FCCE94E2D10} + {89D763ED-3EA6-4303-AB29-3239095A4B06} = {DFFAFECB-52FB-4FB4-97B1-09703D672669} + {F39EA7BE-25C2-45ED-91AC-29647EFFAD2B} = {DFFAFECB-52FB-4FB4-97B1-09703D672669} + {D019B112-55A8-4661-AFF5-329F998D9E28} = {B02DEFA7-9B3E-4F83-A4E0-C3C49C3818EC} + {36ED6F21-1A8F-4F07-A08A-A55639891E9B} = {B02DEFA7-9B3E-4F83-A4E0-C3C49C3818EC} + {19E2FDA9-D7AC-4365-A25A-4BBCAF8BE7FD} = {26F33C5D-13F3-44E6-8FC3-A67C8D4BBC78} + {3FA3E0E2-5B25-4481-9B9E-4E7F8A888445} = {26F33C5D-13F3-44E6-8FC3-A67C8D4BBC78} + {84800565-B464-471D-8F02-1A93311C3388} = {64C3DC28-96BE-4C83-B62A-4AC394AC63F1} + {1ABD6365-E04D-4971-8D0D-5364C896113F} = {64C3DC28-96BE-4C83-B62A-4AC394AC63F1} + {4E04FEB2-B452-4739-8336-EA2CEFB18D87} = {1341D9FE-1CCB-439C-AD50-DC84DFE815FA} + {A6E317FA-2EB0-4447-8ECD-6725F6B78435} = {1341D9FE-1CCB-439C-AD50-DC84DFE815FA} + {CFBA4468-222F-4255-8D94-809ACBF7AC47} = {3E904983-4408-42B7-8F5A-AC82B9F77240} + {42F21CE5-C8D1-4083-937B-951B92C2F93C} = {3E904983-4408-42B7-8F5A-AC82B9F77240} + {57373D06-6B82-4EC6-AF62-ED25FE170C61} = {6C9DA552-D09B-4009-9B3B-4E431972325E} + {A854EB96-B28A-42FC-8209-3E5E9D6B208C} = {6C9DA552-D09B-4009-9B3B-4E431972325E} + {C982A6FE-6FD4-47FA-A69D-91FFA80FEDAA} = {1D24F2B2-7F1A-40C3-B325-005FDB02E222} + {380C028E-2623-4207-B8AF-F21B92183ED8} = {1D24F2B2-7F1A-40C3-B325-005FDB02E222} + {AD226A7F-0641-4589-93EB-06E5EE7E767B} = {73C92DFB-1BA5-472F-9885-754AA3A6A77A} + {6C3090FC-50D2-4A7E-9B29-EAB9D8802F42} = {73C92DFB-1BA5-472F-9885-754AA3A6A77A} + {CDDCCFAB-28B8-446C-8585-72D2BB78F2DC} = {A9022E15-C17D-4D86-A471-FF72B82098CC} + {62219AA6-9276-4935-B934-F0F50ECEF6FB} = {A9022E15-C17D-4D86-A471-FF72B82098CC} + {26C15DC0-73CA-46E3-AEBA-17353C59C2F3} = {7B573E88-8710-4CE6-8BAE-361B97F05926} + {D0BBF260-AD17-41BF-9E11-6EA0CC8308E1} = {7B573E88-8710-4CE6-8BAE-361B97F05926} + {74D9BDC7-7B46-456F-B3C5-A4CDB5D74D7B} = {5D030BDE-4EB4-4F8F-B783-E5A378B9DD67} + {8F5BE349-6D11-44AD-A1CC-B5BB5EB4B179} = {5D030BDE-4EB4-4F8F-B783-E5A378B9DD67} + {3D4116CE-63DD-406C-8235-0115A8FA90F1} = {3E374228-5084-4174-B919-0D9C85878A22} + {6367B304-3E18-4DA6-A7E7-0893DA806953} = {3E374228-5084-4174-B919-0D9C85878A22} + {85CB0215-96DF-4C38-A022-1BE6C952813B} = {A13F8853-17D9-46CE-A179-65BAA8B4A969} + {FDA06158-A81E-46B4-9F25-5AB76DFD400A} = {A13F8853-17D9-46CE-A179-65BAA8B4A969} + {1E1AB01B-F6AB-4420-BF1D-5E6EF41D76BF} = {180C5712-35E2-48CD-ACA1-8576260D2EFB} + {EE3E1E99-175F-4507-96DA-421FCD0F6D9E} = {180C5712-35E2-48CD-ACA1-8576260D2EFB} + {FA105E66-8756-4F57-8230-2A52BFEBDDC6} = {3A2B8C1D-C46D-48B4-827C-7771AB0992BB} + {E46B602A-287B-450F-B455-5EED20C93EB7} = {3A2B8C1D-C46D-48B4-827C-7771AB0992BB} + {990DB8CB-AAD6-42FE-940D-3A731DF56ABE} = {A31279C2-23EC-425F-9B41-D27AC7781EDE} + {1246A6D6-FB9D-4564-8E86-A9F14A7AD177} = {A31279C2-23EC-425F-9B41-D27AC7781EDE} + {5FB0ADC8-24C7-4B32-A4D2-AFA31B0BAAA7} = {69B33D93-8553-4EF4-9D48-6E2A29B640DF} + {E0E04964-F77E-435F-8B90-F4338C30DDAD} = {69B33D93-8553-4EF4-9D48-6E2A29B640DF} + {FBA67D4E-D81A-4B6E-A6FD-464A2A5AF9D5} = {1E14D628-54AC-4576-ADE8-59CAE8472BE6} + {14404298-4182-4D43-8098-5A199ED2FCAA} = {BA6548DC-9289-40C4-9658-09BE25A800FF} + {6B807AB1-F549-49CB-9F52-52BC33D23443} = {BA6548DC-9289-40C4-9658-09BE25A800FF} + {E8BF04AC-1A7D-4CBE-80B9-E20F53699F2D} = {32B6E8D2-C447-4DD7-932C-5CEBD9F296B6} + {D2638CB3-33D6-443F-BC87-E20260D3C9EF} = {32B6E8D2-C447-4DD7-932C-5CEBD9F296B6} + {30EF2DF0-6F6A-4D9C-ADF1-11985030849E} = {31DC7E45-FE4F-4CCD-9234-9FBD42F412C5} + {137776F2-F3F6-463C-9FF4-04F08F8789DF} = {31DC7E45-FE4F-4CCD-9234-9FBD42F412C5} + {722D6B74-78CB-4995-84E3-B0705C7DDA96} = {3A2B8C1D-C46D-48B4-827C-7771AB0992BB} + {40625AD3-D5D2-4CF0-8E3E-FD232A54A808} = {722D6B74-78CB-4995-84E3-B0705C7DDA96} + {579BA25F-1DF5-474A-8A3E-0447FF75711C} = {722D6B74-78CB-4995-84E3-B0705C7DDA96} + {4F56C030-D16B-4A51-82D0-3C23A47AB703} = {722D6B74-78CB-4995-84E3-B0705C7DDA96} EndGlobalSection EndGlobal diff --git a/Fr8Data/Constants/ActivityDirection.cs b/Fr8Data/Constants/ActivityDirection.cs deleted file mode 100644 index b7730fb3d8..0000000000 --- a/Fr8Data/Constants/ActivityDirection.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Constants -{ - public enum ActivityDirection - { - Up, - Down, - Both - } -} diff --git a/Fr8Data/Constants/ActivityErrorCode.cs b/Fr8Data/Constants/ActivityErrorCode.cs deleted file mode 100644 index 73db01ab89..0000000000 --- a/Fr8Data/Constants/ActivityErrorCode.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Constants -{ - public enum ActivityErrorCode - { - [Description("The terminal was passed a request that required a connection string, and it was not found.")] - SQL_SERVER_CONNECTION_STRING_MISSING = 10000, - [Description("The terminal was unable to connect with the provided database connection string.")] - SQL_SERVER_CONNECTION_FAILED, - PAYLOAD_DATA_MISSING, - PAYLOAD_DATA_INVALID, - AUTH_TOKEN_NOT_PROVIDED_OR_INVALID, - DESIGN_TIME_DATA_MISSING - } -} diff --git a/Fr8Data/Constants/ActivityExecutionMode.cs b/Fr8Data/Constants/ActivityExecutionMode.cs deleted file mode 100644 index 897174de89..0000000000 --- a/Fr8Data/Constants/ActivityExecutionMode.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Constants -{ - public enum ActivityExecutionMode - { - InitialRun = 0, - ReturnFromChildren = 1 - } -} diff --git a/Fr8Data/Constants/ActivityResponse.cs b/Fr8Data/Constants/ActivityResponse.cs deleted file mode 100644 index 78fed788b6..0000000000 --- a/Fr8Data/Constants/ActivityResponse.cs +++ /dev/null @@ -1,28 +0,0 @@ -namespace Fr8Data.Constants -{ - public enum ActivityResponse - { - Null = 0, - Success, - Error, - RequestTerminate, - RequestSuspend, - SkipChildren, - ReprocessChildren, - ExecuteClientActivity, - ShowDocumentation, - JumpToActivity, - JumpToSubplan, - LaunchAdditionalPlan, - - //new op codes - CallAndReturn, - Break, - } - - public enum PlanType - { - Monitoring, - RunOnce - } -} diff --git a/Fr8Data/Constants/FieldValidationResult.cs b/Fr8Data/Constants/FieldValidationResult.cs deleted file mode 100644 index fa75707f35..0000000000 --- a/Fr8Data/Constants/FieldValidationResult.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Constants -{ - public enum FieldValidationResult - { - Exists, - NotExists, - Failed - } -} diff --git a/Fr8Data/Constants/ManifestIdEnum.cs b/Fr8Data/Constants/ManifestIdEnum.cs deleted file mode 100644 index 985b3d5a91..0000000000 --- a/Fr8Data/Constants/ManifestIdEnum.cs +++ /dev/null @@ -1,133 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Constants -{ - public enum MT : int - { - [Display(Name = "Field Description")] - FieldDescription = 3, - - [Display(Name = "Dockyard Terminal Event or Incident Report")] - EventOrIncidentReport = 2, - - [Display(Name = "Standard Payload Keys")] - StandardPayloadKeys = 4, - - [Display(Name = "Standard Payload Data")] - StandardPayloadData = 5, - - [Display(Name = "Standard UI Controls")] - StandardConfigurationControls = 6, - - [Display(Name = "Standard Event Report")] - StandardEventReport = 7, - - [Display(Name = "Standard Event Subscription")] - StandardEventSubscription = 8, - - [Display(Name = "Standard Table Data")] - StandardTableData = 9, - - [Display(Name = "Standard File Handle")] - StandardFileHandle = 10, - - [Display(Name = "Standard Routing Directive")] - StandardRoutingDirective = 11, - - [Display(Name = "Standard Authentication")] - StandardAuthentication = 12, - - [Display(Name = "Standard Logging Crate")] - StandardLoggingCrate = 13, - - [Display(Name = "Logging Data")] - LoggingData = 10013, - - [Display(Name = "Docusign Event")] - DocuSignEvent = 14, - - [Display(Name = "Docusign Envelope")] - DocuSignEnvelope = 15, - - [Display(Name = "Standard Security Crate")] - StandardSecurityCrate = 16, - - [Display(Name = "Standard Query Crate")] - StandardQueryCrate = 17, - - [Display(Name = "Standard Email Message")] - StandardEmailMessage = 18, - - [Display(Name = "Standard Fr8 Plans")] - StandardFr8Plans = 19, - - [Display(Name = "Standard Fr8 Hubs")] - StandardFr8Hubs = 20, - - [Display(Name = "Standard Fr8 Containers")] - StandardFr8Containers = 21, - - [Display(Name = "Standard Parsing Record")] - StandardParsingRecord = 22, - - [Display(Name = "Standard Fr8 Terminal")] - StandardFr8Terminal = 23, - - [Display(Name = "Standard File List")] - StandardFileList = 24, - - [Display(Name = "Standard Accounting Transaction")] - StandardAccountTransaction = 25, - - [Display(Name = "Docusign Recipient")] - DocuSignRecipient = 26, - - [Display(Name = "Operational State")] - OperationalStatus = 27, - - [Display(Name = "Docusign Template")] - DocuSignTemplate = 28, - - [Display(Name = "Chart Of Accounts")] - ChartOfAccounts = 29, - - [Display(Name = "Manifest Description")] - ManifestDescription = 30, - - [Display(Name = "Crate Description")] - CrateDescription = 32, - - [Display(Name = "Typed Fields")] - TypedFields = 33, - - [Display(Name = "External Object Handles")] - ExternalObjectHandles = 34, - - [Display(Name = "Salesforce Event")] - SalesforceEvent = 35, - - [Display(Name = "Docusign Envelope v2")] - DocuSignEnvelope_v2 = 36, - - [Display(Name = "Standard Business Fact")] - StandardBusinessFact = 37, - - [Display(Name = "Plan Template")] - PlanTemplate = 38, - - [Display(Name = "Validation Results")] - ValidationResults = 39, - - [Display(Name = "Docusign Envelope v3")] - DocuSignEnvelope_v3 = 40, - - [Display(Name = "Advisory Messages")] - AdvisoryMessages = 41 - } -} - diff --git a/Fr8Data/Constants/Tags.cs b/Fr8Data/Constants/Tags.cs deleted file mode 100644 index f122a4bf28..0000000000 --- a/Fr8Data/Constants/Tags.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Fr8Data.Constants -{ - public static class Tags - { - public const string AggressiveReload = "AggressiveReload"; - - public const string EmailDeliverer = "Email Deliverer"; - - public const string HideChildren = "HideChildren"; - - public const string Internal = "internal"; - - public const string Notifier = "Notifier"; - - public const string SkipAtRuntime = "Skip At Run-Time"; - - public const string TableDataGenerator = "Table Data Generator"; - - public const string UsesReconfigureList = "UsesReconfigureList"; - } -} diff --git a/Fr8Data/Control/Control.cs b/Fr8Data/Control/Control.cs deleted file mode 100644 index 17f230b326..0000000000 --- a/Fr8Data/Control/Control.cs +++ /dev/null @@ -1,859 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Helpers; -using Fr8Data.Manifests; -using Fr8Data.States; -using Newtonsoft.Json; - -namespace Fr8Data.Control -{ - public class UpstreamData - { - public static readonly UpstreamData Value = new UpstreamData(); - - private UpstreamData() - { - } - } - - /// - /// This interface is applied to controls and control data items (e.g. radio buttons) - /// that support nested controls. - /// - public interface ISupportsNestedFields - { - IList Controls { get; } - } - - public interface IResettable - { - void Reset(List fieldNames = null); - } - - public class ControlTypes - { - public const string TextBox = "TextBox"; - public const string TextBoxBig = "TextBoxBig"; - public const string CheckBox = "CheckBox"; - public const string DropDownList = "DropDownList"; - public const string RadioButtonGroup = "RadioButtonGroup"; - public const string FilterPane = "FilterPane"; - public const string MappingPane = "MappingPane"; - public const string TextBlock = "TextBlock"; - public const string FilePicker = "FilePicker"; - public const string Routing = "Routing"; - public const string FieldList = "FieldList"; - public const string Button = "Button"; - public const string TextSource = "TextSource"; - public const string TextArea = "TextArea"; - public const string QueryBuilder = "QueryBuilder"; - public const string ManagePlan = "ManagePlan"; - public const string Duration = "Duration"; - public const string RunPlanButton = "RunPlanButton"; - public const string UpstreamDataChooser = "UpstreamDataChooser"; - public const string UpstreamFieldChooser = "UpstreamFieldChooser"; - public const string UpstreamCrateChooser = "UpstreamCrateChooser"; - public const string DatePicker = "DatePicker"; - public const string CrateChooser = "CrateChooser"; - public const string ContainerTransition = "ContainerTransition"; - public const string MetaControlContainer = "MetaControlContainer"; - public const string ControlList = "ControlList"; - public const string SelectData = "SelectData"; - public const string ExternalObjectChooser = "ExternalObjectChooser"; - public const string BuildMessageAppender = "BuildMessageAppender"; - } - - public class SelectData : ControlDefinitionDTO - { - public SelectData() - { - Type = ControlTypes.SelectData; - } - - [JsonProperty("activityTemplateId")] - public string ActivityTemplateId { get; set; } - - [JsonProperty("activityTemplateName")] - public string ActivityTemplateName { get; set; } - - [JsonProperty("subPlanId")] - public string SubPlanId { get; set; } - - [JsonProperty("externalObjectName")] - public string ExternalObjectName { get; set; } - } - - public class ExternalObjectChooser : ControlDefinitionDTO - { - public ExternalObjectChooser() - { - Type = ControlTypes.ExternalObjectChooser; - } - - [JsonProperty("activityTemplateId")] - public string ActivityTemplateId { get; set; } - - [JsonProperty("subPlanId")] - public string SubPlanId { get; set; } - - [JsonProperty("externalObjectName")] - public string ExternalObjectName { get; set; } - } - - public class CheckBox : ControlDefinitionDTO - { - public CheckBox() - { - Type = ControlTypes.CheckBox; - } - } - - public class RunPlanButton : ControlDefinitionDTO - { - public RunPlanButton() - { - Type = ControlTypes.RunPlanButton; - } - } - - public class DropDownList : ControlDefinitionDTO - { - [JsonProperty("listItems")] - public List ListItems { get; set; } - - [JsonProperty("selectedKey")] - public string selectedKey { get; set; } - - [JsonProperty("hasRefreshButton")] - public bool HasRefreshButton { get; set; } - - [JsonProperty("selectedItem")] - public FieldDTO SelectedItem { get; set; } - - public DropDownList() : base() - { - ListItems = new List(); - Type = "DropDownList"; - HasRefreshButton = false; - } - - public void SelectByKey(string key) - { - SelectItem(ListItems?.FirstOrDefault(x => x.Key == key)); - } - - public void SelectByValue(string value) - { - SelectItem(ListItems?.FirstOrDefault(x => x.Value == value)); - } - - private void SelectItem(ListItem newItem) - { - selectedKey = newItem?.Key; - Value = newItem?.Value; - } - } - - public class RadioButtonGroup : ControlDefinitionDTO, IContainerControl - { - [JsonProperty("groupName")] - public string GroupName { get; set; } - - [JsonProperty("radios")] - public List Radios { get; set; } - - public RadioButtonGroup() - { - Radios = new List(); - Type = ControlTypes.RadioButtonGroup; - } - - public IEnumerable EnumerateChildren() - { - return Radios; - } - } - - public class TextBox : ControlDefinitionDTO - { - public TextBox() - { - Type = ControlTypes.TextBox; - } - } - - public class DatePicker : ControlDefinitionDTO - { - public DatePicker() - { - Type = ControlTypes.DatePicker; - } - } - - public class QueryBuilder : ControlDefinitionDTO - { - public QueryBuilder() - { - Type = ControlTypes.QueryBuilder; - } - } - - public class ContainerTransition : ControlDefinitionDTO - { - [JsonProperty("transitions")] - public List Transitions { get; set; } - public ContainerTransition() - { - Type = ControlTypes.ContainerTransition; - this.Transitions = new List(); - } - } - - public class TextBoxMetaDescriptionDTO : ControlMetaDescriptionDTO - { - public TextBoxMetaDescriptionDTO() : base("TextBoxMetaDescriptionDTO", "TextBox") - { - // this.Controls.Add(new TextBox { }); - } - - public override ControlDefinitionDTO CreateControl() - { - return new TextBox() - { - Label = this.Controls.First().Value - }; - } - } - - public class TextBlockMetaDescriptionDTO : ControlMetaDescriptionDTO - { - public TextBlockMetaDescriptionDTO() : base("TextBlockMetaDescriptionDTO", "TextBlock") - { - // this.Controls.Add(new TextArea()); - } - - public override ControlDefinitionDTO CreateControl() - { - return new TextBlock() - { - Value = this.Controls.First().Value - }; - } - } - - public class FilePickerMetaDescriptionDTO : ControlMetaDescriptionDTO - { - public static string[] FileExtensions = { "xlsx" }; - public FilePickerMetaDescriptionDTO() : base("FilePickerMetaDescriptionDTO", "File Picker") - { - /* - this.Controls.Add(new TextBox()); - this.Controls.Add(new DropDownList() { ListItems = FileExtensions.Select(x => new ListItem { Key = x, Value = x}).ToList()}); - */ - } - - public override ControlDefinitionDTO CreateControl() - { - return new FilePicker - { - Label = this.Controls.First().Value - }; - } - } - - public class SelectDataMetaDescriptionDTO : ControlMetaDescriptionDTO - { - public SelectDataMetaDescriptionDTO() - : base("SelectDataMetaDescriptionDTO", "Select Data") - { - } - - public override ControlDefinitionDTO CreateControl() - { - return new ExternalObjectChooser - { - Label = this.Controls[0].Value, - Name = "SelectData", - ActivityTemplateId = ((SelectData)this.Controls[1]).ActivityTemplateId - }; - } - } - - - [JsonConverter(typeof(ControlMetaDescriptionDTOConverter))] - public class ControlMetaDescriptionDTO - { - [JsonProperty("controls")] - public List Controls { get; set; } - - [JsonProperty("description")] - public string Description { get; set; } - - [JsonProperty("type")] - public string Type { get; set; } - - public ControlMetaDescriptionDTO(string type, string description) - { - this.Type = type; - this.Description = description; - Controls = new List(); - } - - public virtual ControlDefinitionDTO CreateControl() - { - throw new NotImplementedException(); - } - } - - public class MetaControlContainer : ControlDefinitionDTO - { - [JsonProperty("metaDescriptions")] - [ForcePropertySync] - public List MetaDescriptions { get; set; } - - public MetaControlContainer() : base(ControlTypes.MetaControlContainer) - { - MetaDescriptions = new List(); - } - - public List CreateControls() - { - return MetaDescriptions.Select(m => m.CreateControl()).ToList(); - } - } - - public class FilterPane : ControlDefinitionDTO - { - [JsonProperty("fields")] - public List Fields { get; set; } - - public FilterPane() - { - Type = ControlTypes.FilterPane; - } - } - - public class MappingPane : ControlDefinitionDTO - { - public MappingPane() - { - Type = ControlTypes.MappingPane; - } - } - - public class Generic : ControlDefinitionDTO - { - public Generic() - { - Type = ControlTypes.TextBox; // Yes, default to TextBox - } - } - - public class TextBoxBig : ControlDefinitionDTO - { - public TextBoxBig() - { - Type = ControlTypes.TextBoxBig; // Text box with multilines - } - } - - public class TextArea : ControlDefinitionDTO - { - [JsonProperty("isReadOnly")] - public bool IsReadOnly { get; set; } - - public TextArea() : - base(ControlTypes.TextArea) - { - } - } - - public class TextBlock : ControlDefinitionDTO - { - [JsonProperty("class")] - public string CssClass - { - get; - set; - } - - public TextBlock() - { - Type = ControlTypes.TextBlock; - } - } - - public class FilePicker : ControlDefinitionDTO - { - public FilePicker() - { - Type = ControlTypes.FilePicker; - } - } - - public class FieldList : ControlDefinitionDTO - { - public FieldList() - { - Type = ControlTypes.FieldList; - } - - public override void Reset(List fieldNames) - { - if (fieldNames != null) - { - //key-value pairs are immutable, we need to crate a new List - var newList = new List>(); - var keyValuePairs = JsonConvert.DeserializeObject>>(Value); - foreach (var keyValuePair in keyValuePairs) - { - if (fieldNames.Any(n => n == keyValuePair.Key)) - { - newList.Add(new KeyValuePair(keyValuePair.Key, "")); - } - else - { - newList.Add(keyValuePair); - } - } - Value = JsonConvert.SerializeObject(newList); - } - else - { - Value = "[]"; - } - } - } - - public class TextSource : DropDownList - { - public const string SpecificValueSource = "specific"; - - public const string UpstreamValueSrouce = "upstream"; - - [JsonProperty("initialLabel")] - public string InitialLabel; - - [JsonProperty("upstreamSourceLabel")] - public string UpstreamSourceLabel; - - [JsonProperty("textValue")] - public string TextValue; - - [JsonProperty("valueSource")] - public string ValueSource; - - [JsonIgnore] - public FieldDTO UpstreamField => SelectedItem; - - public TextSource() - { - Type = ControlTypes.TextSource; - } - - public TextSource(string initialLabel, string upstreamSourceLabel, string name) : this() - { - InitialLabel = initialLabel; - Name = name; - Source = new FieldSourceDTO - { - Label = upstreamSourceLabel, - ManifestType = CrateManifestTypes.StandardDesignTimeFields - }; - } - - public string GetValue(ICrateStorage payloadCrateStorage) - { - switch (ValueSource) - { - case null: - case SpecificValueSource: - return TextValue; - case UpstreamValueSrouce: - if (payloadCrateStorage == null) - { - throw new Exception("Can't resolve upstream value without payload crate storage provided"); - } - //This is for backward compatibility as controls in existing activites may not be reconfigured to use full field information - if (SelectedItem == null) - { - return payloadCrateStorage.FindField(this.selectedKey); - } - return payloadCrateStorage.FindField(SelectedItem); - default: - return null; - } - } - - public bool CanGetValue(ICrateStorage payloadCrateStorage) - { - if (HasSpecificValue) - { - return true; - } - - if (ValueSource == UpstreamValueSrouce && payloadCrateStorage == null) - { - return false; - } - - return true; - } - - public bool HasValue => !string.IsNullOrEmpty(ValueSource) && (HasUpstreamValue || HasSpecificValue); - public bool HasUpstreamValue => ValueSource == UpstreamValueSrouce && !string.IsNullOrEmpty(Value); - public bool HasSpecificValue => ValueSource == SpecificValueSource && !string.IsNullOrEmpty(TextValue); - public bool ValueSourceIsNotSet => string.IsNullOrEmpty(ValueSource); - } - - public class Button : ControlDefinitionDTO - { - [JsonProperty("class")] - public string CssClass; - - /// - /// Where the button was clicked before the current /configure request was sent. - /// Used to recognize 'click' event on server-side. - /// - [JsonProperty("clicked")] - public bool Clicked; - - public Button() - { - Type = ControlTypes.Button; - } - } - - public class Duration : ControlDefinitionDTO - { - public Duration() - { - Type = ControlTypes.Duration; - InnerLabel = "Choose duration:"; - } - - [JsonProperty("value")] - public new TimeSpan Value - { - get - { - return new TimeSpan(this.Days, this.Hours, this.Minutes, 0); - } - } - - [JsonProperty("innerLabel")] - public string InnerLabel { get; set; } - - [JsonProperty("days")] - public Int32 Days { get; set; } - - [JsonProperty("hours")] - public Int32 Hours { get; set; } - - [JsonProperty("minutes")] - public Int32 Minutes { get; set; } - - } - - - - - public class FieldSourceDTO - { - [JsonProperty("manifestType")] - public string ManifestType { get; set; } - - [JsonProperty("label")] - public string Label { get; set; } - - [JsonProperty("filterByTag")] - public string FilterByTag { get; set; } - - [JsonProperty("requestUpstream")] - public bool RequestUpstream { get; set; } - - [JsonProperty("availabilityType")] - public AvailabilityType AvailabilityType { get; set; } - - public FieldSourceDTO() - { - } - - public FieldSourceDTO(string manifestType, string label) - { - ManifestType = manifestType; - Label = label; - } - } - - public class ControlEvent - { - public static ControlEvent RequestConfig - { - get - { - return new ControlEvent("onChange", "requestConfig"); - } - } - - public static ControlEvent RequestConfigOnClick - { - get - { - return new ControlEvent("onClick", "requestConfig"); - } - } - - [JsonProperty("name")] - public string Name { get; set; } - [JsonProperty("handler")] - public string Handler { get; set; } - - public ControlEvent(string name, string handler) - { - Name = name; - Handler = handler; - } - - public ControlEvent() - { - } - } - - public class ControlList : ControlDefinitionDTO - { - [JsonProperty("controlGroups")] - [ForcePropertySync] - public IList> ControlGroups { get; } - - [JsonProperty("templateContainer")] - public ListTemplate TemplateContainer { get; set; } - - [JsonProperty("addControlGroupButtonText")] - public string AddControlGroupButtonText { get; set; } - [JsonProperty("noDataMessage")] - public string NoDataMessage { get; set; } - - public ControlList() - { - ControlGroups = new List>(); - Type = ControlTypes.ControlList; - } - - public ControlList(ListTemplate Template) : this() - { - this.TemplateContainer = Template; - } - } - - public class ListTemplate : IContainerControl, IControlDefinition - { - [JsonProperty("template")] - public IList Template { get; } - [JsonProperty("name")] - public string Name { get; set; } - - public ListTemplate() - { - Template = new List(); - } - - public IEnumerable EnumerateChildren() - { - return Template; - } - } - - public class RadioButtonOption : ISupportsNestedFields, IContainerControl, IControlDefinition - { - public RadioButtonOption() - { - Controls = new List(); - } - - [JsonProperty("selected")] - public bool Selected { get; set; } - - [JsonProperty("name")] - public string Name { get; set; } - - [JsonProperty("value")] - public string Value { get; set; } - - [JsonProperty("controls")] - public IList Controls { get; set; } - - public IEnumerable EnumerateChildren() - { - return Controls; - } - } - - public enum ContainerTransitions - { - JumpToActivity = 0, - LaunchAdditionalPlan, - JumpToSubplan, - StopProcessing, - SuspendProcessing, - ProceedToNextActivity - } - - public class ContainerTransitionField - { - [JsonProperty("conditions")] - public List Conditions { get; set; } - - [JsonProperty("transition")] - public ContainerTransitions Transition { get; set; } - - [JsonProperty("targetNodeId")] - public Guid? TargetNodeId; - } - - public class FilterPaneField - { - [JsonProperty("key")] - public string Key { get; set; } - - [JsonProperty("name")] - public string Name { get; set; } - } - - public class ListItem - { - [JsonProperty("selected")] - public bool Selected { get; set; } - - [JsonProperty("key")] - public string Key { get; set; } - - [JsonProperty("value")] - public string Value { get; set; } - } - - public class UpstreamDataChooser : ControlDefinitionDTO - { - public UpstreamDataChooser() - { - Type = ControlTypes.UpstreamDataChooser; - } - - [JsonProperty("selectedManifest")] - public string SelectedManifest { get; set; } - - [JsonProperty("selectedLabel")] - public string SelectedLabel { get; set; } - - [JsonProperty("selectedFieldType")] - public string SelectedFieldType { get; set; } - } - - public class CrateDetails - { - [JsonProperty("manifestType")] - public DropDownList ManifestType { get; set; } - - [JsonProperty("label")] - public DropDownList Label { get; set; } - } - - public class UpstreamCrateChooser : ControlDefinitionDTO - { - public UpstreamCrateChooser() - { - Type = ControlTypes.UpstreamCrateChooser; - } - - [JsonProperty("selectedCrates")] - public List SelectedCrates { get; set; } = new List(); - - [JsonProperty("multiSelection")] - public bool MultiSelection { get; set; } - - } - - public class CrateChooser : ControlDefinitionDTO - { - public CrateChooser() - { - Type = ControlTypes.CrateChooser; - } - - [JsonProperty("crateDescriptions")] - public List CrateDescriptions { get; set; } - - [JsonProperty("singleManifestOnly")] - public bool SingleManifestOnly { get; set; } - - [JsonProperty("requestUpstream")] - public bool RequestUpstream { get; set; } - - [JsonIgnore] - public bool HasValue - { - get { return CrateDescriptions != null && CrateDescriptions.Any(x => x.Selected); } - } - - public bool CanGetValue(ICrateStorage crateStorage) - { - return crateStorage != null; - } - - public Crate GetValue(ICrateStorage crateStorage) - { - var selectedCrate = CrateDescriptions?.FirstOrDefault(x => x.Selected); - - if (selectedCrate == null) - { - return null; - } - - return crateStorage.FirstOrDefault(x => x.Label == selectedCrate.Label && x.ManifestType.Type == selectedCrate.ManifestType); - } - } - - public class UpstreamFieldChooser : ControlDefinitionDTO - { - public UpstreamFieldChooser() - { - Type = ControlTypes.UpstreamFieldChooser; - } - } - - public class DocumentationDTO - { - public DocumentationDTO(string displayMechanism, string contentPath) - { - this.DisplayMechanism = displayMechanism; - this.ContentPath = contentPath; - } - - [JsonProperty("displayMechanism")] - public string DisplayMechanism { get; set; } - - [JsonProperty("contentPath")] - public string ContentPath { get; set; } - - [JsonProperty("url")] - public string URL - { - get - { - if (string.IsNullOrEmpty(ContentPath)) - return "/activites/documentation"; - return string.Format("/activites/documentation/{0}", ContentPath); - } - } - } - public class BuildMessageAppender : TextArea - { - public BuildMessageAppender() - { - Type = ControlTypes.BuildMessageAppender; - } - } -} \ No newline at end of file diff --git a/Fr8Data/Control/ControlExtensions.cs b/Fr8Data/Control/ControlExtensions.cs deleted file mode 100644 index 94afb6d156..0000000000 --- a/Fr8Data/Control/ControlExtensions.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Control -{ - public static class DataExtensions - { - public static IEnumerable ToListItems(this IEnumerable fields) - { - return fields.Select(x => new ListItem() { Key = x.Key, Value = x.Value }); - } - } -} diff --git a/Fr8Data/Crates/Crate.cs b/Fr8Data/Crates/Crate.cs deleted file mode 100644 index 1019d9cbf4..0000000000 --- a/Fr8Data/Crates/Crate.cs +++ /dev/null @@ -1,287 +0,0 @@ -using System; -using Fr8Data.Manifests; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using Fr8Data.States; - -namespace Fr8Data.Crates -{ - [JsonConverter(typeof(DenySerializationConverter), "Crate can't be directly serialized to JSON. Convert it to CrateDTO.")] - public class Crate - { - /**********************************************************************************/ - // Declarations - /**********************************************************************************/ - - private readonly CrateManifestType _manifestType; - protected object KnownContent; - private JToken _rawContent; - - /**********************************************************************************/ - - public readonly string Id; - - /**********************************************************************************/ - - public string Label { get; set; } - - public string SourceActivityId { get; set; } - - public AvailabilityType Availability { get; set; } - - /**********************************************************************************/ - /// - /// Returns if crate's content is belong to registered manifest types - /// - public bool IsKnownManifest - { - get { return KnownContent != null; } - } - - /**********************************************************************************/ - - public CrateManifestType ManifestType - { - get { return _manifestType; } - } - - /**********************************************************************************/ - // Functions - /**********************************************************************************/ - /// - /// Crate new crate with specified manifest type and Id. - /// - /// - /// - public Crate(CrateManifestType manifestType, string id) - { - _manifestType = manifestType; - Id = id; - } - - /// - /// Crate new crate with specified manifest type, Id and availability. - /// - /// - /// - /// Crate availability - public Crate(CrateManifestType manifestType, string id, AvailabilityType availability) - { - _manifestType = manifestType; - Id = id; - Availability = availability; - } - /**********************************************************************************/ - /// - /// Crate new crate with specified manifest type and autogenerated Id - /// - /// - public Crate(CrateManifestType manifestType) - { - _manifestType = manifestType; - Id = Guid.NewGuid().ToString(); - } - - /**********************************************************************************/ - /// - /// Create new create from content. Manifest type is deduced from the content. - /// There is no compile-time checks for content's correctness. If manifest type can't be deduced from the content, then run-time error will be throwm. - /// - /// - /// - public static Crate FromContentUnsafe(object content) - { - return new Crate(GetManifest(content)) - { - KnownContent = content - }; - } - - /**********************************************************************************/ - /// - /// Create new create from content. Manifest type is deduced from the content. This method guaranties than manifest type can be correctly deduced - /// - /// - /// - /// - public static Crate FromContent(string label, Manifest content, AvailabilityType availability = AvailabilityType.NotSet) - { - return new Crate(GetManifest(content)) - { - Label = label, - KnownContent = content, - Availability = availability - }; - } - - /**********************************************************************************/ - /// - /// Create new create from content. Manifest type is deduced from the content. This method guaranties than manifest type can be correctly deduced - /// - /// - /// - /// - public static Crate FromContent(string label, T content) - { - return Crate.FromContent(label, content); - } - - /**********************************************************************************/ - /// - /// Create new create from content. Manifest type is deduced from the content. - /// There is no compile-time checks for content's correctness. If manifest type can't be deduced from the content, then run-time error will be throwm. - /// - /// - /// - /// - public static Crate FromContentUnsafe(string label, object content, AvailabilityType availability = AvailabilityType.NotSet) - { - return new Crate(GetManifest(content)) - { - Label = label, - KnownContent = content, - Availability = availability - }; - } - - /**********************************************************************************/ - /// - /// Create new crate from JSON with unknown manifest type. - /// - /// - /// - /// - public static Crate FromJson(string label, JToken content) - { - return new Crate(CrateManifestType.Unknown) - { - Label = label, - _rawContent = content - }; - } - - /**********************************************************************************/ - /// - /// Create new crate from JSON with specified manifest tyype. - /// - /// - /// - /// - public static Crate FromJson(CrateManifestType manifestType, JToken content) - { - return new Crate(manifestType) - { - _rawContent = content - }; - } - - /**********************************************************************************/ - - internal static Crate FromJson(CrateManifestType manifestType, string id, JToken content) - { - return new Crate(manifestType, id) - { - _rawContent = content - }; - } - - /**********************************************************************************/ - - internal static Crate FromContent(object content, string id) - { - return new Crate(GetManifest(content), id) - { - KnownContent = content - }; - } - - - /**********************************************************************************/ - /// - /// Put content into the crate. This method performs run-time check for content's manifest type correctness - /// - /// - public void Put(object content) - { - if (GetManifest(content) != ManifestType) - { - throw new ArgumentException("Content manifest is not compatible with crate manifest", "content"); - } - - KnownContent = content; - _rawContent = null; - } - - /**********************************************************************************/ - /// - /// Returns JSON content of the crate if any. - /// - /// - public JToken GetRaw() - { - return _rawContent; - } - - /**********************************************************************************/ - /// - /// Check if the crate's manifest type is compatible with given Manifest - /// - /// Type of mainifest - /// - public bool IsOfType() - { - CrateManifestType manifestType; - - if (!ManifestTypeCache.TryResolveManifest(typeof(T), out manifestType)) - { - return false; - } - - return ManifestType == manifestType; - } - - /**********************************************************************************/ - /// - /// Return crate's content - /// - /// - /// - public T Get() - { - return (T)KnownContent; - } - - /**********************************************************************************/ - /// - /// Return crate's content - /// - /// - public object Get() - { - return KnownContent; - } - - /**********************************************************************************/ - - public override string ToString() - { - return string.Format("{1} [{0}]", Id, Label); - } - - /**********************************************************************************/ - - private static CrateManifestType GetManifest(object content) - { - CrateManifestType manifestType; - - if (!ManifestTypeCache.TryResolveManifest(content, out manifestType)) - { - throw new ArgumentException("Content is not marked with CrateManifestAttribute", "content"); - } - - return manifestType; - } - - /**********************************************************************************/ - } -} \ No newline at end of file diff --git a/Fr8Data/Crates/CrateManifestAttribute.cs b/Fr8Data/Crates/CrateManifestAttribute.cs deleted file mode 100644 index 6875f74a77..0000000000 --- a/Fr8Data/Crates/CrateManifestAttribute.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; - -namespace Fr8Data.Crates -{ - /// - /// Use this attribute to specife crate manifest type. This is the alternative to deriving crate's manifest from Manifest base class. - /// - public class CrateManifestTypeAttribute : Attribute - { - public readonly CrateManifestType ManifestType; - - public CrateManifestTypeAttribute(object manifestId) - { - ManifestType = CrateManifestType.FromEnum((Enum)manifestId); - } - - public CrateManifestTypeAttribute(int manifestId, string manifestTypeName) - { - ManifestType = new CrateManifestType(manifestTypeName, manifestId); - } - } - - /// - /// Use this attribute to specify custom serializer for crate manifest. - /// - public class CrateManifestSerializerAttribute : Attribute - { - public readonly Type Serializer; - - /// - /// - /// - /// Serializer type. Must implement IManifestSerializer - public CrateManifestSerializerAttribute(Type serializer) - { - Serializer = serializer; - } - } -} \ No newline at end of file diff --git a/Fr8Data/Crates/CrateManifestType.cs b/Fr8Data/Crates/CrateManifestType.cs deleted file mode 100644 index 36f2d3b99b..0000000000 --- a/Fr8Data/Crates/CrateManifestType.cs +++ /dev/null @@ -1,117 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; - -namespace Fr8Data.Crates -{ - public struct CrateManifestType - { - /**********************************************************************************/ - // Declarations - /**********************************************************************************/ - - public static readonly CrateManifestType Unknown = new CrateManifestType(null, 0); - public static readonly CrateManifestType Any = new CrateManifestType(null, Int32.MinValue); - - /**********************************************************************************/ - - public readonly string Type; - public readonly int Id; - - /**********************************************************************************/ - // Functions - /**********************************************************************************/ - - public CrateManifestType(string type, int id) - { - Type = type; - Id = id; - } - - - /**********************************************************************************/ - - public static CrateManifestType FromEnum(Enum manifestType) - { - var enumType = manifestType.GetType(); - var member = enumType.GetMember(manifestType.ToString()); - - if (Enum.GetUnderlyingType(enumType) != typeof (int)) - { - throw new ArgumentException("Only integer enum are supported", "manifestType"); - } - - if (member.Length == 0) - { - throw new ArgumentException("Invalid value for manifest type", "manifestType"); - } - - var crateManifesetAttr = (CrateManifestTypeDescriptionAttribute) member[0].GetCustomAttribute(typeof (CrateManifestTypeDescriptionAttribute)); - - if (crateManifesetAttr == null) - { - throw new ArgumentException(string.Format("Manifest type {0} doesn't have CrateManifestTypeDescription attribute set.", manifestType), "manifestType"); - } - - return new CrateManifestType(crateManifesetAttr.TypeName, Convert.ToInt32(manifestType)); - } - - /**********************************************************************************/ - - public override string ToString() - { - return string.Format("{0} ({1})", Type, Id); - } - - /**********************************************************************************/ - - public bool Equals(CrateManifestType other) - { - if (Id == other.Id) - { - return true; - } - - if (Id == Unknown.Id || other.Id == Unknown.Id) - { - return false; - } - - return Id == Any.Id || other.Id == Any.Id; - } - - /**********************************************************************************/ - - public override bool Equals(object obj) - { - if (ReferenceEquals(null, obj)) return false; - return obj is CrateManifestType && Equals((CrateManifestType) obj); - } - - /**********************************************************************************/ - - public override int GetHashCode() - { - unchecked - { - return /*((Type != null ? Type.GetHashCode() : 0)*397) ^*/ Id; - } - } - - /**********************************************************************************/ - - public static bool operator ==(CrateManifestType first, CrateManifestType second) - { - return first.Equals(second); - } - - /**********************************************************************************/ - - public static bool operator !=(CrateManifestType first, CrateManifestType second) - { - return !first.Equals(second); - } - - /**********************************************************************************/ - } -} \ No newline at end of file diff --git a/Fr8Data/Crates/CrateManifestTypeDescriptionAttribute.cs b/Fr8Data/Crates/CrateManifestTypeDescriptionAttribute.cs deleted file mode 100644 index af77bfef4d..0000000000 --- a/Fr8Data/Crates/CrateManifestTypeDescriptionAttribute.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; - -namespace Fr8Data.Crates -{ - [AttributeUsage(AttributeTargets.Field)] - public class CrateManifestTypeDescriptionAttribute : Attribute - { - public readonly string TypeName; - - public CrateManifestTypeDescriptionAttribute(string typeName) - { - TypeName = typeName; - } - } -} \ No newline at end of file diff --git a/Fr8Data/Crates/CrateStorage.cs b/Fr8Data/Crates/CrateStorage.cs deleted file mode 100644 index d1c5c51b7f..0000000000 --- a/Fr8Data/Crates/CrateStorage.cs +++ /dev/null @@ -1,159 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using Newtonsoft.Json; - -namespace Fr8Data.Crates -{ - [JsonConverter(typeof(DenySerializationConverter), "CrateStorage can't be directly serialized to JSON. Convert it to CrateStorageDTO.")] - public class CrateStorage : ICrateStorage - { - /**********************************************************************************/ - // Declarations - /**********************************************************************************/ - - private readonly Dictionary _crates = new Dictionary(); - - /**********************************************************************************/ - - public int Count - { - get { return _crates.Count; } - } - - /**********************************************************************************/ - /// - /// Get crate by id. - /// Property getter will fail if there is no such crate. - /// - /// - /// - public Crate this[string key] - { - get { return _crates[key]; } - set { _crates[key] = value; } - } - - /**********************************************************************************/ - // Functions - /**********************************************************************************/ - - public CrateStorage() - { - } - - /**********************************************************************************/ - - public CrateStorage(params Crate[] crates) - : this((IEnumerable)crates) - { - } - - /**********************************************************************************/ - - public CrateStorage(IEnumerable crates) - { - foreach (var crate in crates) - { - _crates.Add(crate.Id, crate); - } - } - - /**********************************************************************************/ - /// - /// Add new crate to storage - /// - /// - public void Add(Crate crate) - { - _crates.Add(crate.Id, crate); - } - - public void Add(params Crate[] crates) - { - foreach (var crate in crates) - { - _crates.Add(crate.Id, crate); - } - } - - /**********************************************************************************/ - /// - /// Removes all crates from storage - /// - public void Clear() - { - _crates.Clear(); - } - - /**********************************************************************************/ - /// - /// Remove all crates that complies with the predicate - /// - /// - /// - public int Remove(Predicate predicate) - { - int affectedItems = 0; - - foreach (var key in _crates.Keys.ToArray()) - { - if (predicate(_crates[key])) - { - affectedItems++; - _crates.Remove(key); - } - } - - return affectedItems; - } - - /**********************************************************************************/ - /// - /// Replaces all crates that have label mathching to passed predicate with passed crate - /// - /// - public int Replace(Predicate predicate, Crate crate) - { - int affected_items = 0; - - foreach (var key in _crates.Keys.ToArray()) - { - if (predicate(_crates[key])) - { - _crates.Remove(key); - affected_items++; - } - } - - Add(crate); - return affected_items; - } - - /**********************************************************************************/ - - public IEnumerator GetEnumerator() - { - return _crates.Values.GetEnumerator(); - } - - /**********************************************************************************/ - - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable)_crates).GetEnumerator(); - } - - /**********************************************************************************/ - - public CrateManifestType GetManifestType() - { - CrateManifestType manifestType; - ManifestTypeCache.TryResolveManifest(typeof (T), out manifestType); - return manifestType; - } - - /**********************************************************************************/ - } -} diff --git a/Fr8Data/Crates/CrateStorageExtensions.cs b/Fr8Data/Crates/CrateStorageExtensions.cs deleted file mode 100644 index 62c1c7a7cf..0000000000 --- a/Fr8Data/Crates/CrateStorageExtensions.cs +++ /dev/null @@ -1,292 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Fr8Data.Crates -{ - public static class CrateStorageExtensions - { - /**********************************************************************************/ - - public static Crate Add(this ICrateStorage storage, string label, T content) - { - var crate = Crate.FromContent(label, content); - - storage.Add(crate); - - return crate; - } - - /**********************************************************************************/ - /// - /// Add collection of crates to storage - /// - /// - public static void AddRange(this ICrateStorage storage, IEnumerable crates) - { - foreach (var crate in crates) - { - storage.Add(crate); - } - } - - /**********************************************************************************/ - /// - /// Returns first crate that complies with the predicate and with content of the given type. - /// This method will fail if no such crates exists - /// - /// - /// - /// - public static Crate FirstCrate(this ICrateStorage storage, Predicate predicate) - { - return storage.CratesOfType(predicate).First(); - } - - /**********************************************************************************/ - /// - /// Returns first crate of the given type. - /// This method will fail if no such crates exists - /// - /// - /// - /// - public static Crate FirstCrate(this ICrateStorage storage) - { - return storage.CratesOfType().First(); - } - - /**********************************************************************************/ - /// - /// Returns first crate that complies with the predicate and with content of the given type. - /// This method will return NULL if no such crates exists - /// - /// - /// - /// - public static Crate FirstCrateOrDefault(this ICrateStorage storage, Predicate predicate) - { - return storage.CratesOfType(predicate).FirstOrDefault(); - } - - /// - /// Returns first crate with content of the given type. - /// This method will return NULL if no such crates exists - /// - /// - /// - /// - public static Crate FirstCrateOrDefault(this ICrateStorage storage) - { - return storage.CratesOfType().FirstOrDefault(); - } - - /**********************************************************************************/ - /// - /// Returns all crates with content of the given type - /// - /// - /// - public static IEnumerable> CratesOfType(this ICrateStorage storage) - { - return storage.CratesOfType(null); - } - - /**********************************************************************************/ - /// - /// Returns all crates that complies with the predicate and with content of the give type. - /// - /// - /// - /// - public static IEnumerable> CratesOfType(this ICrateStorage storage, Predicate predicate) - { - CrateManifestType manifestType; - - if (!ManifestTypeCache.TryResolveManifest(typeof(T), out manifestType)) - { - yield break; - } - - foreach (var crate in storage) - { - if (crate.ManifestType == manifestType && (predicate == null || predicate(crate))) - { - yield return new Crate(crate); - } - } - } - - /**********************************************************************************/ - /// - /// Returns all crates content of the given type. - /// - /// - /// - public static IEnumerable CrateContentsOfType(this ICrateStorage storage) - { - return storage.CratesOfType().Select(x => x.Get()); - } - - /**********************************************************************************/ - /// - /// Returns all crates content that complies with the predicate and with content of the give type. - /// - /// - /// - /// - public static IEnumerable CrateContentsOfType(this ICrateStorage storage, Predicate predicate) - { - return storage.CratesOfType().Where(x => predicate(x)).Select(x => x.Get()); - } - - /**********************************************************************************/ - /// - /// Find content of given type among all crates in the storage - /// - /// - /// - /// - public static bool TryGetValue(this ICrateStorage storage, out T crateContent) - { - return storage.TryGetValue(x => true, out crateContent); - } - - /**********************************************************************************/ - /// - /// Find content of given type among all crates that complies with the predicate - /// - /// - /// - /// - /// - public static bool TryGetValue(this ICrateStorage storage, Predicate predicate, out T crateContent) - { - CrateManifestType manifestType; - - if (!ManifestTypeCache.TryResolveManifest(typeof(T), out manifestType)) - { - crateContent = default(T); - return false; - } - - foreach (var crate in storage) - { - if (crate.ManifestType == manifestType && predicate(crate)) - { - crateContent = crate.Get(); - return true; - } - } - - crateContent = default(T); - return false; - } - - /**********************************************************************************/ - /// - /// Remove all crates that complies with the predicate - /// - /// - /// - public static int RemoveUsingPredicate(this ICrateStorage storage, Predicate predicate) - { - return storage.Remove(predicate); - } - - /**********************************************************************************/ - /// - /// Remove all crates with the content of given type - /// - /// - /// - public static int Remove(this ICrateStorage storage) - { - CrateManifestType manifestType; - if (!ManifestTypeCache.TryResolveManifest(typeof(T), out manifestType)) - { - return 0; - } - - return storage.Remove(x => x.ManifestType == manifestType); - } - - /**********************************************************************************/ - /// - /// Remove all crates with the content of given type - /// - /// - /// - public static T GetOrAdd(this ICrateStorage storage, Func> createNewCrate) - { - var exising = storage.CrateContentsOfType().FirstOrDefault(); - - if (exising == null) - { - var newCrate = createNewCrate(); - - storage.Add(newCrate); - - return newCrate.Content; - } - - return exising; - } - - /**********************************************************************************/ - /// - /// Remove all crates by the manifest id - /// - /// - /// - public static int RemoveByManifestId(this ICrateStorage storage, int manifestId) - { - return storage.Remove(x => x.ManifestType.Id == manifestId); - } - - /**********************************************************************************/ - /// - /// Remove all crates by the label - /// - /// - /// - public static int RemoveByLabel(this ICrateStorage storage, string label) - { - return storage.Remove(x => x.Label == label); - } - - /**********************************************************************************/ - /// - /// Remove all crates by the label prefix - /// - /// E.g. "Data from: " that is used in Get_Google_Sheet_Data - /// - public static int RemoveByLabelPrefix(this ICrateStorage storage, string labelPrefix) - { - return storage.Remove(x => x.Label.StartsWith(labelPrefix)); - } - - /**********************************************************************************/ - /// - /// Replaces all crates that have label mathching to passed crate label with passed crate - /// - /// - public static int ReplaceByLabel(this ICrateStorage storage, Crate crate) - { - var predicate = new Predicate(x => x.Label == crate.Label); - - return storage.Replace(predicate, crate); - } - - /**********************************************************************************/ - /// - /// Removes the crate. Crate is removed by Id. - /// - /// - /// - public static bool Remove(this ICrateStorage storage, Crate crate) - { - return storage.Remove(x => x.Id == crate.Id) != 0; - } - } -} \ No newline at end of file diff --git a/Fr8Data/Crates/CrateStorageSerializer.DefaultSerializer.cs b/Fr8Data/Crates/CrateStorageSerializer.DefaultSerializer.cs deleted file mode 100644 index 96d1b55375..0000000000 --- a/Fr8Data/Crates/CrateStorageSerializer.DefaultSerializer.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; - -namespace Fr8Data.Crates -{ - partial class CrateStorageSerializer - { - class DefaultSerializer : IManifestSerializer - { - private readonly Type _targetType; - - private static readonly JsonSerializer Serializer = JsonSerializer.Create(new JsonSerializerSettings - { - ReferenceLoopHandling = ReferenceLoopHandling.Ignore - }); - - public DefaultSerializer(Type targetType) - { - _targetType = targetType; - } - - public void Initialize(ICrateStorageSerializer storageSerializer) - { - } - - public object Deserialize(JToken crateContent) - { - if (crateContent == null) - { - return null; - } - - return crateContent.ToObject(_targetType, Serializer); - } - - public JToken Serialize(object content) - { - using (JTokenWriter writer = new JTokenWriter()) - { - Serializer.Serialize(writer, content); - return writer.Token; - } - } - } - } -} - diff --git a/Fr8Data/Crates/CrateStorageSerializer.cs b/Fr8Data/Crates/CrateStorageSerializer.cs deleted file mode 100644 index 0c40cc06e3..0000000000 --- a/Fr8Data/Crates/CrateStorageSerializer.cs +++ /dev/null @@ -1,202 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Crates -{ - public partial class CrateStorageSerializer : ICrateStorageSerializer - { - /**********************************************************************************/ - // Declarations - /**********************************************************************************/ - - public static readonly CrateStorageSerializer Default = new CrateStorageSerializer(); - - /**********************************************************************************/ - - private readonly Dictionary _serializers = new Dictionary(); - - /**********************************************************************************/ - // Functions - /**********************************************************************************/ - - private CrateStorageSerializer() - { - } - - /**********************************************************************************/ - /// - /// Register custom serializer for manifest type. - /// You don't have to call this method wile your manifest resides in Data project. - /// - /// - /// - public void RegisterSerializer(CrateManifestType manifestType, IManifestSerializer serializer) - { - lock (_serializers) - { - _serializers.Add(manifestType, serializer); - } - } - - /**********************************************************************************/ - - private IManifestSerializer GetSerializer(CrateManifestType type) - { - lock (_serializers) - { - IManifestSerializer serializer; - - if (_serializers.TryGetValue(type, out serializer)) - { - return serializer; - } - - Type clrType; - - if (ManifestDiscovery.Default.TryResolveType(type, out clrType)) - { - var manifestAttr = clrType.GetCustomAttribute(); - - if (manifestAttr == null || manifestAttr.Serializer == null) - { - serializer = new DefaultSerializer(clrType); - } - else - { - if (typeof (IManifestSerializer).IsAssignableFrom(manifestAttr.Serializer) && - manifestAttr.Serializer.GetConstructor(Type.EmptyTypes) != null) - { - serializer = (IManifestSerializer) Activator.CreateInstance(manifestAttr.Serializer); - } - else - { - throw new ArgumentException("Invalid serializer was specified for given manifest"); - } - } - - serializer.Initialize(this); - } - - _serializers[type] = serializer; - - return serializer; - } - } - - /**********************************************************************************/ - /// - /// Convert CrateStorageDTO to CrateStorage - /// - /// - /// - public ICrateStorage ConvertFromDto(CrateStorageDTO rawStorage) - { - var storage = new CrateStorage(); - - if (rawStorage != null && rawStorage.Crates != null) - { - foreach (var crateDto in rawStorage.Crates) - { - storage.Add(ConvertFromDto(crateDto)); - } - } - - return storage; - } - - /**********************************************************************************/ - /// - /// Convert CrateStorage to DTO - /// - /// - /// - public CrateStorageDTO ConvertToDto(ICrateStorage storage) - { - var storageSerializationProxy = new CrateStorageDTO - { - Crates = new CrateDTO[storage.Count] - }; - - int id = 0; - - foreach (var crate in storage) - { - storageSerializationProxy.Crates[id] = ConvertToDto(crate); - id ++; - } - - return storageSerializationProxy; - } - - /**********************************************************************************/ - /// - /// Convert DTO to Crate instance - /// - /// - /// - public Crate ConvertFromDto(CrateDTO proxy) - { - var manifestType = new CrateManifestType(proxy.ManifestType, proxy.ManifestId); - IManifestSerializer serializer = GetSerializer(manifestType); - Crate crate; - - if (serializer != null) - { - var content = proxy.Contents != null ? serializer.Deserialize(proxy.Contents) : null; - - if (content != null) - { - crate = Crate.FromContent(content, proxy.Id); - } - else - { - crate = new Crate(manifestType, proxy.Id); - } - } - else - { - crate = Crate.FromJson(manifestType, proxy.Id, proxy.Contents); - } - - crate.Label = proxy.Label; - crate.SourceActivityId = proxy.SourceActivityId; - crate.Availability = proxy.Availability; - return crate; - } - - /**********************************************************************************/ - /// - /// Convert crate to DTO - /// - /// - /// - public CrateDTO ConvertToDto(Crate crate) - { - IManifestSerializer serializer = GetSerializer(crate.ManifestType); - CrateDTO crateDto = new CrateDTO - { - Id = crate.Id, - Label = crate.Label, - ManifestId = crate.ManifestType.Id, - ManifestType = crate.ManifestType.Type, - Availability = crate.Availability, - SourceActivityId = crate.SourceActivityId - }; - - if (serializer != null) - { - crateDto.Contents = serializer.Serialize(crate.Get()); - } - else - { - crateDto.Contents = crate.GetRaw(); - } - - return crateDto; - } - - /**********************************************************************************/ - } -} diff --git a/Fr8Data/Crates/CrateT.cs b/Fr8Data/Crates/CrateT.cs deleted file mode 100644 index 4498551630..0000000000 --- a/Fr8Data/Crates/CrateT.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Fr8Data.States; -using Newtonsoft.Json; - -namespace Fr8Data.Crates -{ - [JsonConverter(typeof(DenySerializationConverter), "Crate can't be directly serialized to JSON. Convert it to CrateDTO.")] - public class Crate : Crate - { - public T Content => Get(); - - public Crate(Crate crate) - : base(crate.ManifestType, crate.Id, crate.Availability) - { - Label = crate.Label; - KnownContent = crate.Get(); - } - - public static Crate FromContent(string label, T content) - { - return FromContent(label, content, AvailabilityType.NotSet); - } - - public static Crate FromContent(string label, T content, AvailabilityType availability) - { - return new Crate(FromContentUnsafe(label, content, availability)); - } - } -} diff --git a/Fr8Data/Crates/DenySerializationConverter.cs b/Fr8Data/Crates/DenySerializationConverter.cs deleted file mode 100644 index 13febf5804..0000000000 --- a/Fr8Data/Crates/DenySerializationConverter.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using Newtonsoft.Json; - -namespace Fr8Data.Crates -{ - public class DenySerializationConverter : JsonConverter - { - private readonly string _message; - - public DenySerializationConverter(string message) - { - _message = message; - } - - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) - { - throw new InvalidOperationException(_message); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - throw new InvalidOperationException(_message); - } - - public override bool CanConvert(Type objectType) - { - return true; - } - } -} \ No newline at end of file diff --git a/Fr8Data/Crates/Helpers/EventReportCrateFactory.cs b/Fr8Data/Crates/Helpers/EventReportCrateFactory.cs deleted file mode 100644 index c1ac022184..0000000000 --- a/Fr8Data/Crates/Helpers/EventReportCrateFactory.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Collections.Generic; -using Fr8Data.DataTransferObjects; -using Fr8Data.Manifests; - -namespace Fr8Data.Crates.Helpers -{ - public class EventReportCrateFactory - { - public Crate Create(String eventName, String palletId, params Crate[] crates) - { - return Create(eventName, palletId, (IEnumerable) crates); - } - - public Crate Create(String eventName, String palletId, IEnumerable crates) - { - var eventDTO = new EventReportCM - { - EventNames = eventName, - ExternalAccountId = "system1@fr8.co" - }; - - eventDTO.EventPayload.AddRange(crates); - - return Crate.FromContent("Fr8 Terminal Fact or Incident Report", eventDTO); - } - - public Crate Create(EventReportCM eventCm) - { - return Crate.FromContent("Fr8 Terminal Fact or Incident Report", eventCm); - } - } -} diff --git a/Fr8Data/Crates/Helpers/LoggingDataCrateFactory.cs b/Fr8Data/Crates/Helpers/LoggingDataCrateFactory.cs deleted file mode 100644 index 0a3b4320c4..0000000000 --- a/Fr8Data/Crates/Helpers/LoggingDataCrateFactory.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Crates.Helpers -{ - public class LoggingDataCrateFactory - { - public Crate Create(LoggingDataCM loggingDataCm) - { - return Crate.FromContent("Dockyard Terminal Fact or Incident Report", loggingDataCm); - } - } -} diff --git a/Fr8Data/Crates/ICrateStorage.cs b/Fr8Data/Crates/ICrateStorage.cs deleted file mode 100644 index ca2385bcfb..0000000000 --- a/Fr8Data/Crates/ICrateStorage.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Fr8Data.Crates -{ - public interface ICrateStorage : IEnumerable - { - int Count { get; } - void Add(Crate crate); - void Add(params Crate[] crate); - void Clear(); - int Remove(Predicate predicate); - int Replace(Predicate predicate, Crate crate); - } -} \ No newline at end of file diff --git a/Fr8Data/Crates/ICrateStorageSerializer.cs b/Fr8Data/Crates/ICrateStorageSerializer.cs deleted file mode 100644 index 70acd9b8fb..0000000000 --- a/Fr8Data/Crates/ICrateStorageSerializer.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Crates -{ - public interface ICrateStorageSerializer - { - CrateStorageDTO ConvertToDto(ICrateStorage storage); - CrateDTO ConvertToDto(Crate crate); - ICrateStorage ConvertFromDto(CrateStorageDTO dto); - Crate ConvertFromDto(CrateDTO dto); - } -} diff --git a/Fr8Data/Crates/IManifestSerializer.cs b/Fr8Data/Crates/IManifestSerializer.cs deleted file mode 100644 index 403b3a00aa..0000000000 --- a/Fr8Data/Crates/IManifestSerializer.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Newtonsoft.Json.Linq; - -namespace Fr8Data.Crates -{ - /// - /// Describes custom crate manifest serilizer - /// - public interface IManifestSerializer - { - /// - /// This will be called once per CrateStorageSerializer. Use this if you need to serialize/deserialize nested CrateStorage. - /// - /// - void Initialize(ICrateStorageSerializer storageSerializer); - /// - /// Deserialize manifest from JToken - /// - /// - /// - object Deserialize(JToken crateContent); - /// - /// Serialize manifest to JToken - /// - /// - /// - JToken Serialize(object content); - } -} \ No newline at end of file diff --git a/Fr8Data/Crates/ManifestDiscovery.cs b/Fr8Data/Crates/ManifestDiscovery.cs deleted file mode 100644 index 6f8bb90cab..0000000000 --- a/Fr8Data/Crates/ManifestDiscovery.cs +++ /dev/null @@ -1,130 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using Fr8Data.Manifests; - -namespace Fr8Data.Crates -{ - public class ManifestDiscovery - { - /**********************************************************************************/ - // Declarations - /**********************************************************************************/ - - public static readonly ManifestDiscovery Default = new ManifestDiscovery(); - - /**********************************************************************************/ - - private readonly Dictionary _typeMapping = new Dictionary(); - - /**********************************************************************************/ - // Functions - /**********************************************************************************/ - - private ManifestDiscovery() - { - ConfigureInitial(); - } - - /**********************************************************************************/ - - public void ConfigureInitial() - { - var manifest = typeof(Manifest); - - foreach (var type in ListAssemblyTypes(Assembly.GetExecutingAssembly()).Where(x => manifest.IsAssignableFrom(x) || x.GetCustomAttribute() != null)) - { - if (type.IsAbstract || type == manifest) - { - continue; - } - - RegisterManifest(type); - } - } - - /**********************************************************************************/ - - private static IEnumerable ListAssemblyTypes(Assembly assembly) - { - try - { - return assembly.GetTypes(); - } - catch (ReflectionTypeLoadException ex) - { - return ex.Types.Where(type => type != null); - } - } - - /**********************************************************************************/ - - public void RegiserManifest() - { - RegisterManifest(typeof(T)); - } - - /**********************************************************************************/ - - public bool TryGetManifestType(Type type, out CrateManifestType manifestType) - { - return ManifestTypeCache.TryResolveManifest(type, out manifestType); - } - - /**********************************************************************************/ - - public CrateManifestType GetManifestType(Type type) - { - CrateManifestType manifestType; - - if (!ManifestTypeCache.TryResolveManifest(type, out manifestType)) - { - throw new ArgumentException("Type is not marked with CrateManifestAttribute or ManifestType is not set"); - } - - return manifestType; - } - - /**********************************************************************************/ - - public CrateManifestType GetManifestType() - { - return GetManifestType(typeof(T)); - } - - /**********************************************************************************/ - - public bool TryResolveType(CrateManifestType manifestType, out Type type) - { - lock (_typeMapping) - { - return _typeMapping.TryGetValue(manifestType, out type); - } - } - - public bool TryResolveManifestType(string manifestTypeName, out CrateManifestType manifestType) - { - return ManifestTypeCache.TryResolveManifest(manifestTypeName, out manifestType); - } - - /**********************************************************************************/ - - public void RegisterManifest(Type type) - { - CrateManifestType manifestType; - - if (!ManifestTypeCache.TryResolveManifest(type, out manifestType)) - { - throw new ArgumentException("Type is not marked with CrateManifestAttribute or ManifestType is not set"); - } - - lock (_typeMapping) - { - _typeMapping[manifestType] = type; - } - } - - /**********************************************************************************/ - } -} diff --git a/Fr8Data/Crates/ManifestTypeCache.cs b/Fr8Data/Crates/ManifestTypeCache.cs deleted file mode 100644 index 67b8f4c0ce..0000000000 --- a/Fr8Data/Crates/ManifestTypeCache.cs +++ /dev/null @@ -1,126 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Reflection; -using Fr8Data.Manifests; - -namespace Fr8Data.Crates -{ - internal static class ManifestTypeCache - { - /**********************************************************************************/ - // Declarations - /**********************************************************************************/ - - private static readonly Dictionary ManifestsCache = new Dictionary(); - private static readonly object GlobalTypeCacheLock = new object(); - - private static readonly Dictionary _nameMap; - - static ManifestTypeCache() - { - _nameMap = new Dictionary(); - - var mtEnumType = typeof(Fr8Data.Constants.MT); - - var names = Enum.GetNames(mtEnumType); - foreach (var name in names) - { - var members = mtEnumType.GetMember(name); - if (members == null || members.Length == 0) - { - continue; - } - - var attribute = members[0].GetCustomAttribute(typeof(DisplayAttribute), false); - if (attribute == null) - { - continue; - } - - var mtName = ((DisplayAttribute)attribute).Name; - _nameMap.Add(mtName, (int)((Fr8Data.Constants.MT)Enum.Parse(mtEnumType, name))); - } - } - - /**********************************************************************************/ - - public static bool TryResolveManifest(string manifestTypeName, out CrateManifestType manifestType) - { - int typeId; - if (_nameMap.TryGetValue(manifestTypeName, out typeId)) - { - manifestType = new CrateManifestType(manifestTypeName, typeId); - return true; - } - - manifestType = CrateManifestType.Unknown; - return false; - } - - public static bool TryResolveManifest(Type type, out CrateManifestType manifestType) - { - lock (GlobalTypeCacheLock) - { - if (ManifestsCache.TryGetValue(type, out manifestType)) - { - return manifestType != CrateManifestType.Unknown; - } - - var manifestAttr = (CrateManifestTypeAttribute)type.GetCustomAttribute(typeof(CrateManifestTypeAttribute), false); - - if (manifestAttr == null || manifestAttr.ManifestType == null) - { - if (typeof(Manifest).IsAssignableFrom(type) && !type.IsAbstract) - { - var sampleManifest = ((Manifest)Activator.CreateInstance(type)); - manifestType = sampleManifest.ManifestType; - } - else - { - manifestType = CrateManifestType.Unknown; - } - } - else - { - manifestType = manifestAttr.ManifestType; - } - - ManifestsCache.Add(type, manifestType); - - return manifestType != CrateManifestType.Unknown; - } - } - - /**********************************************************************************/ - - public static bool TryResolveManifest(object instance, out CrateManifestType manifestType) - { - if (instance == null) - { - manifestType = CrateManifestType.Unknown; - return false; - } - - var type = instance.GetType(); - var manifest = instance as Manifest; - - if (manifest != null) - { - lock (GlobalTypeCacheLock) - { - if (!ManifestsCache.TryGetValue(type, out manifestType)) - { - manifestType = manifest.ManifestType; - ManifestsCache.Add(type, manifestType); - return true; - } - } - } - - return TryResolveManifest(type, out manifestType); - } - - /**********************************************************************************/ - } -} diff --git a/Fr8Data/DataTransferObjects/ActivateActivitiesDTO.cs b/Fr8Data/DataTransferObjects/ActivateActivitiesDTO.cs deleted file mode 100644 index 0a623eec84..0000000000 --- a/Fr8Data/DataTransferObjects/ActivateActivitiesDTO.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using Data.Interfaces.DataTransferObjects; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class ActivateActivitiesDTO - { - [JsonProperty("validationErrors")] - public Dictionary ValidationErrors { get; set; } = new Dictionary(); - } -} diff --git a/Fr8Data/DataTransferObjects/ActivityDTO.cs b/Fr8Data/DataTransferObjects/ActivityDTO.cs deleted file mode 100644 index 5b06c04a60..0000000000 --- a/Fr8Data/DataTransferObjects/ActivityDTO.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using Newtonsoft.Json; -using Fr8Data.Infrastructure.JsonNet; - -namespace Fr8Data.DataTransferObjects -{ - public class ActivityDTO - { - public string Label { get; set; } - public string Name { get; set; } - - [JsonProperty("activityTemplate")] - [JsonConverter(typeof(ActivityTemplateActivityConverter))] - public ActivityTemplateDTO ActivityTemplate { get; set; } - - public Guid? RootPlanNodeId { get; set; } - - public Guid? ParentPlanNodeId { get; set; } - - public string CurrentView { get; set; } - - public int Ordering { get; set; } - - public Guid Id { get; set; } - - public CrateStorageDTO CrateStorage { get; set; } - - public ActivityDTO[] ChildrenActivities { get; set; } - - public Guid? AuthTokenId { get; set; } - - public AuthorizationTokenDTO AuthToken { get; set; } - - - [JsonIgnore] - public string Fr8AccountId { get; set; } - - [JsonProperty("documentation")] - public string Documentation { get; set; } - - } -} diff --git a/Fr8Data/DataTransferObjects/ActivityDataPackageDTO.cs b/Fr8Data/DataTransferObjects/ActivityDataPackageDTO.cs deleted file mode 100644 index 899fb028b5..0000000000 --- a/Fr8Data/DataTransferObjects/ActivityDataPackageDTO.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class ActivityDataPackageDTO - { - public ActivityDataPackageDTO(ActivityDTO curActionDTO, PayloadDTO curPayloadDTO) - { - ActivityDTO = curActionDTO; - PayloadDTO = curPayloadDTO; - } - public ActivityDTO ActivityDTO { get; set; } - public PayloadDTO PayloadDTO { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ActivityNameDTO.cs b/Fr8Data/DataTransferObjects/ActivityNameDTO.cs deleted file mode 100644 index a477bc7b72..0000000000 --- a/Fr8Data/DataTransferObjects/ActivityNameDTO.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class ActivityNameDTO - { - [JsonProperty("name")] - public string Name { get; set; } - - [JsonProperty("version")] - public string Version { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ActivityNameListDTO.cs b/Fr8Data/DataTransferObjects/ActivityNameListDTO.cs deleted file mode 100644 index 647fb471a4..0000000000 --- a/Fr8Data/DataTransferObjects/ActivityNameListDTO.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class ActivityNameListDTO - { - public ActivityNameListDTO() - { - ActivityNames = new List(); - } - public List ActivityNames { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ActivityPayloadDTO.cs b/Fr8Data/DataTransferObjects/ActivityPayloadDTO.cs deleted file mode 100644 index 909b399087..0000000000 --- a/Fr8Data/DataTransferObjects/ActivityPayloadDTO.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace Fr8Data.DataTransferObjects -{ - //public class ActionPayloadDTO : ActionDTOBase - //{ - // public string UserLabel { get; set; } - - // public int? ActionListId { get; set; } - - // public string CrateStorage { get; set; } - - // public PayloadMappingsDTO PayloadMappings { get; set; } - - // public string EnvelopeId { get; set; } - //} -} diff --git a/Fr8Data/DataTransferObjects/ActivityProcessResultDTO.cs b/Fr8Data/DataTransferObjects/ActivityProcessResultDTO.cs deleted file mode 100644 index 4f8f43bdb1..0000000000 --- a/Fr8Data/DataTransferObjects/ActivityProcessResultDTO.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class ActivityProcessResultDTO - { - [JsonProperty("success")] - public bool Success { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ActivityResponseDTO.cs b/Fr8Data/DataTransferObjects/ActivityResponseDTO.cs deleted file mode 100644 index e977484de8..0000000000 --- a/Fr8Data/DataTransferObjects/ActivityResponseDTO.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Fr8Data.Constants; -using Newtonsoft.Json; -using Fr8Data.DataTransferObjects.Helpers; -using Fr8Data.Control; - -namespace Fr8Data.DataTransferObjects -{ - /// - /// Data structure intended to enable Fr8 services to return useful data as part of the http response - /// - public class ActivityResponseDTO - { - [JsonProperty("type")] - public string Type { get; set; } - - [JsonProperty("body")] - public string Body { get; set; } - - public static ActivityResponseDTO Create(ActivityResponse activityResponseType) - { - return new ActivityResponseDTO() - { - Type = activityResponseType.ToString() - }; - } - - public static ActivityResponseDTO CreateDocumentationResponse(string displayMechanism, string contentPath = "") - { - return Create(ActivityResponse.Null) - .AddDocumentationDTO(new DocumentationDTO(displayMechanism, contentPath)); - } - } -} diff --git a/Fr8Data/DataTransferObjects/ActivityTemplateCategoryDTO.cs b/Fr8Data/DataTransferObjects/ActivityTemplateCategoryDTO.cs deleted file mode 100644 index d78d69d25e..0000000000 --- a/Fr8Data/DataTransferObjects/ActivityTemplateCategoryDTO.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class ActivityTemplateCategoryDTO - { - - [JsonProperty("name")] - public string Name { get; set; } - - [JsonProperty("activities")] - public IEnumerable Activities { get; set; } - - } -} diff --git a/Fr8Data/DataTransferObjects/ActivityTemplateDTO.cs b/Fr8Data/DataTransferObjects/ActivityTemplateDTO.cs deleted file mode 100644 index 2033cf99a5..0000000000 --- a/Fr8Data/DataTransferObjects/ActivityTemplateDTO.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using Fr8Data.Control; -using Fr8Data.Infrastructure.JsonNet; -using Fr8Data.States; -using Newtonsoft.Json; -using Newtonsoft.Json.Converters; - -namespace Fr8Data.DataTransferObjects -{ - public class ActivityTemplateDTO - { - public ActivityTemplateDTO() - { - Type = ActivityType.Standard; - } - - //[JsonProperty("id")] - public Guid Id { get; set; } - - [JsonProperty("name")] - public string Name { get; set; } - - [JsonProperty("label")] - public string Label { get; set; } - - [JsonProperty("version")] - public string Version { get; set; } - - [JsonProperty("webService")] - public WebServiceDTO WebService { get; set; } - - [JsonProperty("terminal")] - public TerminalDTO Terminal { get; set; } - - [JsonProperty("tags")] - public string Tags { get; set; } - - [JsonConverter(typeof(StringEnumConverter))] - public ActivityCategory Category { get; set; } - - [JsonConverter(typeof(StringEnumConverter))] - public ActivityType Type { get; set; } - - [JsonProperty("minPaneWidth")] - public int MinPaneWidth { get; set; } - - public bool NeedsAuthentication { get; set; } - - [JsonProperty("showDocumentation")] - public ActivityResponseDTO ShowDocumentation { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ActivityTypeListDTO.cs b/Fr8Data/DataTransferObjects/ActivityTypeListDTO.cs deleted file mode 100644 index c3dfa8a7f3..0000000000 --- a/Fr8Data/DataTransferObjects/ActivityTypeListDTO.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class ActivityTypeListDTO - { - [JsonProperty("type_name")] - public string TypeName { get; set; } - - [JsonProperty("version")] - public string Version { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/AdvisoryMessageDTO.cs b/Fr8Data/DataTransferObjects/AdvisoryMessageDTO.cs deleted file mode 100644 index eb87745297..0000000000 --- a/Fr8Data/DataTransferObjects/AdvisoryMessageDTO.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class AdvisoryMessageDTO - { - [JsonProperty("name")] - public string Name { get; set; } - [JsonProperty("content")] - public string Content { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/AlarmDTO.cs b/Fr8Data/DataTransferObjects/AlarmDTO.cs deleted file mode 100644 index 818ff5b0e0..0000000000 --- a/Fr8Data/DataTransferObjects/AlarmDTO.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Newtonsoft.Json; -using System; - -namespace Fr8Data.DataTransferObjects -{ - public class AlarmDTO - { - [JsonProperty("startTime")] - public DateTimeOffset StartTime { get; set; } - - [JsonProperty("containerId")] - public Guid ContainerId { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/AuthenticateResponse.cs b/Fr8Data/DataTransferObjects/AuthenticateResponse.cs deleted file mode 100644 index 4b4fe7a32c..0000000000 --- a/Fr8Data/DataTransferObjects/AuthenticateResponse.cs +++ /dev/null @@ -1,10 +0,0 @@ - -namespace Fr8Data.DataTransferObjects -{ - public class AuthenticateResponse - { - public AuthorizationTokenDTO AuthorizationToken { get; set; } - - public string Error { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/AuthenticationTokenDTO.cs b/Fr8Data/DataTransferObjects/AuthenticationTokenDTO.cs deleted file mode 100644 index d33a6c55a4..0000000000 --- a/Fr8Data/DataTransferObjects/AuthenticationTokenDTO.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class AuthenticationTokenTerminalDTO - { - [JsonProperty("id")] - public int Id { get; set; } - - [JsonProperty("name")] - public string Name { get; set; } - [JsonProperty("version")] - - public string Version { get; set; } - - [JsonProperty("label")] - public string Label { get; set; } - - [JsonProperty("authenticationType")] - public int AuthenticationType { get; set; } - - [JsonProperty("authTokens")] - public List AuthTokens { get; set; } - } - - public class AuthenticationTokenDTO - { - [JsonProperty("id")] - public Guid Id { get; set; } - - [JsonProperty("externalAccountName")] - public string ExternalAccountName { get; set; } - - [JsonProperty("isMain")] - public bool IsMain { get; set; } - - [JsonProperty("isSelected")] - public bool IsSelected { get; set; } - } - - public class AuthenticationTokenGrantDTO - { - [JsonProperty("actionId")] - public Guid ActivityId { get; set; } - - [JsonProperty("authTokenId")] - public Guid AuthTokenId { get; set; } - - [JsonProperty("isMain")] - public bool IsMain { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/AuthorizationTokenDTO.cs b/Fr8Data/DataTransferObjects/AuthorizationTokenDTO.cs deleted file mode 100644 index 9f880f801f..0000000000 --- a/Fr8Data/DataTransferObjects/AuthorizationTokenDTO.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace Fr8Data.DataTransferObjects -{ - public class AuthorizationTokenDTO - { - public string Id { get; set; } - public string Token { get; set; } - public string ExternalAccountId { get; set; } - public string ExternalAccountName { get; set; } - public string ExternalDomainId { get; set; } - public string ExternalDomainName { get; set; } - public string UserId { get; set; } - public string ExternalStateToken { get; set; } - public string AdditionalAttributes { get; set; } - public string Error { get; set; } - public bool AuthCompletedNotificationRequired { get; set; } - - //TODO remove this - public int TerminalID { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ComponentActivitiesDTO.cs b/Fr8Data/DataTransferObjects/ComponentActivitiesDTO.cs deleted file mode 100644 index 3ea515d866..0000000000 --- a/Fr8Data/DataTransferObjects/ComponentActivitiesDTO.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System.Collections.Generic; - -namespace Fr8Data.DataTransferObjects -{ - public class ComponentActivitiesDTO - { - public List ComponentActivities { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ContainerDTO.cs b/Fr8Data/DataTransferObjects/ContainerDTO.cs deleted file mode 100644 index 67422300b4..0000000000 --- a/Fr8Data/DataTransferObjects/ContainerDTO.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using Data.Interfaces.DataTransferObjects; -using Fr8Data.Constants; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class ContainerDTO - { - [Required] - public Guid Id { get; set; } - public string Name { get; set; } - public Guid PlanId { get; set; } - public int State; - - public DateTimeOffset LastUpdated { get; set; } - public DateTimeOffset CreateDate { get; set; } - - public ActivityResponse? CurrentActivityResponse { get; set; } - public string CurrentClientActivityName { get; set; } - public PlanType? CurrentPlanType { get; set; } - - [JsonProperty("validationErrors")] - public Dictionary ValidationErrors { get; set; } = new Dictionary(); - } -} diff --git a/Fr8Data/DataTransferObjects/ControlDefinitionDTO.cs b/Fr8Data/DataTransferObjects/ControlDefinitionDTO.cs deleted file mode 100644 index 5b30f9b887..0000000000 --- a/Fr8Data/DataTransferObjects/ControlDefinitionDTO.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Collections.Generic; -using Fr8Data.Control; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - // We have logic that can copy properties from one StandardConfigurationControlsCM to another. - // Important moment here is that we want to copy only properties (i.e what can be changed by user) no structure. - // We don't want to suddedly insert new Control that exists in one StandardConfigurationControlsCM to another. It is very important in - // Easy way not modify structure is not to sync collection properties (at least until we don't have control that has property of type ControlDefinitionDTO). - // But sometimes we have to sync collections. For example in case of UpstreamCrateChooser.SelectedCrates. - // To force collection property synchronization we introduce this attribute - [AttributeUsage(AttributeTargets.Property, Inherited = true)] - sealed class ForcePropertySyncAttribute : Attribute - { - } - - [AttributeUsage(AttributeTargets.Property, Inherited = true)] - sealed class IgnorePropertySyncAttribute : Attribute - { - } - - public interface IControlDefinition - { - string Name { get; set; } - } - - public interface IContainerControl - { - IEnumerable EnumerateChildren(); - } - - // TODO It will be good to change setter property 'Type' to protected to disallow change the type. We have all needed classes(RadioButtonGroupFieldDefinitionDTO, DropdownListFieldDefinitionDTO and etc). - // But Wait_For_DocuSign_Event_v1.FollowupConfigurationResponse() directly write to this property ! - public class ControlDefinitionDTO : IResettable, IControlDefinition - { - public ControlDefinitionDTO() - { - Events = new List(); - } - - public ControlDefinitionDTO(string type) : base() - { - Type = type; - } - - [JsonProperty("name")] - public string Name { get; set; } - - [JsonProperty("required")] - public bool Required { get; set; } - - [JsonProperty("value")] - public virtual string Value { get; set; } - - [JsonProperty("label")] - public string Label { get; set; } - - [JsonProperty("type")] - public string Type { get; protected set; } - - [JsonProperty("selected")] - public bool Selected { get; set; } - - [JsonProperty("events")] - [IgnorePropertySync] - public List Events { get; set; } - - [JsonProperty("source")] - public FieldSourceDTO Source { get; set; } - - [JsonProperty("showDocumentation")] - public ActivityResponseDTO ShowDocumentation { get; set; } - - [JsonProperty("isHidden")] - public bool IsHidden { get; set; } - - [JsonProperty("isCollapsed")] - public bool IsCollapsed { get; set; } - - public virtual void Reset(List fieldNames) - { - //This is here to prevent development bugs - if (fieldNames != null) - { - throw new NotSupportedException(); - } - Value = ""; - } - } -} diff --git a/Fr8Data/DataTransferObjects/ControlDefinitionDTOConverter.cs b/Fr8Data/DataTransferObjects/ControlDefinitionDTOConverter.cs deleted file mode 100644 index 70b905537f..0000000000 --- a/Fr8Data/DataTransferObjects/ControlDefinitionDTOConverter.cs +++ /dev/null @@ -1,183 +0,0 @@ -using Newtonsoft.Json; -using Newtonsoft.Json.Converters; -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Control; -using Fr8Data.Crates; -using Fr8Data.Manifests; - -namespace Fr8Data.DataTransferObjects -{ - - public class ControlMetaDescriptionDTOConverter : CustomCreationConverter - { - public override ControlMetaDescriptionDTO Create(Type objectType) - { - return new TextBoxMetaDescriptionDTO(); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - Type controlType; - var curjObject = JObject.ReadFrom(reader); - - if (!curjObject.HasValues) - { - return null; - } - - // Create a map of all properties in the field object - string fieldTypeName = GetControlTypeName(curjObject); - - // Determine field .Net type depending on type value - controlType = GetFieldType(fieldTypeName); - - // Create type - if (controlType == null) - { - controlType = typeof(TextBoxMetaDescriptionDTO); - } - - var control = Activator.CreateInstance(controlType) ?? new TextBoxMetaDescriptionDTO(); - serializer.Populate(curjObject.CreateReader(), control); - - return control; - } - - private string GetControlTypeName(JToken curjObject) - { - var typeProperty = curjObject.Children().FirstOrDefault(p => p.Name == "type"); - if (typeProperty == null) - { - return null; - } - - return typeProperty.Value.Value(); - - } - - private Type GetFieldType(string fieldTypeName) - { - try - { - return Type.GetType(string.Format("Fr8Data.Control.{0}, Fr8Data", fieldTypeName)); - } - catch - { - return null; - } - } - - } - - public class ControlDefinitionDTOConverter : CustomCreationConverter - { - public override ControlDefinitionDTO Create(Type objectType) - { - return new Generic(); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - Type controlType; - var curjObject = JObject.ReadFrom(reader); - - if (!curjObject.HasValues) - { - return null; - } - - // Create a map of all properties in the field object - string fieldTypeName = GetControlTypeName(curjObject); - - // Determine field .Net type depending on type value - controlType = GetFieldType(fieldTypeName); - - // Create type - if (controlType == null) - { - controlType = typeof(Generic); - } - - var control = Activator.CreateInstance(controlType) ?? new Generic(); - serializer.Populate(curjObject.CreateReader(), control); - - return control; - } - - private string GetControlTypeName(JToken curjObject) - { - var typeProperty = curjObject.Children().FirstOrDefault(p => p.Name == "type"); - if (typeProperty == null) - { - return null; - } - - return typeProperty.Value.Value(); - - } - - private Type GetFieldType(string fieldTypeName) - { - try - { - return Type.GetType(string.Format("Fr8Data.Control.{0}, Fr8Data", fieldTypeName)); - } - catch - { - return null; - } - } - - private Dictionary createPropertyMap(JsonReader reader) - { - Dictionary map = new Dictionary(); - string propName = String.Empty, propValue = String.Empty; - - while (reader.Read()) - { - if (reader.TokenType == JsonToken.PropertyName) - { - propName = reader.Value.ToString().ToLower(); - // Find field value - if (reader.Read()) - { - propValue = reader.Value.ToString().ToLower(); - map.Add(propName, propValue); - } - } - } - return map; - } - } - - - public class StandardConfigurationControlsSerializer : IManifestSerializer - { - public void Initialize(ICrateStorageSerializer manager) - { - - } - - public object Deserialize(JToken crateContent) - { - var converter = new ControlDefinitionDTOConverter(); - var serializer = JsonSerializer.Create(new JsonSerializerSettings() - { - Converters = new List - { - converter - } - }); - - return crateContent.ToObject(serializer); - } - - public JToken Serialize(object content) - { - return JToken.FromObject(content); - } - } -} diff --git a/Fr8Data/DataTransferObjects/CrateDTO.cs b/Fr8Data/DataTransferObjects/CrateDTO.cs deleted file mode 100644 index e7760a1c3c..0000000000 --- a/Fr8Data/DataTransferObjects/CrateDTO.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using Fr8Data.States; -using Fr8Data.Infrastructure.JsonNet; - -namespace Fr8Data.DataTransferObjects -{ - public class CrateDTO - { - [JsonProperty("manifestType")] - public string ManifestType { get; set; } - - [JsonProperty("manifestId")] - public int ManifestId { get; set; } - - [JsonProperty("manufacturer")] - public ManufacturerDTO Manufacturer { get; set; } - - [JsonProperty("manifestRegistrar")] - public string ManifestRegistrar - { - get { return "www.fr8.co/registry"; } - } - - [JsonProperty("id")] - public string Id { get; set; } - - [JsonProperty("label")] - public string Label { get; set; } - - [JsonProperty("contents")] - public JToken Contents { get; set; } - - [JsonProperty("parentCrateId")] - public string ParentCrateId { get; set; } - - [JsonProperty("createTime")] - [JsonConverter(typeof(CreateTimeConverter))] - public DateTime CreateTime { get; set; } - - [JsonProperty("availability")] - [JsonConverter(typeof(AvailabilityConverter))] - public AvailabilityType Availability { get; set; } - - [JsonProperty("sourceActivityId")] - public string SourceActivityId { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/CrateDescriptionDTO.cs b/Fr8Data/DataTransferObjects/CrateDescriptionDTO.cs deleted file mode 100644 index a1dcf850e5..0000000000 --- a/Fr8Data/DataTransferObjects/CrateDescriptionDTO.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.States; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class CrateDescriptionDTO - { - [JsonProperty("manifestId")] - public int ManifestId { get; set; } - - [JsonProperty("manifestType")] - public string ManifestType{ get; set; } - - [JsonProperty("label")] - public string Label{ get; set; } - - [JsonProperty("producedBy")] - public string ProducedBy { get; set; } - - [JsonProperty("selected")] - public bool Selected { get; set; } - - [JsonProperty("availability")] - public AvailabilityType Availability { get; set; } - - [JsonProperty("fields")] - public List Fields { get; set; } - - public CrateDescriptionDTO() - { - Availability = AvailabilityType.RunTime; - Fields = new List(); - Selected = false; - } - } -} diff --git a/Fr8Data/DataTransferObjects/CrateStorageDTO.cs b/Fr8Data/DataTransferObjects/CrateStorageDTO.cs deleted file mode 100644 index 5f23a3d1cb..0000000000 --- a/Fr8Data/DataTransferObjects/CrateStorageDTO.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class CrateStorageDTO - { - [JsonProperty("crates")] - public CrateDTO[] Crates { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/CredentialsDTO.cs b/Fr8Data/DataTransferObjects/CredentialsDTO.cs deleted file mode 100644 index 5afd644f92..0000000000 --- a/Fr8Data/DataTransferObjects/CredentialsDTO.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace Fr8Data.DataTransferObjects -{ - public class CredentialsDTO - { - public TerminalDTO Terminal { get; set; } - public string Username { get; set; } - public string Password { get; set; } - public string Domain { get; set; } - public bool IsDemoAccount { get; set; } - public string Fr8UserId { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/DocuSignEnvelopeDTO.cs b/Fr8Data/DataTransferObjects/DocuSignEnvelopeDTO.cs deleted file mode 100644 index 8f7e42b554..0000000000 --- a/Fr8Data/DataTransferObjects/DocuSignEnvelopeDTO.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; - -namespace Fr8Data.DataTransferObjects -{ - public class DocuSignEnvelopeDTO - { - public string Status { get; set; } - public string Description { get; set; } - public DateTime? CreateDate { get; set; } - public DateTime? SentDate { get; set; } - public DateTime? CompletedDate { get; set; } - public string EnvelopeId { get; set; } - public string Name { get; set; } - public string Subject { get; set; } - public string OwnerName { get; set; } - public string SenderName { get; set; } - public string SenderEmail { get; set; } - public string Shared { get; set; } - - public string TemplateId { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/DocumentationResponseDTO.cs b/Fr8Data/DataTransferObjects/DocumentationResponseDTO.cs deleted file mode 100644 index 77ee73c866..0000000000 --- a/Fr8Data/DataTransferObjects/DocumentationResponseDTO.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class DocumentationResponseDTO - { - public string Name { get; set; } - public double Version { get; set; } - //TODO: To be changed with another type - public string Terminal { get; set; } - //This field is to hold an HTML - public string Body { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/EmailAddressDTO.cs b/Fr8Data/DataTransferObjects/EmailAddressDTO.cs deleted file mode 100644 index dd81364aeb..0000000000 --- a/Fr8Data/DataTransferObjects/EmailAddressDTO.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Fr8Data.DataTransferObjects -{ - public class EmailAddressDTO - { - private string emailAddress; - - public EmailAddressDTO() - { - } - public EmailAddressDTO(string emailAddress) - { - this.emailAddress = emailAddress; - } - - public int Id { get; set; } - public String Name { get; set; } - public String Address { get; set; } - public virtual List Recipients { get; set; } - public virtual List SentEmails { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/EmailDTO.cs b/Fr8Data/DataTransferObjects/EmailDTO.cs deleted file mode 100644 index 783bd7813e..0000000000 --- a/Fr8Data/DataTransferObjects/EmailDTO.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Fr8Data.DataTransferObjects -{ - public class EmailDTO - { - public int Id { get; set; } - public String MessageID { get; set; } - public String References { get; set; } - public String Subject { get; set; } - public String HTMLText { get; set; } - public String PlainText { get; set; } - public DateTimeOffset DateReceived { get; set; } - public int? EmailStatus { get; set; } - public EmailAddressDTO From { get; set; } - public String FromName { get; set; } - public String ReplyToName { get; set; } - public String ReplyToAddress { get; set; } - public List Recipients { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ErrorDTO.cs b/Fr8Data/DataTransferObjects/ErrorDTO.cs deleted file mode 100644 index 2dcf18215f..0000000000 --- a/Fr8Data/DataTransferObjects/ErrorDTO.cs +++ /dev/null @@ -1,112 +0,0 @@ -using System; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public enum ErrorType - { - Generic, - Authentication, - Critical - } - - public class ResponseMessageDTO - { - public ResponseMessageDTO() { } - - public ResponseMessageDTO(string type) - { - Type = type; - } - - [JsonProperty("message")] - public string Message { get; set; } - [JsonProperty("errorCode")] - public string ErrorCode { get; set; } - [JsonProperty("type")] - public string Type { get; protected set; } - [JsonProperty("details")] - public object Details { get; set; } - [JsonProperty("currentActivity")] - public string CurrentActivity { get; set; } - [JsonProperty("currentTerminal")] - public string CurrentTerminal { get; set; } - - protected static string ErrorTypeToString(ErrorType errorType) - { - switch (errorType) - { - case ErrorType.Generic: - return "int"; - - case ErrorType.Authentication: - return "auth"; - - case ErrorType.Critical: - return "critical"; - - default: - throw new ArgumentOutOfRangeException("errorType"); - } - } - - public static ResponseMessageDTO Create(string message, ErrorType errorType, string errorCode, object details) - { - return new ResponseMessageDTO(ErrorTypeToString(errorType)) - { - Details = details, - Message = message, - ErrorCode = errorCode - }; - } - } - - public class ErrorDTO : ResponseMessageDTO - { - protected ErrorDTO() { } - - protected ErrorDTO(string type) - { - Type = type; - } - - public static ErrorDTO InternalError(string message, string errorCode = null, object details = null, string activity = null, string terminal = null) - { - return Create(message, ErrorType.Generic, errorCode, details, activity, terminal); - } - - public static ErrorDTO AuthenticationError() - { - return new ErrorDTO(ErrorTypeToString(ErrorType.Authentication)); - } - - public static ErrorDTO InternalError() - { - return new ErrorDTO(ErrorTypeToString(ErrorType.Generic)); - } - - public static ErrorDTO AuthenticationError(string message, string errorCode = null, object details = null) - { - return Create(message, ErrorType.Authentication, errorCode, details, null, null); - } - - public static ErrorDTO CriticalError(string message, string errorCode = null, object details = null) - { - return Create(message, ErrorType.Critical, errorCode, details, null, null); - } - - public static ErrorDTO Create(string message, ErrorType errorType, string errorCode, object details, string activity, string terminal) - { - return new ErrorDTO (ErrorTypeToString(errorType)) - { - Details = details, - Message = message, - ErrorCode = errorCode, - CurrentActivity = activity, - CurrentTerminal = terminal - }; - } - } - - -} diff --git a/Fr8Data/DataTransferObjects/EventLoggingDTO.cs b/Fr8Data/DataTransferObjects/EventLoggingDTO.cs deleted file mode 100644 index f0d3585ddc..0000000000 --- a/Fr8Data/DataTransferObjects/EventLoggingDTO.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class EventLoggingDTO - { - [JsonProperty(PropertyName = "eventName")] - public string EventName { get; set; } - - [JsonProperty(PropertyName = "customerId")] - public string CustomerId { get; set; } - - [JsonProperty(PropertyName = "objectId")] - public string ObjectId { get; set; } - - [JsonProperty(PropertyName = "data")] - public string Data { get; set; } - - [JsonProperty(PropertyName = "status")] - public string Status { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ExternalAuthUrlDTO.cs b/Fr8Data/DataTransferObjects/ExternalAuthUrlDTO.cs deleted file mode 100644 index 06bb66f8b9..0000000000 --- a/Fr8Data/DataTransferObjects/ExternalAuthUrlDTO.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Fr8Data.DataTransferObjects -{ - public class ExternalAuthUrlDTO - { - public string Url { get; set; } - public string ExternalStateToken { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ExternalAuthenticationDTO.cs b/Fr8Data/DataTransferObjects/ExternalAuthenticationDTO.cs deleted file mode 100644 index e551f5d916..0000000000 --- a/Fr8Data/DataTransferObjects/ExternalAuthenticationDTO.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Fr8Data.DataTransferObjects -{ - public class ExternalAuthenticationDTO - { - public string RequestQueryString { get; set; } - public string Fr8UserId { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ExternalEventDTO.cs b/Fr8Data/DataTransferObjects/ExternalEventDTO.cs deleted file mode 100644 index 44b282af1e..0000000000 --- a/Fr8Data/DataTransferObjects/ExternalEventDTO.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - /// - /// This entity represents a DocuSign event that user may subscribe to - /// - public class ExternalEventDTO - { - [JsonProperty("id")] - public int Id { get; set; } - - [JsonProperty("name")] - public string Name { get; set; } - - public ExternalEventDTO(int id, string name) - { - Id = id; - Name = name; - } - } -} diff --git a/Fr8Data/DataTransferObjects/ExternalObjectHandleDTO.cs b/Fr8Data/DataTransferObjects/ExternalObjectHandleDTO.cs deleted file mode 100644 index a30734c2e9..0000000000 --- a/Fr8Data/DataTransferObjects/ExternalObjectHandleDTO.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Fr8Data.DataTransferObjects -{ - public class ExternalObjectHandleDTO - { - public string Name { get; set; } - public string Description { get; set; } - public string ManifestType { get; set; } - public string DirectUrl { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/FieldDTO.cs b/Fr8Data/DataTransferObjects/FieldDTO.cs deleted file mode 100644 index 127b5a9cc0..0000000000 --- a/Fr8Data/DataTransferObjects/FieldDTO.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Collections.Generic; -using Fr8Data.Crates; -using Fr8Data.States; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; - -namespace Fr8Data.DataTransferObjects -{ - [System.Diagnostics.DebuggerDisplay("Key = '{Key}', Value = '{Value}'")] - public class FieldDTO : System.ICloneable - { - public const string Data_AllowableValues = "allowableValues"; - - - [JsonProperty("key")] - public string Key { get; set; } - - [JsonProperty("value")] - public string Value { get; set; } - - [JsonProperty("label")] - public string Label { get; set; } - - [JsonProperty("fieldType")] - public string FieldType { get; set; } - - [JsonProperty("isRequired")] - public bool IsRequired { get; set; } - - [JsonProperty("tags", DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore)] - public string Tags { get; set; } - - [JsonProperty("availability", DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore)] - public AvailabilityType Availability { get; set; } - - [JsonProperty("sourceCrateManifest", DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore)] - public CrateManifestType SourceCrateManifest { get; set; } - - [JsonProperty("sourceCrateLabel", DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore)] - public string SourceCrateLabel { get; set; } - - [JsonProperty("sourceActivityId", DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore)] - public string SourceActivityId { get; set; } - - [JsonProperty("data", DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore)] - public Dictionary Data { get; set; } - - public FieldDTO() - { - //Availability = AvailabilityType.Configuration; - } - - public FieldDTO(string key) : this() - { - Key = key; - } - - public FieldDTO(string key, AvailabilityType availability) : this() - { - Key = key; - Availability = availability; - } - - public FieldDTO(string key, string value) : this() - { - Key = key; - Value = value; - } - - public FieldDTO(string key, string value, AvailabilityType availability) : this() - { - Key = key; - Value = value; - Availability = availability; - } - - public FieldDTO Clone() - { - return new FieldDTO - { - Key = Key, - Value = Value, - Tags = Tags, - Label = Label, - Data = Data == null ? null : new Dictionary(Data), - Availability = Availability, - SourceCrateManifest = SourceCrateManifest, - SourceCrateLabel = SourceCrateLabel, - SourceActivityId = SourceActivityId - }; - } - - object System.ICloneable.Clone() - { - return Clone(); - } - - public T GetData(string key) - { - JToken value; - - if (Data == null || !Data.TryGetValue(key, out value)) - { - return default(T); - } - - return value.ToObject(); - } - - public void SetData(string key, object value) - { - if (Data == null) - { - Data = new Dictionary(); - } - - Data[key] = JToken.FromObject(value); - } - } -} diff --git a/Fr8Data/DataTransferObjects/FieldType.cs b/Fr8Data/DataTransferObjects/FieldType.cs deleted file mode 100644 index 8637765221..0000000000 --- a/Fr8Data/DataTransferObjects/FieldType.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Fr8Data.DataTransferObjects -{ - public static class FieldType - { - public const string String = "String"; - - public const string Date = "Date"; - - public const string PickList = "PickList"; - } -} diff --git a/Fr8Data/DataTransferObjects/FieldValidationDTO.cs b/Fr8Data/DataTransferObjects/FieldValidationDTO.cs deleted file mode 100644 index 28c9941b96..0000000000 --- a/Fr8Data/DataTransferObjects/FieldValidationDTO.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using Fr8Data.Constants; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class FieldValidationDTO - { - [JsonProperty("fieldName")] - public string FieldName { get; set; } - - [JsonProperty("crateLabel")] - public string CrateLabel { get; set; } - - [JsonProperty("direction")] - public ActivityDirection Direction { get; set; } - - [JsonProperty("manifestType")] - public string ManifestType { get; set; } - - [JsonProperty("currentActionId")] - public Guid CurrentActivityId { get; set; } - - public FieldValidationDTO() - { - - } - - public FieldValidationDTO(Guid currentActionId, string fieldName, ActivityDirection direction, string manifestType, string crateLabel) - { - FieldName = fieldName; - CrateLabel = crateLabel; - Direction = direction; - ManifestType = manifestType; - CurrentActivityId = currentActionId; - } - - public FieldValidationDTO(Guid currentActionId, string fieldName) - { - FieldName = fieldName; - CurrentActivityId = currentActionId; - Direction = ActivityDirection.Up; - } - } -} diff --git a/Fr8Data/DataTransferObjects/FileDTO.cs b/Fr8Data/DataTransferObjects/FileDTO.cs deleted file mode 100644 index c9f9341447..0000000000 --- a/Fr8Data/DataTransferObjects/FileDTO.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class FileDTO - { - public int Id { get; set; } - public string OriginalFileName { get; set; } - public string CloudStorageUrl { get; set; } - public string Tags { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/FileDescriptionDTO.cs b/Fr8Data/DataTransferObjects/FileDescriptionDTO.cs deleted file mode 100644 index ea28f080d6..0000000000 --- a/Fr8Data/DataTransferObjects/FileDescriptionDTO.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class FileDescriptionDTO - { - public int Id { get; set; } - - public string OriginalFileName { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/FilterConditionDTO.cs b/Fr8Data/DataTransferObjects/FilterConditionDTO.cs deleted file mode 100644 index 268705a99d..0000000000 --- a/Fr8Data/DataTransferObjects/FilterConditionDTO.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - /// - /// Single FilterPane condition. - /// - public class FilterConditionDTO - { - [JsonProperty("field")] - public string Field { get; set; } - - [JsonProperty("operator")] - public string Operator { get; set; } - - [JsonProperty("value")] - public string Value { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/FilterDataDTO.cs b/Fr8Data/DataTransferObjects/FilterDataDTO.cs deleted file mode 100644 index e345df51f6..0000000000 --- a/Fr8Data/DataTransferObjects/FilterDataDTO.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - /// - /// Filter execution type. - /// - public enum FilterExecutionType - { - WithFilter = 1, - WithoutFilter = 2 - } - - /// - /// DTO for deserializing data from FilterPane form when Executing action. - /// - public class FilterDataDTO - { - [JsonProperty("executionType")] - public FilterExecutionType ExecutionType { get; set; } - - [JsonProperty("conditions")] - public List Conditions { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/FinancialLineDTO.cs b/Fr8Data/DataTransferObjects/FinancialLineDTO.cs deleted file mode 100644 index 58de3b42a6..0000000000 --- a/Fr8Data/DataTransferObjects/FinancialLineDTO.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class FinancialLineDTO - { - [JsonProperty("amount")] - public string Amount { get; set; } - [JsonProperty("accountName")] - public string AccountName { get; set; } - [JsonProperty("accountId")] - public string AccountId { get; set; } - [JsonProperty("debitOrCredit")] - public string DebitOrCredit { get; set; } - [JsonProperty("Description")] - public string Description { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/Fr8DataDTO.cs b/Fr8Data/DataTransferObjects/Fr8DataDTO.cs deleted file mode 100644 index f875f0748e..0000000000 --- a/Fr8Data/DataTransferObjects/Fr8DataDTO.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class Fr8DataDTO - { - public ActivityDTO ActivityDTO { get; set; } - public Guid? ContainerId { get; set; } - - /// - /// This property is used for integration tests - /// - public string ExplicitData { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/Helpers/ActivityResponseHelper.cs b/Fr8Data/DataTransferObjects/Helpers/ActivityResponseHelper.cs deleted file mode 100644 index 7db0e028be..0000000000 --- a/Fr8Data/DataTransferObjects/Helpers/ActivityResponseHelper.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using Fr8Data.Control; - -namespace Fr8Data.DataTransferObjects.Helpers -{ - public static class ActivityResponseHelper - { - #region Properties - - public const string ErrorPropertyName = "error"; - public const string PayloadPropertyName = "payload"; - public const string ResponseMessagePropertyName = "responseMessage"; - public const string ActivityPropertyName = "activity"; - public const string DocumentationPropertyName = "documentation"; - - #endregion - - #region Base methods - - private static ActivityResponseDTO AddBaseDTO(ActivityResponseDTO activityResponse, string propertyName, T objectToAdd ) - { - var responseBody = string.IsNullOrEmpty(activityResponse.Body) - ? new JObject() : JObject.Parse(activityResponse.Body); - - //in future extend it to work with JArray-property base if needed - JToken token = JsonConvert.SerializeObject(objectToAdd); - - JToken tempToken; - if (responseBody.TryGetValue(propertyName, out tempToken)) - { - //check if already some object exists, that case update it based on property - responseBody[propertyName] = token; - } - else - { - responseBody.Add(propertyName, token); - } - - activityResponse.Body = JsonConvert.SerializeObject(responseBody); - - return activityResponse; - } - - private static bool TryParseBaseDTO(ActivityResponseDTO activityResponse, string propertyName, out T parsedObject) - { - parsedObject = default(T); - - if(string.IsNullOrEmpty(activityResponse.Body)) - return false; - - try - { - JObject responseBody = JObject.Parse(activityResponse.Body); - var tokenObj = responseBody[propertyName]; - if (tokenObj == null) return false; - - parsedObject = JsonConvert.DeserializeObject(tokenObj.ToString()); - return true; - } - catch (Exception exception) - { - return false; - } - } - - #endregion - - #region Error Response Methods - - public static ActivityResponseDTO AddErrorDTO(this ActivityResponseDTO activityResponse, ErrorDTO errorDTO) - { - return AddBaseDTO(activityResponse, ErrorPropertyName, errorDTO); - } - - public static bool TryParseErrorDTO(this ActivityResponseDTO activityResponse, out ErrorDTO errorDTO) - { - return TryParseBaseDTO(activityResponse, ErrorPropertyName, out errorDTO); - } - - #endregion - - #region Success Response methods - - public static ActivityResponseDTO AddPayloadDTO(this ActivityResponseDTO activityResponse, PayloadDTO payloadDTO) - { - return AddBaseDTO(activityResponse, PayloadPropertyName, payloadDTO); - } - - public static bool TryParsePayloadDTO(this ActivityResponseDTO activityResponse, out PayloadDTO payloadDTO) - { - return TryParseBaseDTO(activityResponse, PayloadPropertyName, out payloadDTO); - } - - public static ActivityResponseDTO AddResponseMessageDTO(this ActivityResponseDTO activityResponse, ResponseMessageDTO responseMessageDTO) - { - return AddBaseDTO(activityResponse, ResponseMessagePropertyName, responseMessageDTO); - } - - public static bool TryParseResponseMessageDTO(this ActivityResponseDTO activityResponse, out ResponseMessageDTO responseMessageDTO) - { - return TryParseBaseDTO(activityResponse, ResponseMessagePropertyName, out responseMessageDTO); - } - - #endregion - - #region ActivityDTO Response Methods - - public static ActivityResponseDTO AddActivityDTO(this ActivityResponseDTO activityResponse, ActivityDTO activityDTO) - { - return AddBaseDTO(activityResponse, ActivityPropertyName, activityDTO); - } - - public static bool TryParseActivityDTO(this ActivityResponseDTO activityResponse, out ActivityDTO activityDTO) - { - return TryParseBaseDTO(activityResponse, ActivityPropertyName, out activityDTO); - } - - #endregion - - #region DocumentationDTO Response Methods - - public static ActivityResponseDTO AddDocumentationDTO(this ActivityResponseDTO activityResponse, DocumentationDTO documentationDTO) - { - return AddBaseDTO(activityResponse, DocumentationPropertyName, documentationDTO); - } - - public static bool TryParseDocumentationDTO(this ActivityResponseDTO activityResponse, out DocumentationDTO documentationDTO) - { - return TryParseBaseDTO(activityResponse, DocumentationPropertyName, out documentationDTO); - } - - #endregion - } -} diff --git a/Fr8Data/DataTransferObjects/HistoryItemDTO.cs b/Fr8Data/DataTransferObjects/HistoryItemDTO.cs deleted file mode 100644 index 26e92f28d7..0000000000 --- a/Fr8Data/DataTransferObjects/HistoryItemDTO.cs +++ /dev/null @@ -1,78 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class HistoryItemDTO - { - [JsonProperty("id")] - public int Id { get; set; } - [JsonProperty("activity")] - public string Activity { get; set; } - [JsonProperty("createDate")] - public DateTimeOffset CreateDate { get; set; } - [JsonProperty("fr8UserId")] - public string Fr8UserId { get; set; } - [JsonProperty("data")] - public string Data { get; set; } - [JsonProperty("objectId")] - public string ObjectId { get; set; } - [JsonProperty("component")] - public string Component { get; set; } - [JsonProperty("primaryCategory")] - public string PrimaryCategory { get; set; } - [JsonProperty("secondaryCategory")] - public string SecondaryCategory { get; set; } - [JsonProperty("status")] - public string Status { get; set; } - } - - public class IncidentDTO : HistoryItemDTO - { - [JsonProperty("priority")] - public int Priority { get; set; } - [JsonProperty("isHighPriority")] - public bool isHighPriority { get; set; } - - } - - public class FactDTO : HistoryItemDTO - { - [JsonProperty("createdByID")] - public string CreatedByID { get; set; } - } - - public class HistoryQueryDTO - { - [JsonProperty("page")] - public int? Page { get; set; } - - [JsonProperty("isDescending")] - public bool? IsDescending { get; set; } - - [JsonProperty("isCurrentUser")] - public bool IsCurrentUser { get; set; } - - [JsonProperty("itemPerPage")] - public int? ItemPerPage { get; set; } - - [JsonProperty("filter")] - public string Filter { get; set; } - } - - public class HistoryResultDTO where T : HistoryItemDTO - { - [JsonProperty("items")] - public IList Items { get; set; } - - [JsonProperty("currentPage")] - public int CurrentPage { get; set; } - - [JsonProperty("totalItemCount")] - public int TotalItemCount { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/IncomingCratesDTO.cs b/Fr8Data/DataTransferObjects/IncomingCratesDTO.cs deleted file mode 100644 index 36da527fb9..0000000000 --- a/Fr8Data/DataTransferObjects/IncomingCratesDTO.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class IncomingCratesDTO - { - [JsonProperty("availableFields")] - public readonly List AvailableFields = new List(); - - [JsonProperty("availableCrates")] - public readonly List AvailableCrates = new List(); - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/KeyValueDTO.cs b/Fr8Data/DataTransferObjects/KeyValueDTO.cs deleted file mode 100644 index 6975640994..0000000000 --- a/Fr8Data/DataTransferObjects/KeyValueDTO.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class KeyValueDTO - { - [JsonProperty("key")] - public string Key { get; set; } - - [JsonProperty("value")] - public string Value { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/LogItemDTO.cs b/Fr8Data/DataTransferObjects/LogItemDTO.cs deleted file mode 100644 index b05211d4b0..0000000000 --- a/Fr8Data/DataTransferObjects/LogItemDTO.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class LogItemDTO - { - public string Name { get; set; } - - public string PrimaryCategory { get; set; } - - public string SecondaryCategory { get; set; } - - public string Activity { get; set; } - - public string Data { get; set; } - - public bool IsLogged { get; set; } - - public string Status { get; set; } - - public string CustomerId { get; set; } - - public string ObjectId { get; set; } - - public DateTime LastUpdated { get; set; } - - public DateTime CreateDate { get; set; } - - public string Discriminator { get; set; } - - public string Priority { get; set; } - - public string Manufacturer { get; set; } - - public string Type { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/LoggingDataCM.cs b/Fr8Data/DataTransferObjects/LoggingDataCM.cs deleted file mode 100644 index c1999c551d..0000000000 --- a/Fr8Data/DataTransferObjects/LoggingDataCM.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Fr8Data.Constants; -using Fr8Data.Crates; -using Fr8Data.Manifests; -using Newtonsoft.Json.Linq; - -namespace Fr8Data.DataTransferObjects -{ - - public class LoggingDataCM : Manifest - { - public string ObjectId { get; set; } - - public string Fr8UserId { get; set; } - - public string Data { get; set; } - - public string PrimaryCategory { get; set; } - - public string SecondaryCategory { get; set; } - - public string Activity { get; set; } - - public LoggingDataCM() - : base(MT.LoggingData) - { - } - } - - -} diff --git a/Fr8Data/DataTransferObjects/ManifestDescriptionDTO.cs b/Fr8Data/DataTransferObjects/ManifestDescriptionDTO.cs deleted file mode 100644 index e4d6cc4264..0000000000 --- a/Fr8Data/DataTransferObjects/ManifestDescriptionDTO.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class ManifestDescriptionDTO - { - [JsonProperty("id")] - public string Id { get; set; } - - [JsonProperty("name")] - public string Name { get; set; } - - [JsonProperty("version")] - public string Version { get; set; } - - [JsonProperty("sampleJSON")] - public string SampleJSON { get; set; } - - [JsonProperty("description")] - public string Description { get; set; } - - [JsonProperty("registeredBy")] - public string RegisteredBy { get; set; } - - } -} diff --git a/Fr8Data/DataTransferObjects/ManifestRegistryParams .cs b/Fr8Data/DataTransferObjects/ManifestRegistryParams .cs deleted file mode 100644 index 76743cb0fc..0000000000 --- a/Fr8Data/DataTransferObjects/ManifestRegistryParams .cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - /// - /// Used in ManifestRegistryController - /// - public class ManifestRegistryParams - { - public string name { get; set; } - public string version { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ManufacturerDTO.cs b/Fr8Data/DataTransferObjects/ManufacturerDTO.cs deleted file mode 100644 index 3d47ef5bd3..0000000000 --- a/Fr8Data/DataTransferObjects/ManufacturerDTO.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class ManufacturerDTO - { - } -} diff --git a/Fr8Data/DataTransferObjects/OrganizationDTO.cs b/Fr8Data/DataTransferObjects/OrganizationDTO.cs deleted file mode 100644 index 9b1a1375da..0000000000 --- a/Fr8Data/DataTransferObjects/OrganizationDTO.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class OrganizationDTO - { - [JsonProperty("id")] - public int Id { get; set; } - - [JsonProperty("name")] - public string Name { get; set; } - - [JsonProperty("themeName")] - public string ThemeName { get; set; } - - [JsonProperty("backgroundColor")] - public string BackgroundColor { get; set; } - - [JsonProperty("logoUrl")] - public string LogoUrl { get; set; } - - } -} diff --git a/Fr8Data/DataTransferObjects/PageDefinitionDTO.cs b/Fr8Data/DataTransferObjects/PageDefinitionDTO.cs deleted file mode 100644 index 963ace2d2e..0000000000 --- a/Fr8Data/DataTransferObjects/PageDefinitionDTO.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections.Generic; - -namespace Fr8Data.DataTransferObjects -{ - public class PageDefinitionDTO - { - public string Title { get; set; } - public IEnumerable Tags { get; set; } - public string Url { get; set; } - public string Type { get; set; } - public string Author { get; set; } - public string Description { get; set; } - public string AuthorUrl { get; set; } - //TODO: Create Value Object - public string PageName { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/PayloadDTO.cs b/Fr8Data/DataTransferObjects/PayloadDTO.cs deleted file mode 100644 index 078bc0257d..0000000000 --- a/Fr8Data/DataTransferObjects/PayloadDTO.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using Newtonsoft.Json.Linq; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class PayloadDTO - { - public PayloadDTO(Guid containerId) - { - ContainerId = containerId; - } - - [JsonProperty("container")] - public CrateStorageDTO CrateStorage { get; set; } - - public Guid ContainerId { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/PermissionDTO.cs b/Fr8Data/DataTransferObjects/PermissionDTO.cs deleted file mode 100644 index af07dc4eda..0000000000 --- a/Fr8Data/DataTransferObjects/PermissionDTO.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class PermissionDTO - { - public int Permission { get; set; } - public string ObjectType { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/PlanDTO.cs b/Fr8Data/DataTransferObjects/PlanDTO.cs deleted file mode 100644 index 1f405996ef..0000000000 --- a/Fr8Data/DataTransferObjects/PlanDTO.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class PlanDTO - { - public PlanFullDTO Plan { get; set; } - } - - public class PlanQueryDTO - { - [JsonProperty("id")] - public Guid? Id { get; set; } - - [JsonProperty("page")] - public int? Page { get; set; } - - [JsonProperty("orderBy")] - public string OrderBy { get; set; } - - [JsonProperty("isDescending")] - public bool? IsDescending { get; set; } - - [JsonProperty("planPerPage")] - public int? PlanPerPage { get; set; } - - [JsonProperty("status")] - public int? Status { get; set; } - - [JsonProperty("category")] - public string Category { get; set; } - - [JsonProperty("filter")] - public string Filter { get; set; } - } - - public class PlanResultDTO - { - [JsonProperty("plans")] - public IList Plans { get; set; } - - [JsonProperty("currentPage")] - public int CurrentPage { get; set; } - - [JsonProperty("totalPlanCount")] - public int TotalPlanCount { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/PlanFullDTO.cs b/Fr8Data/DataTransferObjects/PlanFullDTO.cs deleted file mode 100644 index b2ffe1fd5f..0000000000 --- a/Fr8Data/DataTransferObjects/PlanFullDTO.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Collections.Generic; - -namespace Fr8Data.DataTransferObjects -{ - /// - /// Plan DTO that contains full graph of other DTO objects - /// Specifically used in Workflow Designer to draw entire process. - /// - public class PlanFullDTO : PlanNoChildrenDTO - { - /// - /// List of SubPlan DTOs. - /// - public IEnumerable SubPlans { get; set; } - - public string Fr8UserId { get; set; } - } - - /// - /// SubPlan DTO that contains full graph of other DTO objects. - /// - public class FullSubplanDto : SubplanDTO - { - /// - /// List of ActionList DTOs. - /// - public List Activities { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/PlanNoChildrenDTO.cs b/Fr8Data/DataTransferObjects/PlanNoChildrenDTO.cs deleted file mode 100644 index afba313bbe..0000000000 --- a/Fr8Data/DataTransferObjects/PlanNoChildrenDTO.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using Fr8Data.States; - -namespace Fr8Data.DataTransferObjects -{ - public class PlanNoChildrenDTO - { - public Guid Id { get; set; } - - [Required] - public string Name { get; set; } - - public string Tag { get; set; } - - public string Description { get; set; } - - public DateTimeOffset LastUpdated { get; set; } - - public int PlanState { get; set; } - - public Guid StartingSubPlanId { get; set; } - - public PlanVisibility Visibility { get; set; } - - public string Category { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/PlanTemplates/ActivityDescriptionDTO.cs b/Fr8Data/DataTransferObjects/PlanTemplates/ActivityDescriptionDTO.cs deleted file mode 100644 index 497713136b..0000000000 --- a/Fr8Data/DataTransferObjects/PlanTemplates/ActivityDescriptionDTO.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Data.Interfaces.DataTransferObjects.PlanTemplates -{ - public class ActivityDescriptionDTO - { - public Guid Id { get; set; } - - public string Name { get; set; } - - public string Version { get; set; } - - public string OriginalId { get; set; } - - public string CrateStorage { get; set; } - - public Guid ActivityTemplateId { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/PlanTemplates/NodeTransitionDTO.cs b/Fr8Data/DataTransferObjects/PlanTemplates/NodeTransitionDTO.cs deleted file mode 100644 index 16e9627aa9..0000000000 --- a/Fr8Data/DataTransferObjects/PlanTemplates/NodeTransitionDTO.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects.PlanTemplates -{ - public class NodeTransitionDTO - { - public Guid Id { get; set; } - - public string Transition { get; set; } - - /// - /// Used if Containers generated from this PlanDescription would transition to another Activity described in this PlanDescription. Validation should make sure that all ActivityDescriptionIds can be found somewhere in the PlanDescription. This is jused for Jump to Activity and Jump to Subplan. - /// - public Guid? ActivityDescriptionId { get; set; } - - /// - /// Used if Containers generated from this PlanDescription would transition to Plans generated from another PlanDescription - /// - // public Guid? PlanTemplateId { get; set; } - - /// - /// Used if Containers generated from this PlanDescription would transition to an existing Plan. Currently assumes that the existing Plan will be hosted by the same Hub. Eventually we'll need a way to address a Plan running on another Hub. - /// - public Guid? PlanId { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/PlanTemplates/PlanNodeDescriptionDTO.cs b/Fr8Data/DataTransferObjects/PlanTemplates/PlanNodeDescriptionDTO.cs deleted file mode 100644 index b72b4c60ed..0000000000 --- a/Fr8Data/DataTransferObjects/PlanTemplates/PlanNodeDescriptionDTO.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Data.Interfaces.DataTransferObjects.PlanTemplates; -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects.PlanTemplates -{ - public class PlanNodeDescriptionDTO - { - public Guid Id { get; set; } - - public Guid? ParentNodeId { get; set; } - - public string Name { get; set; } - - public List Transitions { get; set; } - - public ActivityDescriptionDTO ActivityDescription { get; set; } - - public string SubPlanName { get; set; } - - public string SubPlanOriginalId { get; set; } - - public bool IsStartingSubplan { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/PlanTemplates/PlanTemplateDTO.cs b/Fr8Data/DataTransferObjects/PlanTemplates/PlanTemplateDTO.cs deleted file mode 100644 index 48cdd71969..0000000000 --- a/Fr8Data/DataTransferObjects/PlanTemplates/PlanTemplateDTO.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects.PlanTemplates -{ - public class PlanTemplateDTO - { - public Guid Id { get; set; } - - public string Name { get; set; } - - public Guid? StartingPlanNodeDescriptionId { get; set; } - - public List PlanNodeDescriptions { get; set; } - - public string Description { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ProfileDTO.cs b/Fr8Data/DataTransferObjects/ProfileDTO.cs deleted file mode 100644 index 0b187a1563..0000000000 --- a/Fr8Data/DataTransferObjects/ProfileDTO.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class ProfileDTO - { - [JsonProperty("id")] - public string Id { get; set; } - [JsonProperty("name")] - public string Name { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/PublishPlanTemplateDTO.cs b/Fr8Data/DataTransferObjects/PublishPlanTemplateDTO.cs deleted file mode 100644 index 18f7636c01..0000000000 --- a/Fr8Data/DataTransferObjects/PublishPlanTemplateDTO.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using Newtonsoft.Json.Linq; - -namespace Fr8Data.DataTransferObjects -{ - public class PublishPlanTemplateDTO - { - public string Name { get; set; } - public string Description { get; set; } - public JToken PlanContents { get; set; } - public Guid ParentPlanId { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/QueryDTO.cs b/Fr8Data/DataTransferObjects/QueryDTO.cs deleted file mode 100644 index d5b3562463..0000000000 --- a/Fr8Data/DataTransferObjects/QueryDTO.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class QueryDTO - { - public QueryDTO() - { - Criteria = new List(); - } - - public QueryDTO(string name, IEnumerable conditions) : this() - { - Name = name; - Criteria.AddRange(conditions); - } - - public QueryDTO(string name, params FilterConditionDTO[] conditions) : this() - { - Name = name; - Criteria.AddRange(conditions); - } - - public string Name { get; set; } - - public List Criteria { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/RecipientDTO.cs b/Fr8Data/DataTransferObjects/RecipientDTO.cs deleted file mode 100644 index 01b8d59465..0000000000 --- a/Fr8Data/DataTransferObjects/RecipientDTO.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace Fr8Data.DataTransferObjects -{ - public class RecipientDTO - { - public int Id { get; set; } - public int? EmailID { get; set; } - public virtual EmailDTO Email { get; set; } - public int? EmailAddressID { get; set; } - public virtual EmailAddressDTO EmailAddress { get; set; } - public int? EmailParticipantType { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/RequestParameters/PlansGetParams.cs b/Fr8Data/DataTransferObjects/RequestParameters/PlansGetParams.cs deleted file mode 100644 index 806220c5d4..0000000000 --- a/Fr8Data/DataTransferObjects/RequestParameters/PlansGetParams.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Fr8Data.States; - -namespace Fr8Data.DataTransferObjects.RequestParameters -{ - public class PlansGetParams - { - public Guid? id { get; set; } - public Guid? activity_id { get; set; } - public bool include_children { get; set; } = false; - public string name { get; set; } - public PlanVisibility visibility { get; set; } = PlanVisibility.Standard; - } -} diff --git a/Fr8Data/DataTransferObjects/RequestParameters/PlansPostParams.cs b/Fr8Data/DataTransferObjects/RequestParameters/PlansPostParams.cs deleted file mode 100644 index 412d5112bf..0000000000 --- a/Fr8Data/DataTransferObjects/RequestParameters/PlansPostParams.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects.RequestParameters -{ - public class PlansPostParams - { - public bool update_registrations { get; set; } = false; - public string solution_name { get; set; } - - } -} diff --git a/Fr8Data/DataTransferObjects/SlackPayloadDTO.cs b/Fr8Data/DataTransferObjects/SlackPayloadDTO.cs deleted file mode 100644 index 6502dd8b8e..0000000000 --- a/Fr8Data/DataTransferObjects/SlackPayloadDTO.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.DataTransferObjects -{ - public class SlackPayloadDTO - { - public string Channel { get; set; } - - public string Username { get; set; } - - public string Text { get; set; } - - - - } -} diff --git a/Fr8Data/DataTransferObjects/StandardAccountingTransactionDTO.cs b/Fr8Data/DataTransferObjects/StandardAccountingTransactionDTO.cs deleted file mode 100644 index e4dead8d0c..0000000000 --- a/Fr8Data/DataTransferObjects/StandardAccountingTransactionDTO.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class StandardAccountingTransactionDTO - { - [JsonProperty("name")] - public string Name { get; set; } - [JsonProperty("financialLines")] - public List FinancialLines { get; set; } - [JsonProperty("transactionDate")] - public DateTime TransactionDate { get; set; } - [JsonProperty("Memo")] - public string Memo { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/SubPlanDTO.cs b/Fr8Data/DataTransferObjects/SubPlanDTO.cs deleted file mode 100644 index ae9eb5250c..0000000000 --- a/Fr8Data/DataTransferObjects/SubPlanDTO.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; - -namespace Fr8Data.DataTransferObjects -{ - /// - /// Data transfer object for SubPlanDO entity. - /// - public class SubplanDTO - { - public Guid? SubPlanId { get; set; } - - public Guid? PlanId { get; set; } - - public Guid? ParentId { get; set; } - - public string Name { get; set; } - - public string TransitionKey { get; set; } - - public bool Runnable { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/TerminalDTO.cs b/Fr8Data/DataTransferObjects/TerminalDTO.cs deleted file mode 100644 index 8ce94535f3..0000000000 --- a/Fr8Data/DataTransferObjects/TerminalDTO.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class TerminalDTO - { - public TerminalDTO() - { - AuthenticationType = States.AuthenticationType.None; - } - - [JsonProperty("name")] - public string Name { get; set; } - [JsonProperty("label")] - public string Label { get; set; } - [JsonProperty("version")] - public string Version { get; set; } - [JsonProperty("terminalStatus")] - public int TerminalStatus { get; set; } - [JsonProperty("endpoint")] - public string Endpoint { get; set; } - [JsonProperty("description")] - public string Description { get; set; } - [JsonProperty("authenticationType")] - public int AuthenticationType { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/TerminalDiscoveryDTO.cs b/Fr8Data/DataTransferObjects/TerminalDiscoveryDTO.cs deleted file mode 100644 index d188f56534..0000000000 --- a/Fr8Data/DataTransferObjects/TerminalDiscoveryDTO.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class TerminalDiscoveryDTO - { - - public bool Success { get; set; } - public string Name { get; set; } - public string Version { get; set; } - public List Activities { get; set; } - - - - - } -} diff --git a/Fr8Data/DataTransferObjects/TerminalNotificationDTO.cs b/Fr8Data/DataTransferObjects/TerminalNotificationDTO.cs deleted file mode 100644 index f31fe37d8c..0000000000 --- a/Fr8Data/DataTransferObjects/TerminalNotificationDTO.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Newtonsoft.Json; -using System; - -namespace Fr8Data.DataTransferObjects -{ - public class TerminalNotificationDTO - { - //TODO create type enum for notifications - [JsonProperty("type")] - public string Type { get; set; } - - [JsonProperty("subject")] - public string Subject { get; set; } - - [JsonProperty("message")] - public string Message { get; set; } - - [JsonProperty("terminalName")] - public string TerminalName { get; set; } - - [JsonProperty("terminalVersion")] - public string TerminalVersion { get; set; } - - [JsonProperty("activityName")] - public string ActivityName { get; set; } - - [JsonProperty("activityVersion")] - public string ActivityVersion { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/UserDTO.cs b/Fr8Data/DataTransferObjects/UserDTO.cs deleted file mode 100644 index 3341206f8b..0000000000 --- a/Fr8Data/DataTransferObjects/UserDTO.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class UserDTO - { - public string Id { get; set; } - public string FirstName { get; set; } - public string LastName { get; set; } - public string UserName { get; set; } - - public int EmailAddressID { get; set; } - public string EmailAddress { get; set; } - - public int Status { get; set; } - - public string Role { get; set; } - - public int? organizationId { get; set; } - - public Guid ProfileId { get; set; } - public string Class { get; set; } - - public bool CanManagePageDefinitions { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/ValidationErrorsDTO.cs b/Fr8Data/DataTransferObjects/ValidationErrorsDTO.cs deleted file mode 100644 index 299e1b5ad7..0000000000 --- a/Fr8Data/DataTransferObjects/ValidationErrorsDTO.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class ValidationErrorsDTO - { - [JsonProperty("validationErrors")] - public readonly List ValidationErrors = new List(); - - public ValidationErrorsDTO() - { - } - - public ValidationErrorsDTO(IEnumerable errors) - { - ValidationErrors.AddRange(errors); - } - } -} diff --git a/Fr8Data/DataTransferObjects/ValidationResultDTO.cs b/Fr8Data/DataTransferObjects/ValidationResultDTO.cs deleted file mode 100644 index d230c3fe0e..0000000000 --- a/Fr8Data/DataTransferObjects/ValidationResultDTO.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class ValidationResultDTO - { - // list of controls that values are responsible for validation failure. Can be empty or null of corresponding error is activity-wide. - [JsonProperty("controlNames")] - public List ControlNames { get; set; } = new List(); - // validation error message - [JsonProperty("errorMessage")] - public string ErrorMessage { get; set; } - } -} diff --git a/Fr8Data/DataTransferObjects/WebServiceActivitySetDTO.cs b/Fr8Data/DataTransferObjects/WebServiceActivitySetDTO.cs deleted file mode 100644 index c9f33b39fb..0000000000 --- a/Fr8Data/DataTransferObjects/WebServiceActivitySetDTO.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Collections.Generic; - -namespace Fr8Data.DataTransferObjects -{ - public class WebServiceActivitySetDTO - { - public string WebServiceIconPath { get; set; } - public List Activities { get; set; } - public string WebServiceName { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/DataTransferObjects/WebServiceDTO.cs b/Fr8Data/DataTransferObjects/WebServiceDTO.cs deleted file mode 100644 index bfcdb9d902..0000000000 --- a/Fr8Data/DataTransferObjects/WebServiceDTO.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Newtonsoft.Json; - -namespace Fr8Data.DataTransferObjects -{ - public class WebServiceDTO - { - [JsonProperty("id")] - public int Id { get; set; } - - [JsonProperty("name")] - public string Name { get; set; } - - [JsonProperty("iconPath")] - public string IconPath { get; set; } - } -} \ No newline at end of file diff --git a/Fr8Data/Fr8Data.csproj b/Fr8Data/Fr8Data.csproj deleted file mode 100644 index ff0e83e6eb..0000000000 --- a/Fr8Data/Fr8Data.csproj +++ /dev/null @@ -1,259 +0,0 @@ - - - - - Debug - AnyCPU - {A3178D71-A2C3-45B9-8334-ADCC7C313541} - Library - Properties - Fr8Data - Fr8Data - v4.5 - 512 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\Demo\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\Dev\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - - ..\fr8company\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {d6c86cff-37c0-49be-9f77-4f876ce6a793} - Utilities - - - - - \ No newline at end of file diff --git a/Fr8Data/Helpers/FieldMemberAccessor.cs b/Fr8Data/Helpers/FieldMemberAccessor.cs deleted file mode 100644 index 37ff296fa6..0000000000 --- a/Fr8Data/Helpers/FieldMemberAccessor.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Reflection; - -namespace Fr8Data.Helpers -{ - public class FieldMemberAccessor : IMemberAccessor - { - private readonly FieldInfo _fieldInfo; - - public bool CanRead => true; - public bool CanWrite => true; - public Type MemberType => _fieldInfo.FieldType; - public string Name => _fieldInfo.Name; - - public FieldMemberAccessor(FieldInfo fieldInfo) - { - _fieldInfo = fieldInfo; - } - - public object GetValue(object instance) - { - return _fieldInfo.GetValue(instance); - } - - public void SetValue(object instance, object value) - { - _fieldInfo.SetValue(instance, value); - } - - public TAttribute GetCustomAttribute() - where TAttribute : Attribute - { - return _fieldInfo.GetCustomAttribute(); - } - } -} \ No newline at end of file diff --git a/Fr8Data/Helpers/Fr8ApiHelper.cs b/Fr8Data/Helpers/Fr8ApiHelper.cs deleted file mode 100644 index 308163835a..0000000000 --- a/Fr8Data/Helpers/Fr8ApiHelper.cs +++ /dev/null @@ -1,170 +0,0 @@ -using System; -using System.Linq; -using System.Linq.Expressions; -using Fr8Data.Constants; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Manifests; - -namespace Fr8Data.Helpers -{ - public static class Fr8ApiHelper - { - public static string FindField(this ICrateStorage payloadStorage, string fieldKey, bool ignoreCase = false, MT? manifestType = null, string label = null) - { - //search through every crate except operational state crate - Expression> defaultSearchArguments = (c) => c.ManifestType.Id != (int)MT.OperationalStatus; - - //apply label criteria if not null - if (label != null) - { - Expression> andLabel = (c) => c.Label == label; - defaultSearchArguments = Expression.Lambda>(Expression.AndAlso(defaultSearchArguments, andLabel), defaultSearchArguments.Parameters); - } - - //apply manifest criteria if not null - if (manifestType != null) - { - Expression> andManifestType = (c) => c.ManifestType.Id == (int)manifestType; - defaultSearchArguments = Expression.Lambda>(Expression.AndAlso(defaultSearchArguments, andManifestType), defaultSearchArguments.Parameters); - } - - //find user requested crate - var foundCrates = payloadStorage.Where(defaultSearchArguments.Compile()).ToList(); - if (!foundCrates.Any()) - { - return null; - } - - //get operational state crate to check for loops - var operationalState = payloadStorage.CrateContentsOfType().Single(); - //iterate through found crates to find the payload - foreach (var foundCrate in foundCrates) - { - var foundField = FindField(operationalState, foundCrate, fieldKey); - if (foundField != null) - { - return foundField.Value; - } - } - - return null; - } - - public static string FindField(this ICrateStorage payloadStorage, FieldDTO fieldToMatch) - { - if (payloadStorage == null) - { - throw new ArgumentNullException(nameof(payloadStorage)); - } - if (fieldToMatch == null) - { - throw new ArgumentNullException(nameof(fieldToMatch)); - } - if (string.IsNullOrWhiteSpace(fieldToMatch.Key)) - { - return null; - } - var filteredCrates = payloadStorage.AsQueryable(); - if (!string.IsNullOrWhiteSpace(fieldToMatch.SourceActivityId)) - { - filteredCrates = filteredCrates.Where(x => x.SourceActivityId == fieldToMatch.SourceActivityId); - } - if (!string.IsNullOrEmpty(fieldToMatch.SourceCrateLabel)) - { - filteredCrates = filteredCrates.Where(x => x.Label == fieldToMatch.SourceCrateLabel); - } - if (fieldToMatch.SourceCrateManifest != CrateManifestType.Any && fieldToMatch.SourceCrateManifest != CrateManifestType.Unknown) - { - filteredCrates = filteredCrates.Where(x => x.ManifestType.Equals(fieldToMatch.SourceCrateManifest)); - } - var operationalState = payloadStorage.CrateContentsOfType().Single(); - //iterate through found crates to find the payload - foreach (var foundCrate in filteredCrates) - { - var foundField = FindField(operationalState, foundCrate, fieldToMatch.Key); - if (foundField != null) - { - return foundField.Value; - } - } - return null; - } - - - private static FieldDTO FindField(OperationalStateCM operationalState, Crate crate, string fieldKey) - { - object searchArea; - //let's check if we are in a loop - //and this is a loop data? - //check if this crate is loop related - var loopState = operationalState.CallStack.FirstOrDefault(x => - { - if (x.LocalData?.Type == "Loop") - { - var loopStatus = x.LocalData.ReadAs(); - - if (loopStatus != null && loopStatus.CrateManifest.CrateDescriptions[0].Label == crate.Label && loopStatus.CrateManifest.CrateDescriptions[0].ManifestType == crate.ManifestType.Type) - { - return true; - } - } - - return false; - }); - - if (loopState != null) //this is a loop related data request - { - searchArea = GetDataListItem(crate, loopState.LocalData.ReadAs().Index); - } - else - { - //hmmm this is a regular data request - //lets search in complete crate - searchArea = crate; - //if we have a StandardTableDataCM and we are not in the loop and crate has Headers - we should search next row - if (crate.IsOfType()) - { - var tableCrate = crate.Get(); - if (tableCrate.FirstRowHeaders && tableCrate.Table.Count > 1) - { - //TODO it is weird to get just first row of table data while searching for a field - //note: GetDataListItem function skips header - TableRowDTO row = GetDataListItem(crate, 0) as TableRowDTO; - if (row != null) - return row.Row.FirstOrDefault(a => a.Cell.Key == fieldKey)?.Cell; - } - } - } - - if (searchArea is Crate) - { - if (((Crate) searchArea).IsKnownManifest) - { - searchArea = ((Crate) searchArea).Get(); - } - else - { - return null; - } - } - - //we should find first related field and return - var fields = Fr8ReflectionHelper.FindFieldsRecursive(searchArea); - var fieldMatch = fields.FirstOrDefault(f => f.Key == fieldKey); - //let's return first match - return fieldMatch; - } - - private static object GetDataListItem(Crate crate, int index) - { - var tableData = crate.ManifestType.Id == (int)MT.StandardTableData ? crate.Get() : null; - if (tableData != null) - { - //why?? why just skip header and return first row? - return tableData.FirstRowHeaders ? tableData.Table[index + 1] : tableData.Table[index]; - } - return Fr8ReflectionHelper.FindFirstArray(crate.Get())[index]; - } - } -} diff --git a/Fr8Data/Helpers/Fr8ReflectionHelper.cs b/Fr8Data/Helpers/Fr8ReflectionHelper.cs deleted file mode 100644 index 7a6aa07a49..0000000000 --- a/Fr8Data/Helpers/Fr8ReflectionHelper.cs +++ /dev/null @@ -1,166 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using Fr8Data.DataTransferObjects; -using Fr8Data.Manifests; - -namespace Fr8Data.Helpers -{ - public class Fr8ReflectionHelper - { - public static IEnumerable FindFieldsRecursive(object obj) - { - var result = new List(); - if (obj == null) - { - return result; - } - var fieldDTO = obj as FieldDTO; - if (fieldDTO != null) - { - result.Add(fieldDTO); - return result; - } - var type = obj.GetType(); - if (IsPrimitiveType(type)) - { - return result; - } - var list = obj as IEnumerable; - if (list != null) - { - foreach (var element in list) - { - result.AddRange(FindFieldsRecursive(element)); - } - return result; - } - - - var propsToIgnore = new HashSet(); - var manifestType = typeof(Manifest); - var members = Fr8ReflectionHelper.GetMembers(type); - - // ingore properties from Manifest base class - if (manifestType.IsAssignableFrom(type)) - { - foreach (var prop in Fr8ReflectionHelper.GetMembers(manifestType)) - { - propsToIgnore.Add(prop.Name); - } - } - - foreach (var memberAccessor in members) - { - if (propsToIgnore.Contains(memberAccessor.Name)) - { - continue; - } - - if (IsPrimitiveType(memberAccessor.MemberType)) - { - result.Add(new FieldDTO(memberAccessor.Name, memberAccessor.GetValue(obj)?.ToString())); - } - else - { - result.AddRange(FindFieldsRecursive(memberAccessor.GetValue(obj))); - } - } - - return result; - } - - public static bool CheckAttributeOrTrue(IMemberAccessor memberAccessor, Predicate predicate) - where T : Attribute - { - var attribute = memberAccessor.GetCustomAttribute(); - - if (attribute == null) - { - return true; - } - - return predicate(attribute); - } - - public static object[] FindFirstArray(Object obj, int maxSearchDepth = 0) - { - return FindFirstArrayRecursive(obj, maxSearchDepth, 0); - } - - public static object[] FindFirstArrayRecursive(Object obj, int maxSearchDepth, int depth) - { - if (maxSearchDepth != 0 && depth > maxSearchDepth || obj == null) - { - return null; - } - - if (obj is IEnumerable) - { - return ((IEnumerable)obj).OfType().ToArray(); - } - - var objType = obj.GetType(); - bool isPrimitiveType = objType.IsPrimitive || objType.IsValueType || (objType == typeof(string)); - - if (!isPrimitiveType) - { - var objProperties = objType.GetProperties(); - foreach (var prop in objProperties.Where(x => x.GetIndexParameters().Length == 0)) - { - var result = FindFirstArrayRecursive(prop.GetValue(obj), maxSearchDepth, depth + 1); - - if (result != null) - { - return result; - } - } - } - - return null; - } - - public static IEnumerable GetMembers(Type type) - { - return type.GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(x => x.GetIndexParameters().Length == 0).Select(x => (IMemberAccessor)new PropertyMemberAccessor(x)) - .Concat(type.GetFields(BindingFlags.Instance | BindingFlags.Public).Select(x => (IMemberAccessor)new FieldMemberAccessor(x))); - } - - public static bool IsPrimitiveType(Type type) - { - return type.IsPrimitive - || type.IsValueType - || type == typeof(string) - || type == typeof(Guid) - || type == typeof(DateTime) - || (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>) && IsPrimitiveType(type.GetGenericArguments()[0])); - } - - public static bool CheckIfMemberIsCollectionOf(IMemberAccessor member) - { - if (member.MemberType.IsInterface && CheckIfTypeIsCollectionOf(member.MemberType)) - { - return true; - } - - return member.MemberType.GetInterfaces().Any(x => CheckIfTypeIsCollectionOf(x, typeof(TItem))); - } - - public static bool CheckIfTypeIsCollectionOf(Type type) - { - return CheckIfTypeIsCollectionOf(type, typeof(TItem)); - } - - public static bool CheckIfTypeIsCollectionOf(Type type, Type itemType) - { - var enumerableInterface = type.IsInterface && type.IsGenericType && type.GetGenericTypeDefinition() == typeof(IEnumerable<>) ? type : type.GetInterface("IEnumerable`1"); - if (enumerableInterface == null) - { - return false; - } - return itemType.IsAssignableFrom(enumerableInterface.GetGenericArguments()[0]); - } - } -} diff --git a/Fr8Data/Helpers/IMemberAccessor.cs b/Fr8Data/Helpers/IMemberAccessor.cs deleted file mode 100644 index 7e984c6c2c..0000000000 --- a/Fr8Data/Helpers/IMemberAccessor.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; - -namespace Fr8Data.Helpers -{ - public interface IMemberAccessor - { - bool CanRead { get; } - bool CanWrite { get; } - - Type MemberType { get; } - string Name { get; } - object GetValue(object instance); - void SetValue(object instance, object value); - TAttribute GetCustomAttribute() where TAttribute : Attribute; - } -} \ No newline at end of file diff --git a/Fr8Data/Helpers/PropertyMemberAccessor.cs b/Fr8Data/Helpers/PropertyMemberAccessor.cs deleted file mode 100644 index ce2f415a90..0000000000 --- a/Fr8Data/Helpers/PropertyMemberAccessor.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Reflection; - -namespace Fr8Data.Helpers -{ - public class PropertyMemberAccessor : IMemberAccessor - { - private readonly PropertyInfo _propertyInfo; - - public bool CanRead => _propertyInfo.CanRead; - public bool CanWrite => _propertyInfo.CanWrite; - public Type MemberType => _propertyInfo.PropertyType; - public string Name => _propertyInfo.Name; - - public PropertyMemberAccessor(PropertyInfo propertyInfo) - { - _propertyInfo = propertyInfo; - } - - public object GetValue(object instance) - { - return _propertyInfo.GetValue(instance); - } - - public void SetValue(object instance, object value) - { - _propertyInfo.SetValue(instance, value); - } - - public TAttribute GetCustomAttribute() - where TAttribute : Attribute - { - return _propertyInfo.GetCustomAttribute(); - } - } -} \ No newline at end of file diff --git a/Fr8Data/Infrastructure/JsonNet/ActivityTemplateActivityConverter.cs b/Fr8Data/Infrastructure/JsonNet/ActivityTemplateActivityConverter.cs deleted file mode 100644 index 9979c6cf45..0000000000 --- a/Fr8Data/Infrastructure/JsonNet/ActivityTemplateActivityConverter.cs +++ /dev/null @@ -1,63 +0,0 @@ -using Fr8Data.DataTransferObjects; -using Newtonsoft.Json; -using Newtonsoft.Json.Converters; -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Infrastructure.JsonNet -{ - class ActivityTemplateActivityConverter : JsonConverter - { - public override bool CanConvert(Type objectType) - { - return objectType == typeof(ActivityTemplateDTO); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - var jsonObject = JObject.Load(reader); - var instance = (ActivityTemplateDTO)Activator.CreateInstance(objectType); - serializer.Populate(jsonObject.CreateReader(), instance); - return instance; - } - - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) - { - var customTerminalConverter = new TerminalActivityTemplateConverter(); - var customWebServiceConvert = new WebServiceConverter(); - var item = (ActivityTemplateDTO)value; - writer.WriteStartObject(); - writer.WritePropertyName("id"); - writer.WriteValue(item.Id.ToString()); - writer.WritePropertyName("name"); - writer.WriteValue(item.Name); - writer.WritePropertyName("version"); - writer.WriteValue(item.Version); - writer.WritePropertyName("label"); - writer.WriteValue(item.Label); - writer.WritePropertyName("terminal"); - writer.WriteRawValue(JsonConvert.SerializeObject(item.Terminal, customTerminalConverter)); - writer.WritePropertyName("tags"); - writer.WriteValue(item.Tags); - writer.WritePropertyName("category"); - writer.WriteValue(item.Category.ToString()); - writer.WritePropertyName("type"); - writer.WriteValue(item.Type.ToString()); - writer.WritePropertyName("minPaneWidth"); - writer.WriteValue(item.MinPaneWidth); - writer.WritePropertyName("needsAuthentication"); - writer.WriteValue(item.NeedsAuthentication); - writer.WritePropertyName("webService"); - writer.WriteRawValue(JsonConvert.SerializeObject(item.WebService, customWebServiceConvert)); - writer.WritePropertyName("showDocumentation"); - writer.WriteRawValue(JsonConvert.SerializeObject(item.ShowDocumentation)); - writer.WriteEndObject(); - writer.Flush(); - } - - } -} diff --git a/Fr8Data/Infrastructure/JsonNet/AvailabilityConverter.cs b/Fr8Data/Infrastructure/JsonNet/AvailabilityConverter.cs deleted file mode 100644 index dd12c8afb4..0000000000 --- a/Fr8Data/Infrastructure/JsonNet/AvailabilityConverter.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Fr8Data.States; -using Newtonsoft.Json; -using System; - -namespace Fr8Data.Infrastructure.JsonNet -{ - class AvailabilityConverter : JsonConverter - { - public override bool CanConvert(Type objectType) - { - return objectType == typeof(AvailabilityType); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - var availabilityValue = reader.Value; - AvailabilityType availability; - if (availabilityValue == null) - { - availability = AvailabilityType.NotSet; - } - else - { - availability = (AvailabilityType) Enum.ToObject(typeof(AvailabilityType), availabilityValue); - } - return availability; - } - - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) - { - var item = (AvailabilityType)value; - if (item == AvailabilityType.NotSet) - { - writer.WriteNull(); - } - else - { - writer.WriteValue(item); - } - writer.Flush(); - } - } -} diff --git a/Fr8Data/Infrastructure/JsonNet/CreateTimeConverter.cs b/Fr8Data/Infrastructure/JsonNet/CreateTimeConverter.cs deleted file mode 100644 index 017ee1bb1f..0000000000 --- a/Fr8Data/Infrastructure/JsonNet/CreateTimeConverter.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Newtonsoft.Json; -using System; - -namespace Fr8Data.Infrastructure.JsonNet -{ - class CreateTimeConverter : JsonConverter - { - public override bool CanConvert(Type objectType) - { - return objectType == typeof(DateTime); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - var createTime = reader.Value; - if (createTime.ToString() == string.Empty) - { - createTime = default(DateTime); - } - else - { - createTime = (DateTime)createTime; - } - return createTime; - } - - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) - { - var createTime = (DateTime)value; - if (DateTime.Equals(createTime, default(DateTime))) - { - writer.WriteValue(string.Empty); - } - else - { - writer.WriteValue(createTime); - } - writer.Flush(); - } - } -} diff --git a/Fr8Data/Infrastructure/JsonNet/TerminalActivityTemplateConverter.cs b/Fr8Data/Infrastructure/JsonNet/TerminalActivityTemplateConverter.cs deleted file mode 100644 index abd844a3f3..0000000000 --- a/Fr8Data/Infrastructure/JsonNet/TerminalActivityTemplateConverter.cs +++ /dev/null @@ -1,39 +0,0 @@ -using Fr8Data.DataTransferObjects; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System; - -namespace Fr8Data.Infrastructure.JsonNet -{ - class TerminalActivityTemplateConverter : JsonConverter - { - public override bool CanConvert(Type objectType) - { - return objectType == typeof(TerminalDTO); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - var jsonObject = JObject.Load(reader); - var instance = (ActivityTemplateDTO)Activator.CreateInstance(objectType); - serializer.Populate(jsonObject.CreateReader(), instance); - return instance; - } - - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) - { - var item = (TerminalDTO)value; - writer.WriteStartObject(); - writer.WritePropertyName("name"); - writer.WriteValue(item.Name); - writer.WritePropertyName("label"); - writer.WriteValue(item.Label); - writer.WritePropertyName("version"); - writer.WriteValue(item.Version); - writer.WritePropertyName("endpoint"); - writer.WriteValue(item.Endpoint); - writer.WriteEndObject(); - writer.Flush(); - } - } -} diff --git a/Fr8Data/Infrastructure/JsonNet/WebServiceConverter.cs b/Fr8Data/Infrastructure/JsonNet/WebServiceConverter.cs deleted file mode 100644 index 119aaf5ada..0000000000 --- a/Fr8Data/Infrastructure/JsonNet/WebServiceConverter.cs +++ /dev/null @@ -1,40 +0,0 @@ -using Fr8Data.DataTransferObjects; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System; - -namespace Fr8Data.Infrastructure.JsonNet -{ - public class WebServiceConverter : JsonConverter - { - public override bool CanConvert(Type objectType) - { - return objectType == typeof(WebServiceDTO); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - var jsonObject = JObject.Load(reader); - var instance = (WebServiceDTO)Activator.CreateInstance(objectType); - serializer.Populate(jsonObject.CreateReader(), instance); - return instance; - } - - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) - { - if (value != null) - { - var item = (WebServiceDTO)value; - writer.WriteStartObject(); - writer.WritePropertyName("id"); - writer.WriteValue(item.Id); - writer.WritePropertyName("name"); - writer.WriteValue(item.Name); - writer.WritePropertyName("iconPath"); - writer.WriteValue(item.IconPath); - writer.WriteEndObject(); - writer.Flush(); - } - } - } -} diff --git a/Fr8Data/Infrastructure/StringToCrateStorageDTOConverter.cs b/Fr8Data/Infrastructure/StringToCrateStorageDTOConverter.cs deleted file mode 100644 index 091fe8e7d1..0000000000 --- a/Fr8Data/Infrastructure/StringToCrateStorageDTOConverter.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Fr8Data.DataTransferObjects; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; - -namespace Fr8Data.Infrastructure -{ - public class StringToCrateStorageDTOConverter - { - public static CrateStorageDTO Convert(string jsonString) - { - if (string.IsNullOrWhiteSpace(jsonString)) - { - return null; - } - - var storageDto = JsonConvert.DeserializeObject(jsonString); - - if (storageDto != null && storageDto.Crates != null) - { - foreach (var crateDto in storageDto.Crates) - { - // looks like we found records id "old" format - var value = crateDto.Contents as JValue; - if (value != null && value.Value is string) - { - try - { - crateDto.Contents = JsonConvert.DeserializeObject((string) value.Value); - } - catch - { - // do nothing. We can't deserializer contents. May be it is just a string? - } - } - } - } - - return storageDto; - } - } -} diff --git a/Fr8Data/Managers/CrateManager.StorageUpdater.cs b/Fr8Data/Managers/CrateManager.StorageUpdater.cs deleted file mode 100644 index c0af2c66b4..0000000000 --- a/Fr8Data/Managers/CrateManager.StorageUpdater.cs +++ /dev/null @@ -1,151 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq.Expressions; -using System.Reflection; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Infrastructure; -using Newtonsoft.Json; - -namespace Fr8Data.Managers -{ - partial class CrateManager - { - public class UpdatableCrateStorageStorage : IUpdatableCrateStorage - { - private readonly Expression _expr; - private readonly Func _getValue; - private Action _setValue; - private bool _discardChanges; - private ICrateStorage _crateStorage; - - public int Count - { - get { return _crateStorage.Count; } - } - - public UpdatableCrateStorageStorage(Expression> expr) - { - var memberExpr = expr.Body as MemberExpression; - - if (memberExpr == null) - { - throw new ArgumentException("Only member expressions is supported"); - } - - var me = (MemberExpression)memberExpr.Expression; - var ce = (ConstantExpression)me.Expression; - var fieldInfo = ce.Value.GetType().GetField(me.Member.Name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - - InitializeAccessors(memberExpr.Member, fieldInfo.GetValue(ce.Value), ReadStorage, x => CrateStorageSerializer.Default.ConvertToDto(x)); - } - - public UpdatableCrateStorageStorage(Expression> expr) - { - var memberExpr = expr.Body as MemberExpression; - - if (memberExpr == null) - { - throw new ArgumentException("Only member expressions is supported"); - } - - var me = (MemberExpression)memberExpr.Expression; - var ce = (ConstantExpression)me.Expression; - var fieldInfo = ce.Value.GetType().GetField(me.Member.Name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - - InitializeAccessors(memberExpr.Member, fieldInfo.GetValue(ce.Value), ReadStorage, x => JsonConvert.SerializeObject(CrateStorageSerializer.Default.ConvertToDto(x))); - } - - public void Replace(ICrateStorage crateStorage) - { - _crateStorage = crateStorage; - } - - public void Flush() - { - _setValue(_crateStorage ?? new CrateStorage()); - } - - public void Add(Crate crate) - { - _crateStorage.Add(crate); - } - - public void Add(params Crate[] crates) - { - foreach (var crate in crates) - { - _crateStorage.Add(crate); - } - } - - public void Clear() - { - _crateStorage.Clear(); - } - - public int Remove(Predicate predicate) - { - return _crateStorage.Remove(predicate); - } - - public int Replace(Predicate predicate, Crate crate) - { - return _crateStorage.Replace(predicate, crate); - } - - public IEnumerator GetEnumerator() - { - return _crateStorage.GetEnumerator(); - } - - private void InitializeAccessors(MemberInfo memberInfo, object instance, Func readConverter, Func writeConverter) - { - if (memberInfo is FieldInfo) - { - _crateStorage = readConverter(((FieldInfo)memberInfo).GetValue(instance)); - _setValue = x => ((FieldInfo)memberInfo).SetValue(instance, writeConverter(x)); - } - else if (memberInfo is PropertyInfo) - { - _crateStorage = readConverter(((PropertyInfo)memberInfo).GetValue(instance)); - _setValue = x => ((PropertyInfo)memberInfo).SetValue(instance, writeConverter(x)); - } - } - - private ICrateStorage ReadStorage(object value) - { - if (value is string) - { - return CrateStorageSerializer.Default.ConvertFromDto(StringToCrateStorageDTOConverter.Convert((string)value)); - } - - if (value is CrateStorageDTO) - { - return CrateStorageSerializer.Default.ConvertFromDto((CrateStorageDTO)value); - } - - return new CrateStorage(); - } - - public void DiscardChanges() - { - _discardChanges = true; - } - - public void Dispose() - { - if (!_discardChanges) - { - Flush(); - } - } - - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable)_crateStorage).GetEnumerator(); - } - } - } -} diff --git a/Fr8Data/Managers/CrateManager.cs b/Fr8Data/Managers/CrateManager.cs deleted file mode 100644 index 02a72a4c4b..0000000000 --- a/Fr8Data/Managers/CrateManager.cs +++ /dev/null @@ -1,300 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; -using Newtonsoft.Json; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Helpers; -using Fr8Data.Manifests; -using Fr8Data.States; - -namespace Fr8Data.Managers -{ - public partial class CrateManager : ICrateManager - { - public CrateStorageDTO ToDto(ICrateStorage storage) - { - return CrateStorageSerializer.Default.ConvertToDto(storage); - } - - public CrateDTO ToDto(Crate crate) - { - return crate != null ? CrateStorageSerializer.Default.ConvertToDto(crate) : null; - } - - public Crate FromDto(CrateDTO crate) - { - return crate != null ? CrateStorageSerializer.Default.ConvertFromDto(crate) : null; - } - - public ICrateStorage FromDto(CrateStorageDTO crateStorage) - { - return CrateStorageSerializer.Default.ConvertFromDto(crateStorage); - } - /// - /// Use this method to edit CrateStorage repersented byt CrateStorageDTO property of some class instance. This method will return IDisposable updater. - /// On Dispose it will write changes to the property specified by the Expression. - /// - /// - /// - public IUpdatableCrateStorage UpdateStorage(Expression> storageAccessExpression) - { - return new UpdatableCrateStorageStorage(storageAccessExpression); - } - //public void AddLogMessage(string label, List logItemList, ICrateStorage payload) - // { - // if (String.IsNullOrEmpty(label)) - // throw new ArgumentException("Parameter Label is empty"); - - // if (logItemList == null) - // throw new ArgumentNullException("Parameter LogItemDTO list is null."); - - // if (payload == null) - // throw new ArgumentNullException("Parameter ICrateStorage is null."); - - // var curManifestSchema = new StandardLoggingCM() - // { - // Item = logItemList - // }; - // payload.Add(Crate.FromContent(label, curManifestSchema)); - //} - - /// - /// Use this method to edit CrateStorage represented by string property of some class instance. This method will return IDisposable updater. - /// On Dispose it will write changes to the property specified by the Expression. - /// - /// - /// - public IUpdatableCrateStorage UpdateStorage(Expression> storageAccessExpression) - { - return new UpdatableCrateStorageStorage(storageAccessExpression); - } - - public bool IsEmptyStorage(CrateStorageDTO rawStorage) - { - if (rawStorage == null) - { - return true; - } - - return FromDto(rawStorage).Count == 0; - } - - public string EmptyStorageAsStr() - { - return CrateStorageAsStr(new CrateStorage()); - } - - public string CrateStorageAsStr(ICrateStorage storage) - { - return JsonConvert.SerializeObject(CrateStorageSerializer.Default.ConvertToDto(storage)); - } - - public string CrateStorageAsStr(CrateStorageDTO storageDTO) - { - return JsonConvert.SerializeObject(storageDTO); - } - - public Crate CreateAuthenticationCrate(string label, AuthenticationMode mode, bool revocation) - { - return Crate.FromContent(label, new StandardAuthenticationCM() - { - Mode = mode, - Revocation = revocation - }); - } - public Crate CreateDesignTimeFieldsCrate(string label, params FieldDTO[] fields) - { - return Crate.FromContent(label, new FieldDescriptionsCM() { Fields = fields.ToList() }); - } - - public Crate CreateManifestDescriptionCrate(string label, string name, string id, AvailabilityType availability) - { - return Crate.FromContent(label, new ManifestDescriptionCM() { Name = name, Id = id }, availability); - } - - public Crate CreateDesignTimeFieldsCrate(string label, AvailabilityType availability, params FieldDTO[] fields) - { - return Crate.FromContent(label, new FieldDescriptionsCM() { Fields = fields.ToList() }, availability); - } - - public Crate CreateDesignTimeFieldsCrate(string label, List fields, AvailabilityType availability) - { - return Crate.FromContent(label, new FieldDescriptionsCM() { Fields = fields }, availability); - } - - public Crate CreateDesignTimeFieldsCrate(string label, List fields) - { - return Crate.FromContent(label, new FieldDescriptionsCM() { Fields = fields }, AvailabilityType.NotSet); - } - - public Crate CreateStandardConfigurationControlsCrate(string label, params ControlDefinitionDTO[] controls) - { - return Crate.FromContent(label, new StandardConfigurationControlsCM() { Controls = controls.ToList() }, AvailabilityType.Configuration); - } - - public Crate CreateStandardEventSubscriptionsCrate(string label, string manufacturer, params string[] subscriptions ) - { - return Crate.FromContent(label, new EventSubscriptionCM() { Subscriptions = subscriptions.ToList(), Manufacturer = manufacturer}); - } - - public Crate CreateStandardEventReportCrate(string label, EventReportCM eventReport) - { - return Crate.FromContent(label, eventReport); - } - - public Crate CreateStandardTableDataCrate(string label, bool firstRowHeaders, params TableRowDTO[] table) - { - return Crate.FromContent(label, new StandardTableDataCM() { Table = table.ToList(), FirstRowHeaders = firstRowHeaders }); - } - - - - public Crate CreateOperationalStatusCrate(string label, OperationalStateCM operationalStatus) - { - return Crate.FromContent(label, operationalStatus); - } - - public Crate CreatePayloadDataCrate(string payloadDataObjectType, string crateLabel, StandardTableDataCM tableDataMS) - { - return Crate.FromContent(crateLabel, TransformStandardTableDataToStandardPayloadData(payloadDataObjectType, tableDataMS)); - } - - public StandardPayloadDataCM TransformStandardTableDataToStandardPayloadData(string curObjectType, StandardTableDataCM tableDataMS) - { - var payloadDataMS = new StandardPayloadDataCM() - { - PayloadObjects = new List(), - ObjectType = curObjectType, - }; - - int staringRow; - TableRowDTO columnHeadersRowDTO = null; - - if (tableDataMS.FirstRowHeaders) - { - staringRow = 1; - columnHeadersRowDTO = tableDataMS.Table[0]; - } - else - staringRow = 0; - - // Rows containing column names - for (int i = staringRow; i < tableDataMS.Table.Count; ++i) // Since first row is headers; hence i starts from 1 - { - try - { - var tableRowDTO = tableDataMS.Table[i]; - var fields = new List(); - int colNumber = (tableDataMS.FirstRowHeaders) ? columnHeadersRowDTO.Row.Count : tableRowDTO.Row.Count; - for (int j = 0; j < colNumber; ++j) - { - var tableCellDTO = tableRowDTO.Row[j]; - var listFieldDTO = new FieldDTO() - { - Key = (tableDataMS.FirstRowHeaders) ? columnHeadersRowDTO.Row[j].Cell.Value : tableCellDTO.Cell.Key, - Value = tableCellDTO.Cell.Value - }; - fields.Add(listFieldDTO); - } - payloadDataMS.PayloadObjects.Add(new PayloadObjectDTO() { PayloadObject = fields }); - } - catch (Exception) - { - //Avoid general failure of the process if there is an error processing individual records in the table - } - } - - return payloadDataMS; - } - - - public string GetFieldByKey(CrateStorageDTO curCrateStorage, string findKey) where T : Manifest - { - string key = string.Empty; - - if (curCrateStorage != null) - { - var crateStorage = this.FromDto(curCrateStorage); - var crateContentType = crateStorage.CrateContentsOfType().FirstOrDefault(); - - if (crateContentType != null) - { - if (crateContentType is StandardPayloadDataCM) - (crateContentType as StandardPayloadDataCM).TryGetValue(findKey, true, false, out key); - else - throw new Exception("Manifest type GetFieldByKey implementation is missing"); - } - } - - return key; - } - - public OperationalStateCM GetOperationalState(ICrateStorage crateStorage) - { - OperationalStateCM curOperationalState = crateStorage.CrateContentsOfType().Single(); - return curOperationalState; - } - //This method returns one crate of the specified Manifest Type from the payload - public T GetByManifest(PayloadDTO payloadDTO) where T : Manifest - { - ICrateStorage curCrateStorage = FromDto(payloadDTO.CrateStorage); - var curCrate = curCrateStorage.CratesOfType().Single().Content; - return curCrate; - } - public IEnumerable GetFields(IEnumerable crates) - { - var fields = new List(); - - foreach (var crate in crates) - { - //let's pass unknown manifests for now - if (!crate.IsKnownManifest) - { - continue; - } - - fields.AddRange(Fr8ReflectionHelper.FindFieldsRecursive(crate.Get())); - } - - return fields; - } - - public FieldDescriptionsCM MergeContentFields(List> curCrates) - { - FieldDescriptionsCM tempMS = new FieldDescriptionsCM(); - foreach (var curCrate in curCrates) - { - //extract the fields - FieldDescriptionsCM curFieldDescriptionsCrate = curCrate.Content; - - foreach (var field in curFieldDescriptionsCrate.Fields) - { - field.SourceCrateLabel = curCrate.Label; - field.SourceCrateManifest = curCrate.ManifestType; - } - - //add them to the pile - tempMS.Fields.AddRange(curFieldDescriptionsCrate.Fields); - } - - return tempMS; - } - - public IEnumerable GetLabelsByManifestType(IEnumerable crates, string manifestType) - { - return crates.Where(c => c.ManifestType.Type == manifestType) - .GroupBy(c => c.Label) - .Select(c => c.Key).ToList(); - } - - public T GetContentType(string crate) where T : class - { - return this.GetStorage(crate) - .CrateContentsOfType() - .FirstOrDefault(); - } - } -} diff --git a/Fr8Data/Managers/CrateMangerExtensions.cs b/Fr8Data/Managers/CrateMangerExtensions.cs deleted file mode 100644 index 533433137b..0000000000 --- a/Fr8Data/Managers/CrateMangerExtensions.cs +++ /dev/null @@ -1,58 +0,0 @@ -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Infrastructure; -using Fr8Data.Manifests; -using System; - -namespace Fr8Data.Managers -{ - public static class CrateManagerExtensions - { - public static IUpdatableCrateStorage GetUpdatableStorage(this ICrateManager crateManager, ActivityDTO activity) - { - if (activity == null) throw new ArgumentNullException(nameof(activity)); - return crateManager.UpdateStorage(() => activity.CrateStorage); - } - - public static IUpdatableCrateStorage GetUpdatableStorage(this ICrateManager crateManager, PayloadDTO payload) - { - if (payload == null) throw new ArgumentNullException(nameof(payload)); - return crateManager.UpdateStorage(() => payload.CrateStorage); - } - - public static ICrateStorage GetStorage(this ICrateManager crateManager, CrateStorageDTO crateStorageDTO) - { - if (crateStorageDTO == null) - { - return new CrateStorage(); - } - - return crateManager.FromDto(crateStorageDTO); - } - - public static ICrateStorage GetStorage(this ICrateManager crateManager, string crateStorageRaw) - { - if (string.IsNullOrWhiteSpace(crateStorageRaw)) - { - return new CrateStorage(); - } - - return crateManager.FromDto(StringToCrateStorageDTOConverter.Convert(crateStorageRaw)); - } - - public static ICrateStorage GetStorage(this ICrateManager crateManager, ActivityDTO activity) - { - return crateManager.FromDto(activity.CrateStorage); - } - - public static ICrateStorage GetStorage(this ICrateManager crateManager, PayloadDTO payload) - { - return crateManager.FromDto(payload.CrateStorage); - } - - public static bool IsStorageEmpty(this ICrateManager crateManager, ActivityDTO activity) - { - return crateManager.IsEmptyStorage(activity.CrateStorage); - } - } -} diff --git a/Fr8Data/Managers/ICrateManager.cs b/Fr8Data/Managers/ICrateManager.cs deleted file mode 100644 index f3397f8915..0000000000 --- a/Fr8Data/Managers/ICrateManager.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq.Expressions; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Manifests; -using Fr8Data.States; - -namespace Fr8Data.Managers -{ - public interface IUpdatableCrateStorage : IDisposable, ICrateStorage - { - void Replace(ICrateStorage crateStorage); - void Flush(); - void DiscardChanges(); - } - - public interface ICrateManager - { - CrateDTO ToDto(Crate crate); - CrateStorageDTO ToDto(ICrateStorage storage); - ICrateStorage FromDto(CrateStorageDTO storageDto); - Crate FromDto(CrateDTO crateDto); - IUpdatableCrateStorage UpdateStorage(Expression> storageAccessExpression); - IUpdatableCrateStorage UpdateStorage(Expression> storageAccessExpression); - bool IsEmptyStorage(CrateStorageDTO storageDto); - string EmptyStorageAsStr(); - string CrateStorageAsStr(ICrateStorage storage); - string CrateStorageAsStr(CrateStorageDTO storageDTO); - Crate CreateAuthenticationCrate(string label, AuthenticationMode mode, bool revocation); - Crate CreateManifestDescriptionCrate(string label, string name, string id, AvailabilityType availability); - Crate CreateDesignTimeFieldsCrate(string label, params FieldDTO[] fields); - Crate CreateDesignTimeFieldsCrate(string label, List fields); - Crate CreateDesignTimeFieldsCrate(string label, List fields, AvailabilityType availability); - Crate CreateDesignTimeFieldsCrate(string label, AvailabilityType availability, params FieldDTO[] fields); - Crate CreateStandardConfigurationControlsCrate(string label, params ControlDefinitionDTO[] controls); - Crate CreateStandardEventReportCrate(string label, EventReportCM eventReport); - Crate CreateStandardEventSubscriptionsCrate(string label, string manufacturer, params string[] subscriptions); - Crate CreateStandardTableDataCrate(string label, bool firstRowHeaders, params TableRowDTO[] table); - Crate CreatePayloadDataCrate(string payloadDataObjectType, string crateLabel, StandardTableDataCM tableDataMS); - Crate CreateOperationalStatusCrate(string label, OperationalStateCM eventReport); - StandardPayloadDataCM TransformStandardTableDataToStandardPayloadData(string curObjectType, StandardTableDataCM tableDataMS); - string GetFieldByKey(CrateStorageDTO curCrateStorage, string findKey) where T : Manifest; - //void AddLogMessage(string label, List logItemList, ICrateStorage payload); - T GetByManifest(PayloadDTO payloadDTO) where T : Manifest; - IEnumerable GetFields(IEnumerable crates); - IEnumerable GetLabelsByManifestType(IEnumerable crates, string manifestType); - FieldDescriptionsCM MergeContentFields(List> curCrates); - T GetContentType(string crate) where T : class; - } -} diff --git a/Fr8Data/Manifests/AdvisoryMessagesCM.cs b/Fr8Data/Manifests/AdvisoryMessagesCM.cs deleted file mode 100644 index d746684794..0000000000 --- a/Fr8Data/Manifests/AdvisoryMessagesCM.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.Constants; -using Fr8Data.DataTransferObjects; -using Newtonsoft.Json; - -namespace Fr8Data.Manifests -{ - public class AdvisoryMessagesCM : Manifest - { - public AdvisoryMessagesCM() : base(MT.AdvisoryMessages) - { - Advisories = new List(); - } - - [JsonProperty("advisories")] - public List Advisories { get; set; } - } -} diff --git a/Fr8Data/Manifests/ChartOfAccountsCM.cs b/Fr8Data/Manifests/ChartOfAccountsCM.cs deleted file mode 100644 index dae68371d5..0000000000 --- a/Fr8Data/Manifests/ChartOfAccountsCM.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.Crates; - -namespace Fr8Data.Manifests -{ - public class ChartOfAccountsCM : Manifest - { - public List Accounts { get; set; } - public ChartOfAccountsCM() : base(Constants.MT.ChartOfAccounts) - { - } - } - /// - /// This class is currently used for Accounting - /// - public class AccountDTO - { - public string Name { get; set; } - public string Id { get; set; } - } -} diff --git a/Fr8Data/Manifests/CrateDescriptionCM.cs b/Fr8Data/Manifests/CrateDescriptionCM.cs deleted file mode 100644 index 47ba1ebc4b..0000000000 --- a/Fr8Data/Manifests/CrateDescriptionCM.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Constants; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Manifests -{ - public class CrateDescriptionCM : Manifest - { - public List CrateDescriptions { get; set; } - - public CrateDescriptionCM() : base(MT.CrateDescription) - { - CrateDescriptions = new List(); - } - - public CrateDescriptionCM(IEnumerable crateDescriptions) : this() - { - CrateDescriptions.AddRange(crateDescriptions); - } - - public CrateDescriptionCM(params CrateDescriptionDTO[] crateDescriptions) : this() - { - CrateDescriptions.AddRange(crateDescriptions); - } - - public CrateDescriptionDTO AddOrUpdate(CrateDescriptionDTO crateDescription) - { - for (int i = 0; i < CrateDescriptions.Count; i ++) - { - var x = CrateDescriptions[i]; - - if (x.Label == crateDescription.Label && x.ManifestId == crateDescription.ManifestId) - { - CrateDescriptions[i] = crateDescription; - return crateDescription; - } - } - - CrateDescriptions.Add(crateDescription); - - return crateDescription; - } - } -} diff --git a/Fr8Data/Manifests/CrateManifestTypes.cs b/Fr8Data/Manifests/CrateManifestTypes.cs deleted file mode 100644 index b083cc5fac..0000000000 --- a/Fr8Data/Manifests/CrateManifestTypes.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Fr8Data.Crates; - -namespace Fr8Data.Manifests -{ - public static class CrateManifestTypes - { - public static string StandardDesignTimeFields - { - get { return ManifestDiscovery.Default.GetManifestType().Type; } - } - - public static string StandardConfigurationControls - { - get { return ManifestDiscovery.Default.GetManifestType().Type; } - } - - public static string StandardTableData - { - get { return ManifestDiscovery.Default.GetManifestType().Type; } - } - - public static string StandardFileDescription - { - get { return ManifestDiscovery.Default.GetManifestType().Type; } - } - } -} diff --git a/Fr8Data/Manifests/DocuSignEnvelopeCM.cs b/Fr8Data/Manifests/DocuSignEnvelopeCM.cs deleted file mode 100644 index b3e79c5552..0000000000 --- a/Fr8Data/Manifests/DocuSignEnvelopeCM.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; - -namespace Fr8Data.Manifests -{ - public class DocuSignEnvelopeCM : Manifest - { - public string Status { get; set; } - public DateTime? CreateDate { get; set; } - public DateTime? SentDate { get; set; } - public DateTime? DeliveredDate { get; set; } - public DateTime? CompletedDate { get; set; } - [MtPrimaryKey] - public string EnvelopeId { get; set; } - public string ExternalAccountId { get; set; } - public string Name { get; set; } - public string Subject { get; set; } - public string OwnerName { get; set; } - public string SenderName { get; set; } - public string SenderEmail { get; set; } - public string Shared { get; set; } - - public DateTime? StatusChangedDateTime { get; set; } - - public DocuSignEnvelopeCM() - : base(Constants.MT.DocuSignEnvelope) - { - - } - } -} diff --git a/Fr8Data/Manifests/DocuSignEnvelopeCM_v2.cs b/Fr8Data/Manifests/DocuSignEnvelopeCM_v2.cs deleted file mode 100644 index 37c5cd9869..0000000000 --- a/Fr8Data/Manifests/DocuSignEnvelopeCM_v2.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Fr8Data.Manifests -{ - public class DocuSignEnvelopeCM_v2 : Manifest - { - [MtPrimaryKey] - public string EnvelopeId { get; set; } - public string Status { get; set; } - public string Subject { get; set; } - public DateTime? StatusChangedDateTime { get; set; } - public string CurrentRoutingOrderId { get; set; } - public List Recipients { get; set; } = new List(); - public List Templates { get; set; } = new List(); - public string ExternalAccountId { get; set; } - public DateTime? CreateDate { get; set; } - public DateTime? SentDate { get; set; } - - public DocuSignEnvelopeCM_v2() - : base(Constants.MT.DocuSignEnvelope_v2) - { - } - - public DocuSignRecipientStatus GetCurrentRecipient() - { - return this.Recipients?.OrderByDescending(a => a.RoutingOrderId).FirstOrDefault(a => a.RoutingOrderId == this.CurrentRoutingOrderId); - } - } - - public class DocuSignRecipientStatus - { - public string Type { get; set; } - public string Name { get; set; } - public string Email { get; set; } - public string RecipientId { get; set; } - public string RoutingOrderId { get; set; } - public string Status { get; set; } - public List Tabs { get; set; } = new List(); - } - - public class DocuSignTabStatus - { - public string TabType { get; set; } - public string Name { get; set; } - public string DocumentId { get; set; } - public string Value { get; set; } - public string TabLabel { get; set; } - public string Selected { get; set; } - public List Items { get; set; } = new List(); - } - - public class DocuSignTemplate - { - /// If event comes from connect - templateId will be empty - public string TemplateId { get; set; } - public string Name { get; set; } - public string DocumentId { get; set; } - } -} diff --git a/Fr8Data/Manifests/DocuSignEnvelopeCM_v3.cs b/Fr8Data/Manifests/DocuSignEnvelopeCM_v3.cs deleted file mode 100644 index 199988257c..0000000000 --- a/Fr8Data/Manifests/DocuSignEnvelopeCM_v3.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Manifests -{ - public class DocuSignEnvelopeCM_v3 : Manifest - { - public List Envelopes { get; set; } - - public DocuSignEnvelopeCM_v3() - : base(Constants.MT.DocuSignEnvelope_v3) - { - } - } -} diff --git a/Fr8Data/Manifests/DocuSignEventCM.cs b/Fr8Data/Manifests/DocuSignEventCM.cs deleted file mode 100644 index f83309ae28..0000000000 --- a/Fr8Data/Manifests/DocuSignEventCM.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Manifests -{ - public class DocuSignEventCM : Manifest - { - - public string Object { get; set; } - public string Status { get; set; } - public string EventId { get; set; } - [MtPrimaryKey] - public string EnvelopeId { get; set; } - public string RecepientId { get; set; } - public string ExternalAccountId { get; set; } - - public DocuSignEventCM() - : base(Constants.MT.DocuSignEvent) - { - - } - } -} diff --git a/Fr8Data/Manifests/DocuSignRecipientCM.cs b/Fr8Data/Manifests/DocuSignRecipientCM.cs deleted file mode 100644 index 19c97f6c5d..0000000000 --- a/Fr8Data/Manifests/DocuSignRecipientCM.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Manifests -{ - public class DocuSignRecipientCM : Manifest - { - public string Object { get; set; } - public string Status { get; set; } - public string DocuSignAccountId { get; set; } - public string RecipientId { get; set; } - public string RecipientEmail { get; set; } - [MtPrimaryKey] - public string EnvelopeId { get; set; } - public DocuSignRecipientCM() - : base(Constants.MT.DocuSignRecipient) - { - - } - } -} diff --git a/Fr8Data/Manifests/DocuSignTemplateCM.cs b/Fr8Data/Manifests/DocuSignTemplateCM.cs deleted file mode 100644 index 60082b29f0..0000000000 --- a/Fr8Data/Manifests/DocuSignTemplateCM.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Manifests -{ - public class DocuSignTemplateCM : Manifest - { - public string Status { get; set; } - public DateTime? CreateDate { get; set; } - public string Body { get; set; } - public string Name { get; set; } - public DocuSignTemplateCM() - : base(Constants.MT.DocuSignTemplate) - { - - } - } -} diff --git a/Fr8Data/Manifests/EventReportCM.cs b/Fr8Data/Manifests/EventReportCM.cs deleted file mode 100644 index c289a6d39b..0000000000 --- a/Fr8Data/Manifests/EventReportCM.cs +++ /dev/null @@ -1,80 +0,0 @@ -using Fr8Data.Constants; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Newtonsoft.Json.Linq; - -namespace Fr8Data.Manifests -{ - [CrateManifestSerializer(typeof(EventReportSerializer))] - public class EventReportCM : Manifest - { - public string EventNames { get; set; } - public string ContainerDoId { get; set; } - public string ExternalAccountId { get; set; } - public string ExternalDomainId { get; set; } - public ICrateStorage EventPayload { get; set; } - public string Manufacturer { get; set; } - public string Source { get; set; } - - public EventReportCM() - : base(MT.StandardEventReport) - { - EventPayload = new CrateStorage(); - //EventPayload = new List(); - } - } - - - public class EventReportSerializer : IManifestSerializer - { - public class EventReportCMSerializationProxy - { - public string EventNames { get; set; } - public string ContainerDoId { get; set; } - public string ExternalAccountId { get; set; } - public string ExternalDomainId { get; set; } - public CrateStorageDTO EventPayload { get; set; } - public string Manufacturer { get; set; } - } - - private ICrateStorageSerializer _storageSerizlier; - - public void Initialize(ICrateStorageSerializer storageSerializer) - { - _storageSerizlier = storageSerializer; - } - - public object Deserialize(JToken crateContent) - { - var proxy = crateContent.ToObject(); - var storage = _storageSerizlier.ConvertFromDto(proxy.EventPayload); - - return new EventReportCM - { - EventNames = proxy.EventNames, - ContainerDoId = proxy.ContainerDoId, - ExternalAccountId = proxy.ExternalAccountId, - ExternalDomainId = proxy.ExternalDomainId, - EventPayload = storage, - Manufacturer = proxy.Manufacturer, - }; - } - - public JToken Serialize(object content) - { - var e = (EventReportCM) content; - - var proxy = new EventReportCMSerializationProxy - { - EventNames = e.EventNames, - ContainerDoId = e.ContainerDoId, - ExternalAccountId = e.ExternalAccountId, - ExternalDomainId = e.ExternalDomainId, - Manufacturer = e.Manufacturer, - EventPayload = _storageSerizlier.ConvertToDto(e.EventPayload), - }; - - return JToken.FromObject(proxy); - } - } -} diff --git a/Fr8Data/Manifests/EventSubscriptionCM.cs b/Fr8Data/Manifests/EventSubscriptionCM.cs deleted file mode 100644 index 2b830c3c50..0000000000 --- a/Fr8Data/Manifests/EventSubscriptionCM.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections.Generic; - -namespace Fr8Data.Manifests -{ - public class EventSubscriptionCM : Manifest - { - public List Subscriptions { get; set; } - - public string Manufacturer { get; set; } - - public EventSubscriptionCM() - : base(Constants.MT.StandardEventSubscription) - { - } - - } -} \ No newline at end of file diff --git a/Fr8Data/Manifests/ExternalObjectHandlesCM.cs b/Fr8Data/Manifests/ExternalObjectHandlesCM.cs deleted file mode 100644 index bf964205c5..0000000000 --- a/Fr8Data/Manifests/ExternalObjectHandlesCM.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Manifests -{ - public class ExternalObjectHandlesCM : Manifest - { - public ExternalObjectHandlesCM() - : base(Constants.MT.ExternalObjectHandles) - { - } - - public ExternalObjectHandlesCM(IEnumerable handles) : this() - { - Handles = new List(handles); - } - - public ExternalObjectHandlesCM(params ExternalObjectHandleDTO[] handles) : this() - { - Handles = new List(handles); - } - - - public List Handles { get; set; } - } -} diff --git a/Fr8Data/Manifests/FieldDescriptionsCM.cs b/Fr8Data/Manifests/FieldDescriptionsCM.cs deleted file mode 100644 index f1173c0c9d..0000000000 --- a/Fr8Data/Manifests/FieldDescriptionsCM.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.DataTransferObjects; -using System.Linq; - -namespace Fr8Data.Manifests -{ - public class FieldDescriptionsCM : Manifest - { - public FieldDescriptionsCM() - : base(Constants.MT.FieldDescription) - { - Fields = new List(); - } - - public FieldDescriptionsCM(IEnumerable fields) : this() - { - Fields.AddRange(fields); - } - - public FieldDescriptionsCM(params FieldDTO[] fields) : this() - { - Fields.AddRange(fields); - } - - public List Fields { get; set; } - - public string this[string key] - { - get { return Fields?.FirstOrDefault(x => x.Key == key)?.Value; } - set - { - var field = Fields.FirstOrDefault(); - if (field != null) - { - field.Value = value; - } - } - } - } -} diff --git a/Fr8Data/Manifests/Helpers/StandardTableDataCMTools.cs b/Fr8Data/Manifests/Helpers/StandardTableDataCMTools.cs deleted file mode 100644 index 9490552bd0..0000000000 --- a/Fr8Data/Manifests/Helpers/StandardTableDataCMTools.cs +++ /dev/null @@ -1,192 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Constants; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Newtonsoft.Json.Linq; - -namespace Fr8Data.Manifests.Helpers -{ - public class StandardTableDataCMTools - { - public static void AppendToStandardTableData(StandardTableDataCM dest, StandardTableDataCM source) - { - if (dest == null || dest.Table == null || dest.Table.Count == 0) - { - return; - } - - if (source == null || source.Table == null || source.Table.Count == 0) - { - return; - } - - var columnSet = new HashSet(dest.GetHeaderRow().Row.Select(x => x.Cell.Key)); - - for (var i = 1; i < source.Table.Count; ++i) - { - var row = new TableRowDTO(); - - foreach (var cell in source.Table[i].Row) - { - if (!columnSet.Contains(cell.Cell.Key)) - { - continue; - } - - row.Row.Add( - new TableCellDTO() - { - Cell = cell.Cell.Clone() - }); - } - - dest.Table.Add(row); - } - } - - public static StandardTableDataCM ExtractPayloadCrateDataToStandardTableData(Crate crate) - { - if (crate.ManifestType.Id == (int)MT.StandardTableData) - { - return crate.Get(); - } - if (crate.ManifestType.Id == (int)MT.FieldDescription) - { - var fields = crate.Get(); - return new StandardTableDataCM - { - FirstRowHeaders = true, - Table = new List - { - //Keys of fields will become column headers - new TableRowDTO { Row = fields.Fields.Select(x => new TableCellDTO { Cell = new FieldDTO(x.Key, x.Key) }).ToList() }, - new TableRowDTO { Row = fields.Fields.Select(x => new TableCellDTO { Cell = x }).ToList() } - } - }; - } - var tableData = new StandardTableDataCM - { - FirstRowHeaders = true, - Table = new List() - }; - var headerIsAdded = false; - - - var item = CrateStorageSerializer.Default.ConvertToDto(crate); - - var token = JToken.Parse(item.Contents.ToString()); - - var jObject = token as JObject; - if (jObject != null) - { - //check if jObject has some JArray properties - var arrayProperty = jObject.Properties().FirstOrDefault(x => x.Value is JArray); - - //check how StandardPayloadDataCM is structured - if (arrayProperty != null) - { - foreach (var arrayItem in arrayProperty.Value) - { - //arrayItem is PayloadObjectDTO which on has an List - var innerArrayProperty = ((JObject)arrayItem).Properties().FirstOrDefault(x => x.Value is JArray); - if (innerArrayProperty != null) - { - var headerRow = new TableRowDTO(); - var dataRow = new TableRowDTO(); - - foreach (var innerArrayItem in innerArrayProperty.Value) - { - //try to parse the property as FieldDTO - if (innerArrayItem is JObject) - { - var fieldObj = (JObject)innerArrayItem; - if (fieldObj.Property("key") != null && fieldObj.Property("value") != null) - { - headerRow.Row.Add(new TableCellDTO - { - Cell = new FieldDTO(fieldObj["key"].ToString(), fieldObj["key"].ToString()) - }); - dataRow.Row.Add(new TableCellDTO - { - Cell = - new FieldDTO(fieldObj["key"].ToString(), fieldObj["value"].ToString()) - }); - } - } - } - - if (!headerIsAdded) - { - tableData.Table.Add(headerRow); - headerIsAdded = true; - } - tableData.Table.Add(dataRow); - } - - // StandardFileListCM manifest has structure like this. - else - { - var headerRow = new TableRowDTO(); - var dataRow = new TableRowDTO(); - - foreach (var property in ((JObject)arrayItem).Properties()) - { - //try to parse the property as FieldDTO - if (property.Name != null && property.Value != null) - { - headerRow.Row.Add(new TableCellDTO - { - Cell = new FieldDTO(property.Name, property.Name) - }); - dataRow.Row.Add(new TableCellDTO - { - Cell = - new FieldDTO(property.Name, property.Value.ToString()) - }); - } - } - if (!headerIsAdded) - { - tableData.Table.Add(headerRow); - headerIsAdded = true; - } - tableData.Table.Add(dataRow); - } - } - } - else - { - var headerRow = new TableRowDTO(); - var dataRow = new TableRowDTO(); - - foreach (JProperty property in jObject.Properties()) - { - //try to parse the property as FieldDTO - if (property.Value is JObject) - { - var fieldObj = (JObject)property.Value; - if (fieldObj.Property("key") != null && fieldObj.Property("value") != null) - { - headerRow.Row.Add(new TableCellDTO { Cell = new FieldDTO(fieldObj["key"].ToString(), fieldObj["key"].ToString()) }); - dataRow.Row.Add(new TableCellDTO { Cell = new FieldDTO(fieldObj["key"].ToString(), fieldObj["value"].ToString()) }); - } - } - else - { - headerRow.Row.Add(new TableCellDTO { Cell = new FieldDTO(property.Name, property.Name) }); - dataRow.Row.Add(new TableCellDTO { Cell = new FieldDTO(property.Name, property.Value.ToString()) }); - } - } - if (!headerIsAdded) - { - tableData.Table.Add(headerRow); - headerIsAdded = true; - } - tableData.Table.Add(dataRow); - } - } - return tableData; - } - } -} diff --git a/Fr8Data/Manifests/Manifest.cs b/Fr8Data/Manifests/Manifest.cs deleted file mode 100644 index fc73344218..0000000000 --- a/Fr8Data/Manifests/Manifest.cs +++ /dev/null @@ -1,70 +0,0 @@ -using Fr8Data.Constants; -using Fr8Data.Crates; -using Newtonsoft.Json; -using Utilities; -using System; -using System.Collections.Generic; -using System.Reflection; - -namespace Fr8Data.Manifests -{ - [CrateManifestType(Int32.MinValue, null)] - public abstract class Manifest - { - // here we cache primary key property list for each manifest type - private static readonly Dictionary PkCache = new Dictionary(); - - [JsonIgnore] - [ManifestField(IsHidden = true)] - public CrateManifestType ManifestType { get; } - - protected Manifest(MT manifestType) - : this((int)manifestType, manifestType.GetEnumDisplayName()) - { - } - - protected Manifest(int manifestType, string manifestName) - : this(new CrateManifestType(manifestName, manifestType)) - { - } - - protected Manifest(CrateManifestType manifestType) - { - ManifestType = manifestType; - } - - // default implementation of GetPrimaryKey will return list of manifest properites marked with MtPrimaryKeyAttribute - // developer can override this methods and return any property names he want - public virtual string[] GetPrimaryKey() - { - return GetPrimaryKey(GetType()); - } - - private static string[] GetPrimaryKey(Type type) - { - lock (PkCache) - { - string[] pk; - - // try get list of PK properties from cache. If fails get this list using reflection - if (!PkCache.TryGetValue(type, out pk)) - { - var pkList = new List(); - - foreach (var prop in type.GetProperties()) - { - if (prop.GetCustomAttribute(typeof(MtPrimaryKeyAttribute)) != null) - { - pkList.Add(prop.Name); - } - } - - pk = pkList.ToArray(); - PkCache[type] = pk; - } - - return pk; - } - } - } -} \ No newline at end of file diff --git a/Fr8Data/Manifests/ManifestDescriptionCM.cs b/Fr8Data/Manifests/ManifestDescriptionCM.cs deleted file mode 100644 index 2a18b3b9e3..0000000000 --- a/Fr8Data/Manifests/ManifestDescriptionCM.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.Crates; - -namespace Fr8Data.Manifests -{ - public class ManifestDescriptionCM : Manifest - { - public string Id { get; set; } - - public string Name { get; set; } - - public string Version { get; set; } - - public string SampleJSON { get; set; } - - public string Description { get; set; } - - public string RegisteredBy { get; set; } - - public ManifestDescriptionCM() - : base(Constants.MT.ManifestDescription) - { - - } - } -} diff --git a/Fr8Data/Manifests/ManifestFieldAttribute.cs b/Fr8Data/Manifests/ManifestFieldAttribute.cs deleted file mode 100644 index e17bdd5bd2..0000000000 --- a/Fr8Data/Manifests/ManifestFieldAttribute.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; - -namespace Fr8Data.Manifests -{ - [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] - public sealed class ManifestFieldAttribute : Attribute - { - // User-friendly name - public string Label { get; set; } - // Flag indicating wether this field should be automatically published in available fields when corresponding manifest is published as available - public bool IsHidden { get; set; } - - public ManifestFieldAttribute() - { - } - - public ManifestFieldAttribute(string label, bool isHidden = false) - { - Label = label; - IsHidden = isHidden; - } - } -} diff --git a/Fr8Data/Manifests/MtPrimaryKeyAttribute.cs b/Fr8Data/Manifests/MtPrimaryKeyAttribute.cs deleted file mode 100644 index a086c20518..0000000000 --- a/Fr8Data/Manifests/MtPrimaryKeyAttribute.cs +++ /dev/null @@ -1,10 +0,0 @@ - -using System; - -namespace Fr8Data.Manifests -{ - [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] - public class MtPrimaryKeyAttribute : Attribute - { - } -} \ No newline at end of file diff --git a/Fr8Data/Manifests/OperationalStateCM.CallStack.cs b/Fr8Data/Manifests/OperationalStateCM.CallStack.cs deleted file mode 100644 index fc0c1ce17e..0000000000 --- a/Fr8Data/Manifests/OperationalStateCM.CallStack.cs +++ /dev/null @@ -1,149 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; - -namespace Fr8Data.Manifests -{ - partial class OperationalStateCM - { - [JsonConverter(typeof(CallStackConverter))] - public class ActivityCallStack : IEnumerable - { - private readonly Stack _stack = new Stack(); - - public int Count => _stack.Count; - - public StackFrame TopFrame - { - get - { - if (_stack.Count == 0) - { - return null; - } - - return _stack.Peek(); - } - } - - public void RemoveTopFrame() - { - _stack.Pop(); - } - - public void PushFrame(StackFrame frame) - { - _stack.Push(frame); - } - - public void Clear() - { - _stack.Clear(); - } - - public StackFrame[] ToArray() - { - return _stack.ToArray(); - } - - public void CopyTo(Array array, int index) - { - ((ICollection) _stack).CopyTo(array, index); - } - - public void CopyTo(StackFrame[] array, int arrayIndex) - { - _stack.CopyTo(array, arrayIndex); - } - - // set of methods to work with activity's run-time state data. - // It's better not to use these methods outside of very special internal activities - public T CreateLocalData(string type) - where T : new() - { - var data = new T(); - - StoreLocalData(type, data); - - return data; - } - - public T GetLocalData(string type) - { - var top = TopFrame; - - if (top.LocalData?.Type != type || top.LocalData?.Data == null) - { - return default(T); - } - - return top.LocalData.ReadAs(); - } - - public void StoreLocalData(string type, object data) - { - var top = TopFrame; - - top.LocalData = new StackLocalData - { - Type = type, - Data = JToken.FromObject(data) - }; - } - - public T GetOrCreateLocalData(string type) - where T : new() - { - var top = TopFrame; - - if (top.LocalData?.Type != type || top.LocalData?.Data == null) - { - return CreateLocalData(type); - } - - return top.LocalData.Data.ToObject(); - } - - public IEnumerator GetEnumerator() - { - return _stack.GetEnumerator(); - } - - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable)_stack).GetEnumerator(); - } - } - - public enum ActivityExecutionPhase - { - WasNotExecuted = 0, - ProcessingChildren = 1 - } - - public class StackLocalData - { - public string Type; - public JToken Data; - - - public T ReadAs() - { - return Data == null ? default(T) : Data.ToObject(); - } - } - - public class StackFrame - { - public Guid NodeId { get; set; } - public string NodeName { get; set; } - public ActivityExecutionPhase CurrentActivityExecutionPhase { get; set; } - public Guid? CurrentChildId { get; set; } - // Here activity can store some custom state related to it's execution. It is better to avoid persisting such states if possible. - // Legacy notes: This is a replacement for LoopStatus and Branches arrays we previously had - public StackLocalData LocalData { get; set; } - } - } -} diff --git a/Fr8Data/Manifests/OperationalStateCM.CallStackConverter.cs b/Fr8Data/Manifests/OperationalStateCM.CallStackConverter.cs deleted file mode 100644 index 0fffa8fcb9..0000000000 --- a/Fr8Data/Manifests/OperationalStateCM.CallStackConverter.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Linq; -using Newtonsoft.Json; - -namespace Fr8Data.Manifests -{ - partial class OperationalStateCM - { - // we need this to correctly serialize stack. Otherwise all elements get reversed after deserialization - public class CallStackConverter : JsonConverter - { - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) - { - var callStack = (OperationalStateCM.ActivityCallStack)value; - - if (callStack == null) - { - writer.WriteNull(); - return; - } - - writer.WriteStartArray(); - - foreach (var item in callStack.Reverse()) - { - serializer.Serialize(writer, item); - } - - writer.WriteEndArray(); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - var array = serializer.Deserialize(reader); - - if (array == null) - { - return null; - } - - var callStack = new OperationalStateCM.ActivityCallStack(); - - foreach (var stackFrame in array) - { - callStack.PushFrame(stackFrame); - } - - return callStack; - } - - public override bool CanConvert(Type objectType) - { - return objectType == typeof(OperationalStateCM.ActivityCallStack); - } - } - } -} diff --git a/Fr8Data/Manifests/OperationalStateCM.InternalStates.cs b/Fr8Data/Manifests/OperationalStateCM.InternalStates.cs deleted file mode 100644 index dff52d90a8..0000000000 --- a/Fr8Data/Manifests/OperationalStateCM.InternalStates.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; - -namespace Fr8Data.Manifests -{ - partial class OperationalStateCM - { - public class HistoryElement - { - public string Description { get; set; } - } - - public class LoopStatus - { - public int Index { get; set; } - public CrateDescriptionCM CrateManifest { get; set; } - } - - public class BranchStatus - { - public string Id { get; set; } - public int Count { get; set; } - public DateTime LastBranchTime { get; set; } - } - } -} diff --git a/Fr8Data/Manifests/OperationalStateCM.cs b/Fr8Data/Manifests/OperationalStateCM.cs deleted file mode 100644 index 4c32709390..0000000000 --- a/Fr8Data/Manifests/OperationalStateCM.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Fr8Data.Constants; -using Fr8Data.DataTransferObjects; -using System.Collections.Generic; - -namespace Fr8Data.Manifests -{ - public partial class OperationalStateCM : Manifest - { - public ActivityCallStack CallStack { get; set; } = new ActivityCallStack(); - - public List History { get; set; } - public ActivityErrorCode? CurrentActivityErrorCode { get; set; } - public string CurrentActivityErrorMessage { get; set; } - public string CurrentClientActivityName { get; set; } - public StackLocalData BypassData { get; set; } - - public ActivityResponseDTO CurrentActivityResponse { get; set; } - - public OperationalStateCM() - : base(MT.OperationalStatus) - { - History = new List(); - } - } -} diff --git a/Fr8Data/Manifests/PlanTemplateCM.cs b/Fr8Data/Manifests/PlanTemplateCM.cs deleted file mode 100644 index c7f09e62ed..0000000000 --- a/Fr8Data/Manifests/PlanTemplateCM.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; - -namespace Fr8Data.Manifests -{ - public class PlanTemplateCM : Manifest - { - public PlanTemplateCM() - : base(Constants.MT.PlanTemplate) - { - } - - public string Name { get; set; } - - public string Description { get; set; } - - public int Version { get; set; } - - /// - /// Fr8 account id. - /// - public string OwnerId { get; set; } - - /// - /// Fr8 account name. - /// - public string OwnerName { get; set; } - - /// - /// Fr8Data.States.PlanTemplateStatus. - /// - public int Status { get; set; } - - public string PlanContents { get; set; } - - [MtPrimaryKey] - public string ParentPlanId { get; set; } - } -} diff --git a/Fr8Data/Manifests/SalesforceEventCM.cs b/Fr8Data/Manifests/SalesforceEventCM.cs deleted file mode 100644 index a50df575ed..0000000000 --- a/Fr8Data/Manifests/SalesforceEventCM.cs +++ /dev/null @@ -1,19 +0,0 @@ - -namespace Fr8Data.Manifests -{ - public class SalesforceEventCM : Manifest - { - public string ObjectType { get; set; } - [MtPrimaryKey] - public string ObjectId { get; set; } - public string CreatedDate { get; set; } - public string LastModifiedDate { get; set; } - public string OccuredEvent { get; set; } - - public SalesforceEventCM() - : base(Constants.MT.SalesforceEvent) - { - - } - } -} diff --git a/Fr8Data/Manifests/StandardAccountingTransactionCM.cs b/Fr8Data/Manifests/StandardAccountingTransactionCM.cs deleted file mode 100644 index b583f9ae39..0000000000 --- a/Fr8Data/Manifests/StandardAccountingTransactionCM.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Fr8Data.DataTransferObjects; -using Newtonsoft.Json; - -namespace Fr8Data.Manifests -{ - public class StandardAccountingTransactionCM : Manifest - { - public List AccountingTransactions{ get; set; } - public StandardAccountingTransactionCM(): base(Constants.MT.StandardAccountTransaction) - { - } - public static void Validate(StandardAccountingTransactionCM crate ) - { - if (crate.AccountingTransactions == null) - { - throw new NullReferenceException("AccountingTransactionDTOList is null"); - } - if (crate.AccountingTransactions.Count == 0) - { - throw new Exception("No Transactions in the AccountingTransactionDTOList"); - } - } - public static void ValidateAccountingTransation(StandardAccountingTransactionDTO curAccountingTransactionDtoTransactionDTO) - { - if (curAccountingTransactionDtoTransactionDTO == null) - { - throw new ArgumentNullException("No StandardAccountingTransationDTO provided"); - } - if (curAccountingTransactionDtoTransactionDTO.FinancialLines == null - || curAccountingTransactionDtoTransactionDTO.FinancialLines.Count == 0 - || curAccountingTransactionDtoTransactionDTO.TransactionDate == null) - { - throw new Exception("No Financial Lines or Transaction Date Provided"); - } - foreach (var curFinLineDTO in curAccountingTransactionDtoTransactionDTO.FinancialLines) - { - ValidateFinancialLineDTO(curFinLineDTO); - } - } - - private static void ValidateFinancialLineDTO(FinancialLineDTO finLineDTO) - { - if (finLineDTO.AccountId == null || finLineDTO.AccountName == null) - { - throw new Exception("Some Account Data is Missing"); - } - if (finLineDTO.Amount == null) - { - throw new Exception("Amount is missing"); - } - if (finLineDTO.DebitOrCredit == null) - { - throw new Exception("Debit/Credit information is missing"); - } - } - } -} diff --git a/Fr8Data/Manifests/StandardAuthenticationCM.cs b/Fr8Data/Manifests/StandardAuthenticationCM.cs deleted file mode 100644 index fc3baa1a04..0000000000 --- a/Fr8Data/Manifests/StandardAuthenticationCM.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Fr8Data.Constants; - -namespace Fr8Data.Manifests -{ - public class StandardAuthenticationCM : Manifest - { - public StandardAuthenticationCM() - : base(MT.StandardAuthentication) - { - } - - public AuthenticationMode Mode { get; set; } - - public bool Revocation { get; set; } - } - - public enum AuthenticationMode - { - /// - /// When application shows default credentials window. - /// - InternalMode = 1, - - /// - /// When external auth form URL is triggered. - /// - ExternalMode = 2, - - // - /// When application shows default credentials window and displays Domain textbox - /// - InternalModeWithDomain = 3 - } -} diff --git a/Fr8Data/Manifests/StandardBusinessFactCM.cs b/Fr8Data/Manifests/StandardBusinessFactCM.cs deleted file mode 100644 index 211e9a4f5e..0000000000 --- a/Fr8Data/Manifests/StandardBusinessFactCM.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; - -namespace Fr8Data.Manifests -{ - public class StandardBusinessFactCM : Manifest - { - public StandardBusinessFactCM() - : base(Constants.MT.StandardBusinessFact) - { - } - - public string PrimaryCategory { get; set; } - public string SecondaryCategory { get; set; } - public string Activity { get; set; } - public string Status { get; set; } - public string ObjectId { get; set; } - public string CustomerId { get; set; } - public string OwnerId { get; set; } - public string Data { get; set; } - - public DateTime? CreateDate { get; set; } - public DateTime? DayBucket { get; set; } - public DateTime? WeekBucket { get; set; } - public DateTime? MonthBucket { get; set; } - public DateTime? YearBucket { get; set; } - public string UserType { get; set; } - } -} diff --git a/Fr8Data/Manifests/StandardConfigurationControlsCM.cs b/Fr8Data/Manifests/StandardConfigurationControlsCM.cs deleted file mode 100644 index 9effe6c7e5..0000000000 --- a/Fr8Data/Manifests/StandardConfigurationControlsCM.cs +++ /dev/null @@ -1,363 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using Fr8Data.DataTransferObjects; -using Fr8Data.Constants; -using System.Linq; -using System.Reflection; -using Fr8Data.Crates; -using Fr8Data.Helpers; - -namespace Fr8Data.Manifests -{ - /// - /// This class represents manifest for action's configuraton controls. To simplify creation of the UI the following mechanism is integrated into this class. - /// Developer can create its own class derived from StandardConfigurationControlsCM. This class will represent UI for a particular action. - /// In the constructor of this new class developer can initialize desired UI structure. - /// Developer can create define several properties in this class and assign certain UI controls to them. - /// Example: - /// public class ActionUi : StandardConfigurationControlsCM - /// { - /// [JsonIgnore] - /// public TextBox SearchText { get; set; } - /// - /// [JsonIgnore] - /// public DropDownList Folder { get; set; } - /// - /// [JsonIgnore] - /// public DropDownList Status { get; set; } - /// - /// public ActionUi() - /// { - /// Controls = new List(); - /// - /// Controls.Add(new TextArea - /// { - /// IsReadOnly = true, - /// Label = "", - /// Value = "

Search for DocuSign Envelopes where the following are true:

" + - /// "
Envelope contains text:
" - /// }); - /// - /// Controls.Add((SearchText = new TextBox - /// { - /// Name = "SearchText", - /// Events = new List {ControlEvent.RequestConfig}, - /// })); - /// - /// Controls.Add((Folder = new DropDownList - /// { - /// Label = "Envelope is in folder:", - /// Name = "Folder", - /// Events = new List {ControlEvent.RequestConfig}, - /// Source = new FieldSourceDTO(CrateManifestTypes.FieldDescription, "Folders") - /// })); - /// - /// Controls.Add((Status = new DropDownList - /// { - /// Label = "Envelope has status:", - /// Name = "Status", - /// Events = new List {ControlEvent.RequestConfig}, - /// Source = new FieldSourceDTO(CrateManifestTypes.FieldDescription, "Statuses") - /// })); - /// } - /// } - /// Name of the property must be the same as the name of the corresponding control. - /// If you use this approach to define action's UI then it will be possible to access individual state of controls in the confinguration controls crate the following way: - /// - /// var ui = Crate.GetStorage(curActivityDO).CrateContentsOfType().SingleOrDefault(); - /// var controls = new ActionUi(); - /// controls.ClonePropertiesFrom(ui); - /// var mySearchTextBoxValue = ui.SearchText.Value; - /// var myDropDownListValue = ui.Folder.Value; - /// - ///
- - [CrateManifestSerializer(typeof (StandardConfigurationControlsSerializer))] - public class StandardConfigurationControlsCM : Manifest - { - // Members of the StandardConfigurationControlsCM type that must be excluded during synchornization - private static readonly HashSet MembersToIgnore; - - public List Controls { get; set; } - - static StandardConfigurationControlsCM() - { - MembersToIgnore = new HashSet(); - - // Exclude all public properties of StandardConfigurationControlsCM - foreach (var member in typeof (StandardConfigurationControlsCM).GetProperties(BindingFlags.Instance | BindingFlags.Public)) - { - MembersToIgnore.Add(member.Name); - } - - // Exclude all public fields of StandardConfigurationControlsCM - foreach (var member in typeof (StandardConfigurationControlsCM).GetFields(BindingFlags.Instance | BindingFlags.Public)) - { - MembersToIgnore.Add(member.Name); - } - } - - public StandardConfigurationControlsCM() - : base(MT.StandardConfigurationControls) - { - Controls = new List(); - } - - public StandardConfigurationControlsCM(IEnumerable controls) - : this() - { - Controls.AddRange(controls); - } - - public StandardConfigurationControlsCM(params ControlDefinitionDTO[] controls) : this(controls as IEnumerable) - { - } - - public void Add(ControlDefinitionDTO control) - { - Controls.Add(control); - } - - // Find control by its name. Note, that this methods is no recursive - public ControlDefinitionDTO FindByName(string name) - { - return Controls.SingleOrDefault(x => x.Name == name); - } - - public T FindByName(string name) where T : ControlDefinitionDTO - { - return (T) Controls.SingleOrDefault(x => x.Name == name); - } - - // Find control of type T recusively. - public T FindByNameNested(string name) - { - foreach (var controlDefinitionDto in Controls) - { - var result = FindByNameRecurisve(controlDefinitionDto, name); - if (result != null) - { - return (T) result; - } - } - - return default(T); - } - - public object FindByNameNested(string name) - { - foreach (var controlDefinitionDto in Controls) - { - var result = FindByNameRecurisve(controlDefinitionDto, name); - if (result != null) - { - return result; - } - } - - return null; - } - - public List EnumerateControlsDefinitions() - { - var namedControls = new List(); - - foreach (var controlDefinitionDto in Controls) - { - EnumerateNamedControls(controlDefinitionDto, namedControls); - } - - return namedControls; - } - - private void EnumerateNamedControls(object obj, List controls) - { - if (obj is IControlDefinition) - { - controls.Add((IControlDefinition)obj); - } - - if (obj is IContainerControl) - { - foreach (var child in ((IContainerControl)obj).EnumerateChildren()) - { - EnumerateNamedControls(child, controls); - } - } - } - - public void SyncWith(StandardConfigurationControlsCM configurationControls) - { - var targetNamedControls = EnumerateControlsDefinitions(); - foreach (var targetControl in targetNamedControls) - { - var source = configurationControls.FindByNameNested(targetControl.Name); - - if (source == null) - { - continue; - } - - ClonePrimitiveProperties(targetControl, source); - } - } - // Sync controls properties from configuration controls crate with the current instance of StandardConfigurationControlsCM - public StandardConfigurationControlsCM ClonePropertiesFrom(StandardConfigurationControlsCM configurationControls) - { - SyncWith(configurationControls); - return this; - } - - private static bool CheckIfTypeIsControlsCollection(Type type) - { - if (type.IsGenericType) - { - var genericTypeDef = type.GetGenericTypeDefinition(); - - if (typeof(IList<>) == genericTypeDef) - { - if (typeof(IControlDefinition).IsAssignableFrom(type.GetGenericArguments()[0])) - { - return true; - } - } - } - - return false; - } - - - private static bool CanSyncMember(IMemberAccessor propertyInfo) - { - if (propertyInfo.Name == "Controls") - { - int wtf = 0; - } - - if (propertyInfo.GetCustomAttribute() != null) - { - return false; - } - - if (propertyInfo.GetCustomAttribute() != null) - { - return true; - } - - // if we have property of the type derived from IControlDefinition it - if (typeof (IControlDefinition).IsAssignableFrom(propertyInfo.MemberType)) - { - return false; - } - - if (propertyInfo.MemberType.IsInterface && CheckIfTypeIsControlsCollection(propertyInfo.MemberType)) - { - return false; - } - - foreach (var @interface in propertyInfo.MemberType.GetInterfaces()) - { - if (CheckIfTypeIsControlsCollection(@interface)) - { - return false; - } - } - - return true; - } - - private static IEnumerable GetMembers(Type type) - { - return type.GetProperties(BindingFlags.Instance | BindingFlags.Public).Select(x => (IMemberAccessor) new PropertyMemberAccessor(x)) - .Concat(type.GetFields(BindingFlags.Instance | BindingFlags.Public).Select(x => (IMemberAccessor) new FieldMemberAccessor(x))); - } - - // Clone properties from object 'source' to object 'target' - private static void ClonePrimitiveProperties(object target, object source) - { - var members = GetMembers(target.GetType()).Where(x => CanSyncMember(x) && x.CanWrite); - var sourceTypeProp = GetMembers(target.GetType()).Where(x=>CanSyncMember(x) && x.CanRead && x.CanWrite).ToDictionary(x => x.Name, x => x); - - foreach (var member in members) - { - IMemberAccessor sourceMember; - - if (sourceTypeProp.TryGetValue(member.Name, out sourceMember) && member.MemberType.IsAssignableFrom(sourceMember.MemberType)) - { - if (typeof (IList).IsAssignableFrom(sourceMember.MemberType)) - { - if (!member.CanWrite) - { - var targetList = (IList)member.GetValue(target); - var sourceList = (IList)sourceMember.GetValue(source); - - if (targetList != null) - { - targetList.Clear(); - - if (sourceList != null) - { - foreach (var item in sourceList) - { - targetList.Add(item); - } - } - } - - return; - } - } - - try - { - member.SetValue(target, sourceMember.GetValue(source)); - } - catch - { - } - } - } - } - - // Check if the give instance of an object has apropriate name - private bool CheckName(object control, string name) - { - var namedControl = control as IControlDefinition; - - if (namedControl != null) - { - return namedControl.Name == name; - } - - return false; - } - - // Find configuration control by name recursively. - private object FindByNameRecurisve(object cd, string name) - { - // Check if current control has the desired name - if (CheckName(cd, name)) - { - return cd; - } - - var conatinerControl = cd as IContainerControl; - - if (conatinerControl != null) - { - foreach (var child in conatinerControl.EnumerateChildren()) - { - var result = FindByNameRecurisve(child, name); - - if (result != null) - { - return result; - } - } - } - - return null; - } - } -} diff --git a/Fr8Data/Manifests/StandardEmailMessageCM.cs b/Fr8Data/Manifests/StandardEmailMessageCM.cs deleted file mode 100644 index 4d4c9890e2..0000000000 --- a/Fr8Data/Manifests/StandardEmailMessageCM.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Manifests -{ - public class StandardEmailMessageCM : Manifest - { - public StandardEmailMessageCM() - : base(Constants.MT.StandardEmailMessage) - { - - } - - public string MessageID { get; set; } - - public string References { get; set; } - public string Subject { get; set; } - - public string HtmlText { get; set; } - - public string PlainText { get; set; } - - public DateTime DateReceived { get; set; } - - public string EmailStatus { get; set; } - - public string EmailFromName { get; set; } - } -} diff --git a/Fr8Data/Manifests/StandardFileDescriptionCM.cs b/Fr8Data/Manifests/StandardFileDescriptionCM.cs deleted file mode 100644 index e336410c0b..0000000000 --- a/Fr8Data/Manifests/StandardFileDescriptionCM.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Manifests -{ - public class StandardFileDescriptionCM : Manifest - { - public string DirectUrl { get; set; } - public string Filename { get; set; } - public string Filetype { get; set; } - public string TextRepresentation { get; set; } - - public StandardFileDescriptionCM() - : base(Constants.MT.StandardFileHandle) - { - } - } - - -} diff --git a/Fr8Data/Manifests/StandardFileListCM.cs b/Fr8Data/Manifests/StandardFileListCM.cs deleted file mode 100644 index 0dced787dc..0000000000 --- a/Fr8Data/Manifests/StandardFileListCM.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Manifests -{ - public class StandardFileListCM : Manifest - { - public List FileList { get; set; } - - public StandardFileListCM() - :base(Constants.MT.StandardFileList) - { - } - } -} diff --git a/Fr8Data/Manifests/StandardFr8ContainersCM.cs b/Fr8Data/Manifests/StandardFr8ContainersCM.cs deleted file mode 100644 index 0eab239aa8..0000000000 --- a/Fr8Data/Manifests/StandardFr8ContainersCM.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Manifests -{ - public class StandardFr8ContainersCM : Manifest - { - public string Name { get; set; } - - public string Description { get; set; } - - public DateTime CreatedDate { get; set; } - - public DateTime LastUpdated { get; set; } - - public StandardFr8ContainersCM() - : base(Constants.MT.StandardFr8Containers) - { - } - - } -} diff --git a/Fr8Data/Manifests/StandardFr8HubsCM.cs b/Fr8Data/Manifests/StandardFr8HubsCM.cs deleted file mode 100644 index 67e05458e9..0000000000 --- a/Fr8Data/Manifests/StandardFr8HubsCM.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Manifests -{ - public class StandardFr8HubsCM : Manifest - { - public string Name { get; set; } - - public string Description { get; set; } - - public DateTime CreatedDate { get; set; } - - public DateTime LastUpdated { get; set; } - - public StandardFr8HubsCM() - : base(Constants.MT.StandardFr8Hubs) - { - } - } -} diff --git a/Fr8Data/Manifests/StandardFr8PlansCM .cs b/Fr8Data/Manifests/StandardFr8PlansCM .cs deleted file mode 100644 index d2b750f695..0000000000 --- a/Fr8Data/Manifests/StandardFr8PlansCM .cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Manifests -{ - public class StandardFr8PlansCM : Manifest - { - public DateTime CreateDate { get; set; } - - public DateTime LastUpdated { get; set; } - - public String Description { get; set; } - - public String Name { get; set; } - - public int Ordering { get; set; } - - public String PlanState { get; set; } - - public List SubPlans { get; set; } - - public StandardFr8PlansCM() - : base(Constants.MT.StandardFr8Plans) - { - } - } -} diff --git a/Fr8Data/Manifests/StandardFr8TerminalCM.cs b/Fr8Data/Manifests/StandardFr8TerminalCM.cs deleted file mode 100644 index b6e98ba0a2..0000000000 --- a/Fr8Data/Manifests/StandardFr8TerminalCM.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Manifests -{ - public class StandardFr8TerminalCM : Manifest - { - public TerminalDTO Definition { get; set; } - - public List Activities { get; set; } - - public StandardFr8TerminalCM():base(Constants.MT.StandardFr8Terminal) - { - } - } -} diff --git a/Fr8Data/Manifests/StandardLoggingCM.cs b/Fr8Data/Manifests/StandardLoggingCM.cs deleted file mode 100644 index 0cd0d17bf9..0000000000 --- a/Fr8Data/Manifests/StandardLoggingCM.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Manifests -{ - public class StandardLoggingCM : Manifest - { - public List Item { get; set; } - - [MtPrimaryKey] - public string LoggingMTkey { get; set; } - - public StandardLoggingCM() - : base(Constants.MT.StandardLoggingCrate) - { - Item = new List(); - } - } -} diff --git a/Fr8Data/Manifests/StandardParsingRecordCM.cs b/Fr8Data/Manifests/StandardParsingRecordCM.cs deleted file mode 100644 index d65331e5ca..0000000000 --- a/Fr8Data/Manifests/StandardParsingRecordCM.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Fr8Data.Manifests -{ - public class StandardParsingRecordCM : Manifest - { - public string Name { get; set; } - - public string StartDate { get; set; } - - public string EndDate { get; set; } - - public string Service { get; set; } - - public string ExternalAccountId { get; set; } - - public string InternalAccountId { get; set; } - - public StandardParsingRecordCM() - : base(Constants.MT.StandardParsingRecord) - { - } - - } -} diff --git a/Fr8Data/Manifests/StandardPayloadDataCM.cs b/Fr8Data/Manifests/StandardPayloadDataCM.cs deleted file mode 100644 index a3ae0ab81f..0000000000 --- a/Fr8Data/Manifests/StandardPayloadDataCM.cs +++ /dev/null @@ -1,226 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Constants; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Manifests -{ - public class StandardPayloadDataCM : Manifest - { - [ManifestField(IsHidden = true)] - public string Name { get; set; } - - public List PayloadObjects { get; set; } - - [ManifestField(IsHidden = true)] - public string ObjectType { get; set; } - - - public StandardPayloadDataCM() - :base(MT.StandardPayloadData) - { - PayloadObjects = new List(); - ObjectType = "Unspecified"; - } - - public StandardPayloadDataCM(IEnumerable fields) - : this() - { - PayloadObjects = new List(); - PayloadObjects.Add(new PayloadObjectDTO(fields)); - } - - public StandardPayloadDataCM(params FieldDTO[] fields) - :this((IEnumerable)fields) - { - } - - public List GetAllFields() - { - var fields = new List(); - - if (PayloadObjects != null) - { - fields.AddRange(PayloadObjects.Where(x=>x.PayloadObject != null).SelectMany(x => x.PayloadObject)); - } - - return fields; - } - - public bool TryGetValue(string key, bool skipNull, bool ignoreCase, out string value) - { - if (PayloadObjects == null) - { - value = null; - return false; - } - - foreach (var payloadObjectDto in PayloadObjects) - { - if (payloadObjectDto.TryGetValue(key, skipNull, ignoreCase, out value)) - { - return true; - } - } - - value = null; - return false; - } - - - public string GetValueOrDefault(string key, bool skipNull = false, bool ignoreCase = false) - { - string value; - - TryGetValue(key, skipNull, ignoreCase, out value); - - return value; - } - - public IEnumerable GetValues(string key, bool ignoreCase = false) - { - if (PayloadObjects == null) - { - yield break; - } - - foreach (var payloadObjectDto in PayloadObjects) - { - foreach (var value in payloadObjectDto.GetValues(key, ignoreCase)) - { - yield return value; - } - } - } - - public bool HasValues() - { - if (PayloadObjects == null) - { - return false; - } - - foreach (var payloadObjectDto in PayloadObjects) - { - if (payloadObjectDto.PayloadObject != null) - { - if (payloadObjectDto.PayloadObject.Count > 0) - { - return true; - } - } - } - - return false; - } - - public IEnumerable AllValues() - { - if (PayloadObjects == null) - { - yield break; - } - - foreach (var payloadObjectDto in PayloadObjects) - { - if (payloadObjectDto.PayloadObject != null) - { - foreach (var value in payloadObjectDto.PayloadObject) - { - yield return value; - } - } - } - } - } - - - public class PayloadObjectDTO - { - public List PayloadObject; - - - public PayloadObjectDTO() - { - PayloadObject = new List(); - } - - public PayloadObjectDTO(IEnumerable fieldData) - { - PayloadObject = new List(fieldData); - } - - public PayloadObjectDTO(params FieldDTO[] fieldData) : this(fieldData as IEnumerable) - { - } - - public bool TryGetValue(string key, bool skipNull, bool ignoreCase, out string value) - { - if (PayloadObject == null) - { - value = null; - return false; - } - - var stringComparison = ignoreCase - ? StringComparison.InvariantCultureIgnoreCase - : StringComparison.InvariantCulture; - - foreach (var fieldDto in PayloadObject) - { - if (string.Equals(fieldDto.Key, key, stringComparison)) - { - if (skipNull && fieldDto.Value == null) - { - continue; - } - - value = fieldDto.Value; - return true; - } - } - - value = null; - return false; - } - - public string GetValue(string key, bool ignoreCase = false) - { - var stringComparison = ignoreCase - ? StringComparison.InvariantCultureIgnoreCase - : StringComparison.InvariantCulture; - - var pair = PayloadObject.FirstOrDefault(x => string.Equals(x.Key, key, stringComparison)); - - if (pair == null) - { - throw new KeyNotFoundException(string.Format("Unable to find the key {0}", key)); - } - - return pair.Value; - } - - public IEnumerable GetValues(string key, bool ignoreCase = false) - { - if (PayloadObject == null) - { - yield break; - } - - var stringComparison = ignoreCase - ? StringComparison.InvariantCultureIgnoreCase - : StringComparison.InvariantCulture; - - foreach (var fieldDto in PayloadObject) - { - if (string.Equals(fieldDto.Key, key, stringComparison)) - { - yield return fieldDto.Value; - } - } - } - } - - -} diff --git a/Fr8Data/Manifests/StandardQueryCM.cs b/Fr8Data/Manifests/StandardQueryCM.cs deleted file mode 100644 index bd9ddd561f..0000000000 --- a/Fr8Data/Manifests/StandardQueryCM.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Manifests -{ - public class StandardQueryCM : Manifest - { - public StandardQueryCM() - :base(Constants.MT.StandardQueryCrate) - { - Queries = new List(); - } - - public StandardQueryCM(IEnumerable queries) : this() - { - Queries.AddRange(queries); - } - - public StandardQueryCM(params QueryDTO[] queries) : this() - { - Queries.AddRange(queries); - } - - - public List Queries { get; set; } - } -} diff --git a/Fr8Data/Manifests/StandardRoutingDirectiveCM.cs b/Fr8Data/Manifests/StandardRoutingDirectiveCM.cs deleted file mode 100644 index 3eafce012e..0000000000 --- a/Fr8Data/Manifests/StandardRoutingDirectiveCM.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.DataTransferObjects; - -namespace Fr8Data.Manifests -{ - public class StandardRoutingDirectiveCM : Manifest - { - public string Directive { get; set; } - public string TargetProcessNodeName { get; set; } - public string TargetActivityName { get; set; } - public string Explanation { get; set; } - - public StandardRoutingDirectiveCM() - : base(Constants.MT.StandardRoutingDirective) { } - } - - -} diff --git a/Fr8Data/Manifests/StandardSecurityCM.cs b/Fr8Data/Manifests/StandardSecurityCM.cs deleted file mode 100644 index d359ade4df..0000000000 --- a/Fr8Data/Manifests/StandardSecurityCM.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Fr8Data.Constants; - -namespace Fr8Data.Manifests -{ - public class StandardSecurityCM : Manifest - { - public string AuthenticateAs { get; set; } - - public StandardSecurityCM() - : base(MT.StandardSecurityCrate) - { - } - } -} diff --git a/Fr8Data/Manifests/StandardTableDataCM.cs b/Fr8Data/Manifests/StandardTableDataCM.cs deleted file mode 100644 index 4d3d3779ce..0000000000 --- a/Fr8Data/Manifests/StandardTableDataCM.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.DataTransferObjects; -using System.Linq; - -namespace Fr8Data.Manifests -{ - public class StandardTableDataCM : Manifest - { - public StandardTableDataCM() - :base(Constants.MT.StandardTableData) - { - Table = new List(); - } - - public List Table { get; set; } - - [ManifestField(IsHidden = true)] - public bool FirstRowHeaders { get; set; } - - [ManifestField(IsHidden = true)] - public bool HasDataRows - { - get - { - if (Table?.Count == 0) - { - return false; - } - return Table.Count > 1 || (!FirstRowHeaders && Table.Count == 1); - } - } - - public IEnumerable DataRows - { - get - { - if (Table == null) - { - return new TableRowDTO[0]; - } - return Table.Skip(FirstRowHeaders ? 1 : 0); - } - } - - public TableRowDTO GetHeaderRow() - { - return Table[0]; - } - - public StandardPayloadDataCM ToPayloadData() - { - var result = new StandardPayloadDataCM(); - - var payloadObjects = DataRows - .Select(x => new PayloadObjectDTO() - { - PayloadObject = x.Row.Select(y => y.Cell).ToList() - }) - .ToList(); - - result.PayloadObjects = payloadObjects; - - return result; - } - } - - public class TableRowDTO - { - public TableRowDTO() - { - Row = new List(); - } - - public List Row; - } - - [System.Diagnostics.DebuggerDisplay("Key = '{Cell.Key}', Value = '{Cell.Value}'")] - public class TableCellDTO - { - public TableCellDTO() - { - FieldDTO Cell = new FieldDTO(); //name should be the column number, and value is the value of the cell - } - - public FieldDTO Cell; - - public static TableCellDTO Create(string key, string value) - { - return new TableCellDTO() - { - Cell = new FieldDTO() - { - Key = key, - Value = value, - } - }; - } - } -} diff --git a/Fr8Data/Manifests/ValidationResultsCM.cs b/Fr8Data/Manifests/ValidationResultsCM.cs deleted file mode 100644 index f2007d34b8..0000000000 --- a/Fr8Data/Manifests/ValidationResultsCM.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Fr8Data.Constants; -using Fr8Data.DataTransferObjects; -using Newtonsoft.Json; - -namespace Fr8Data.Manifests -{ - public class ValidationResultsCM : Manifest - { - // List of validation errors - [JsonProperty("validationErrors")] - public List ValidationErrors { get; set; } = new List(); - - [JsonIgnore] - public bool HasErrors => ValidationErrors?.Count > 0; - - public ValidationResultsCM() - : base(MT.ValidationResults) - { - } - - public List GetErrorsForControl(string controlName) - { - List errors = new List(); - - if (ValidationErrors != null) - { - foreach (var validationResultDto in ValidationErrors) - { - if (validationResultDto.ControlNames != null && !string.IsNullOrWhiteSpace(validationResultDto.ErrorMessage)) - { - if (validationResultDto.ControlNames.Any(x => x == controlName)) - { - errors.Add(validationResultDto.ErrorMessage); - } - } - } - } - - return errors; - } - - public override string ToString() - { - if (ValidationErrors != null) - { - StringBuilder stringBuilder = new StringBuilder(); - - stringBuilder.AppendLine($"{ValidationErrors.Count} validation error(s)."); - - foreach (var validationResult in ValidationErrors) - { - if (validationResult.ControlNames?.Count > 0) - { - stringBuilder.Append("Controls ["); - bool first = true; - - foreach (var controlName in validationResult.ControlNames) - { - if (!first) - { - stringBuilder.Append(", "); - } - - stringBuilder.Append(controlName); - - first = false; - } - - stringBuilder.Append("]: "); - } - else - { - stringBuilder.Append("Global: "); - } - - stringBuilder.AppendLine(validationResult.ErrorMessage); - } - - return stringBuilder.ToString(); - } - - return "No validation errors"; - } - } -} diff --git a/Fr8Data/Properties/AssemblyInfo.cs b/Fr8Data/Properties/AssemblyInfo.cs deleted file mode 100644 index 4cfaf99527..0000000000 --- a/Fr8Data/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Fr8Data")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Fr8Data")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("a3178d71-a2c3-45b9-8334-adcc7c313541")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Fr8Data/States/ActivityCategory.cs b/Fr8Data/States/ActivityCategory.cs deleted file mode 100644 index 940be45ae8..0000000000 --- a/Fr8Data/States/ActivityCategory.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Fr8Data.States -{ - public enum ActivityCategory - { - Monitors = 1, - Receivers = 2, - Processors = 3, - Forwarders = 4, - Solution = 5 - } -} diff --git a/Fr8Data/States/ActivityType.cs b/Fr8Data/States/ActivityType.cs deleted file mode 100644 index 9d282dcdc7..0000000000 --- a/Fr8Data/States/ActivityType.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Fr8Data.States -{ - public enum ActivityType - { - Standard = 1, - Loop = 2, - Solution = 3 - } -} diff --git a/Fr8Data/States/AuthenticationType.cs b/Fr8Data/States/AuthenticationType.cs deleted file mode 100644 index 99e3681368..0000000000 --- a/Fr8Data/States/AuthenticationType.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Fr8Data.States -{ - public class AuthenticationType - { - public const int None = 1; - public const int Internal = 2; - public const int External = 3; - public const int InternalWithDomain = 4; - } -} diff --git a/Fr8Data/States/AvailabilityType.cs b/Fr8Data/States/AvailabilityType.cs deleted file mode 100644 index 92e410c6ca..0000000000 --- a/Fr8Data/States/AvailabilityType.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace Fr8Data.States -{ - [Flags] - public enum AvailabilityType - { - NotSet = 0, - Configuration = 0x1, - RunTime = 0x2, - Always = Configuration | RunTime - } - -} diff --git a/Fr8Data/States/CrateDirection.cs b/Fr8Data/States/CrateDirection.cs deleted file mode 100644 index 49831b6a40..0000000000 --- a/Fr8Data/States/CrateDirection.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Fr8Data.States -{ - public enum CrateDirection - { - Upstream, - Downstream, - Both - } -} \ No newline at end of file diff --git a/Fr8Data/States/PlanTemplateStatus.cs b/Fr8Data/States/PlanTemplateStatus.cs deleted file mode 100644 index d9034fb4b5..0000000000 --- a/Fr8Data/States/PlanTemplateStatus.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Fr8Data.States -{ - public enum PlanTemplateStatus - { - Active = 1, - Inactive = 2 - } -} diff --git a/Fr8Data/States/PlanVisibility.cs b/Fr8Data/States/PlanVisibility.cs deleted file mode 100644 index 7f92708839..0000000000 --- a/Fr8Data/States/PlanVisibility.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Fr8Data.States -{ - public enum PlanVisibility - { - Standard = 1, - Internal = 2 - } -} diff --git a/Fr8Data/States/TerminalStatus.cs b/Fr8Data/States/TerminalStatus.cs deleted file mode 100644 index 9cfbe9f0c9..0000000000 --- a/Fr8Data/States/TerminalStatus.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Fr8Data.States -{ - public class TerminalStatus - { - public const int Inactive = 0; - public const int Active = 1; - } -} diff --git a/Fr8Data/packages.config b/Fr8Data/packages.config deleted file mode 100644 index 64b5d8efe5..0000000000 --- a/Fr8Data/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.Designer.cs b/Hub/Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.Designer.cs similarity index 100% rename from Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.Designer.cs rename to Hub/Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.Designer.cs diff --git a/Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.cs b/Hub/Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.cs similarity index 100% rename from Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.cs rename to Hub/Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.cs diff --git a/Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.resx b/Hub/Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.resx similarity index 100% rename from Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.resx rename to Hub/Data/201603191417514_Renamed_ReceiveGoogleForm_To_MonitorFormResponses.resx diff --git a/Data/App.config b/Hub/Data/App.config similarity index 100% rename from Data/App.config rename to Hub/Data/App.config diff --git a/Data/Constants/ActivityDirection.cs b/Hub/Data/Constants/ActivityDirection.cs similarity index 100% rename from Data/Constants/ActivityDirection.cs rename to Hub/Data/Constants/ActivityDirection.cs diff --git a/Data/Constants/ActivityErrorCode.cs b/Hub/Data/Constants/ActivityErrorCode.cs similarity index 100% rename from Data/Constants/ActivityErrorCode.cs rename to Hub/Data/Constants/ActivityErrorCode.cs diff --git a/Data/Constants/ActivityExecutionMode.cs b/Hub/Data/Constants/ActivityExecutionMode.cs similarity index 100% rename from Data/Constants/ActivityExecutionMode.cs rename to Hub/Data/Constants/ActivityExecutionMode.cs diff --git a/Data/Constants/ActivityResponse.cs b/Hub/Data/Constants/ActivityResponse.cs similarity index 100% rename from Data/Constants/ActivityResponse.cs rename to Hub/Data/Constants/ActivityResponse.cs diff --git a/Data/Constants/FieldValidationResult.cs b/Hub/Data/Constants/FieldValidationResult.cs similarity index 100% rename from Data/Constants/FieldValidationResult.cs rename to Hub/Data/Constants/FieldValidationResult.cs diff --git a/Data/Constants/ManifestIdEnum.cs b/Hub/Data/Constants/ManifestIdEnum.cs similarity index 100% rename from Data/Constants/ManifestIdEnum.cs rename to Hub/Data/Constants/ManifestIdEnum.cs diff --git a/Data/Constants/Tags.cs b/Hub/Data/Constants/Tags.cs similarity index 100% rename from Data/Constants/Tags.cs rename to Hub/Data/Constants/Tags.cs diff --git a/Data/Control/Control.cs b/Hub/Data/Control/Control.cs similarity index 100% rename from Data/Control/Control.cs rename to Hub/Data/Control/Control.cs diff --git a/Data/Control/ControlExtensions.cs b/Hub/Data/Control/ControlExtensions.cs similarity index 100% rename from Data/Control/ControlExtensions.cs rename to Hub/Data/Control/ControlExtensions.cs diff --git a/Data/Crates/Crate.cs b/Hub/Data/Crates/Crate.cs similarity index 100% rename from Data/Crates/Crate.cs rename to Hub/Data/Crates/Crate.cs diff --git a/Data/Crates/CrateManifestAttribute.cs b/Hub/Data/Crates/CrateManifestAttribute.cs similarity index 100% rename from Data/Crates/CrateManifestAttribute.cs rename to Hub/Data/Crates/CrateManifestAttribute.cs diff --git a/Data/Crates/CrateManifestType.cs b/Hub/Data/Crates/CrateManifestType.cs similarity index 100% rename from Data/Crates/CrateManifestType.cs rename to Hub/Data/Crates/CrateManifestType.cs diff --git a/Data/Crates/CrateManifestTypeDescriptionAttribute.cs b/Hub/Data/Crates/CrateManifestTypeDescriptionAttribute.cs similarity index 100% rename from Data/Crates/CrateManifestTypeDescriptionAttribute.cs rename to Hub/Data/Crates/CrateManifestTypeDescriptionAttribute.cs diff --git a/Data/Crates/CrateStorage.cs b/Hub/Data/Crates/CrateStorage.cs similarity index 100% rename from Data/Crates/CrateStorage.cs rename to Hub/Data/Crates/CrateStorage.cs diff --git a/Data/Crates/CrateStorageExtensions.cs b/Hub/Data/Crates/CrateStorageExtensions.cs similarity index 100% rename from Data/Crates/CrateStorageExtensions.cs rename to Hub/Data/Crates/CrateStorageExtensions.cs diff --git a/Data/Crates/CrateStorageSerializer.DefaultSerializer.cs b/Hub/Data/Crates/CrateStorageSerializer.DefaultSerializer.cs similarity index 100% rename from Data/Crates/CrateStorageSerializer.DefaultSerializer.cs rename to Hub/Data/Crates/CrateStorageSerializer.DefaultSerializer.cs diff --git a/Data/Crates/CrateStorageSerializer.cs b/Hub/Data/Crates/CrateStorageSerializer.cs similarity index 100% rename from Data/Crates/CrateStorageSerializer.cs rename to Hub/Data/Crates/CrateStorageSerializer.cs diff --git a/Data/Crates/CrateT.cs b/Hub/Data/Crates/CrateT.cs similarity index 100% rename from Data/Crates/CrateT.cs rename to Hub/Data/Crates/CrateT.cs diff --git a/Data/Crates/DenySerializationConverter.cs b/Hub/Data/Crates/DenySerializationConverter.cs similarity index 100% rename from Data/Crates/DenySerializationConverter.cs rename to Hub/Data/Crates/DenySerializationConverter.cs diff --git a/Data/Crates/Helpers/EventReportCrateFactory.cs b/Hub/Data/Crates/Helpers/EventReportCrateFactory.cs similarity index 100% rename from Data/Crates/Helpers/EventReportCrateFactory.cs rename to Hub/Data/Crates/Helpers/EventReportCrateFactory.cs diff --git a/Data/Crates/Helpers/LoggingDataCrateFactory.cs b/Hub/Data/Crates/Helpers/LoggingDataCrateFactory.cs similarity index 100% rename from Data/Crates/Helpers/LoggingDataCrateFactory.cs rename to Hub/Data/Crates/Helpers/LoggingDataCrateFactory.cs diff --git a/Data/Crates/ICrateStorage.cs b/Hub/Data/Crates/ICrateStorage.cs similarity index 100% rename from Data/Crates/ICrateStorage.cs rename to Hub/Data/Crates/ICrateStorage.cs diff --git a/Data/Crates/ICrateStorageSerializer.cs b/Hub/Data/Crates/ICrateStorageSerializer.cs similarity index 100% rename from Data/Crates/ICrateStorageSerializer.cs rename to Hub/Data/Crates/ICrateStorageSerializer.cs diff --git a/Data/Crates/IManifestSerializer.cs b/Hub/Data/Crates/IManifestSerializer.cs similarity index 100% rename from Data/Crates/IManifestSerializer.cs rename to Hub/Data/Crates/IManifestSerializer.cs diff --git a/Data/Crates/ManifestDiscovery.cs b/Hub/Data/Crates/ManifestDiscovery.cs similarity index 100% rename from Data/Crates/ManifestDiscovery.cs rename to Hub/Data/Crates/ManifestDiscovery.cs diff --git a/Data/Crates/ManifestTypeCache.cs b/Hub/Data/Crates/ManifestTypeCache.cs similarity index 100% rename from Data/Crates/ManifestTypeCache.cs rename to Hub/Data/Crates/ManifestTypeCache.cs diff --git a/Data/Data.csproj b/Hub/Data/Data.csproj similarity index 94% rename from Data/Data.csproj rename to Hub/Data/Data.csproj index 1539ac669a..81fd93a328 100644 --- a/Data/Data.csproj +++ b/Hub/Data/Data.csproj @@ -1,4 +1,4 @@ - + @@ -51,157 +51,157 @@ - ..\packages\Analytics.2.0.0\lib\Analytics.NET.dll + ..\..\packages\Analytics.2.0.0\lib\Analytics.NET.dll True - ..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\packages\Hyak.Common.1.0.2\lib\net45\Hyak.Common.dll + ..\..\packages\Hyak.Common.1.0.2\lib\net45\Hyak.Common.dll True - ..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\packages\Microsoft.AspNet.Identity.Core.2.0.1\lib\net45\Microsoft.AspNet.Identity.Core.dll + ..\..\packages\Microsoft.AspNet.Identity.Core.2.0.1\lib\net45\Microsoft.AspNet.Identity.Core.dll True - ..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.1\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll + ..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.1\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll True - ..\packages\Microsoft.AspNet.Identity.Owin.2.0.1\lib\net45\Microsoft.AspNet.Identity.Owin.dll + ..\..\packages\Microsoft.AspNet.Identity.Owin.2.0.1\lib\net45\Microsoft.AspNet.Identity.Owin.dll True - ..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.dll + ..\..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.dll True - ..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.NetFramework.dll + ..\..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.NetFramework.dll True - ..\packages\Microsoft.Azure.KeyVault.1.0.0\lib\net45\Microsoft.Azure.KeyVault.dll + ..\..\packages\Microsoft.Azure.KeyVault.1.0.0\lib\net45\Microsoft.Azure.KeyVault.dll True - ..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll + ..\..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll True - ..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll + ..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll True - ..\packages\Microsoft.Data.OData.5.6.4\lib\net40\Microsoft.Data.OData.dll + ..\..\packages\Microsoft.Data.OData.5.6.4\lib\net40\Microsoft.Data.OData.dll True - ..\packages\Microsoft.Data.Services.Client.5.6.4\lib\net40\Microsoft.Data.Services.Client.dll + ..\..\packages\Microsoft.Data.Services.Client.5.6.4\lib\net40\Microsoft.Data.Services.Client.dll True - ..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.19.208020213\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + ..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.19.208020213\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll True - ..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.19.208020213\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + ..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.19.208020213\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - ..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll + ..\..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll True - ..\packages\Microsoft.Owin.Security.3.0.1\lib\net45\Microsoft.Owin.Security.dll + ..\..\packages\Microsoft.Owin.Security.3.0.1\lib\net45\Microsoft.Owin.Security.dll True - ..\packages\Microsoft.Owin.Security.Cookies.3.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll + ..\..\packages\Microsoft.Owin.Security.Cookies.3.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll True - ..\packages\Microsoft.Owin.Security.OAuth.3.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll + ..\..\packages\Microsoft.Owin.Security.OAuth.3.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll True - ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll + ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll True - ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll + ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll True - ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll + ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll True - ..\packages\WindowsAzure.Storage.5.0.2\lib\net40\Microsoft.WindowsAzure.Storage.dll + ..\..\packages\WindowsAzure.Storage.5.0.2\lib\net40\Microsoft.WindowsAzure.Storage.dll True - ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True False - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll False - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll @@ -211,21 +211,21 @@ - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\packages\System.Spatial.5.6.4\lib\net40\System.Spatial.dll + ..\..\packages\System.Spatial.5.6.4\lib\net40\System.Spatial.dll True @@ -233,22 +233,22 @@ - ..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True - ..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True - ..\packages\Zlib.Portable.1.9.2\lib\portable-net4+sl4+wp71+win8\Zlib.Portable.dll + ..\..\packages\Zlib.Portable.1.9.2\lib\portable-net4+sl4+wp71+win8\Zlib.Portable.dll True @@ -1520,7 +1520,7 @@ - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET @@ -1533,10 +1533,10 @@ - + - - + + \r\n
  • \r\n Home\r\n
  • \r\n
  • \r\n Dashboard\r\n
  • \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Edit an Account\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Some fields do not contain correct data. Please check below.\r\n
    \r\n
    \r\n {{errorMessage}}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n Cancel\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/ActionPicker","
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/ActionPickerPanel","
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {{selectedCategory.name}}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {{c.name}}
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/ActivityHeader","\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n

    \r\n {{envelope.activityTemplate.label}}\r\n {{envelope.activityTemplate.label}}\r\n

    \r\n

    \r\n {{envelope.activity.label}}\r\n {{envelope.activity.label}}\r\n

    \r\n \r\n
    \r\n \r\n
    updating
    \r\n
    \r\n {{envelope.activityTemplate.label}}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Choose Connection\r\n \r\n \r\n \r\n \r\n \r\n Refresh\r\n \r\n \r\n \r\n \r\n \r\n \r\n Add Label\r\n Change Label\r\n \r\n \r\n \r\n \r\n \r\n \r\n Delete\r\n \r\n \r\n \r\n \r\n \r\n \r\n Help\r\n \r\n \r\n \r\n \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/ActivityLabelModal","
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/ActivityStream","
    \r\n \r\n \r\n

    Activity

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/AdminTools","
    \r\n

    Admin tools page

    \r\n\r\n
    \r\n
    \r\n Manually processes Plans to generate missing Plan Pages\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/AdvisoryMessagesPopup","
    \r\n \r\n X\r\n
    \r\n
    \r\n
    \r\n {{advisory.name}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/AuthenticationDialog","
    \r\n

    Add Connection

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Terminal: {{terminal.label}}\r\n
    \r\n
    \r\n

    \r\n Please click on the Add Connection button to enable «{{terminal.label}}» to access the external service.\r\n

    \r\n\r\n
    \r\n

    Use which connection:

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n Add Connection\r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {{terminal.advancedOptionsAreExpanded ? \'▲\' : \'▼\'}}\r\n Advanced options\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n\r\n\r\n"); +$templateCache.put("/AngularTemplate/BuildMessageAppender","\r\n
    \r\n \r\n Insert\r\n
    "); +$templateCache.put("/AngularTemplate/ConfigurationControl","
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n
    \r\n
    {{field.errorMessage}}
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/ConfigureActivityDialog","
    \r\n

    Please, configure activity {{activity.activityTemplate.label}}

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/ConfirmationModal","
    \r\n

    {{message.title}}

    \r\n
    \r\n
    \r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    "); +$templateCache.put("/AngularTemplate/ContainerDetails","
    \r\n
    \r\n
    \r\n

    Container : {{::id}}

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {{container | json}}
    \r\n
    {{payload | json}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n History\r\n
    \r\n
    \r\n\r\n
    \r\n
    No history exists!
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    CreatedDatePrimary CategorySecondary CategoryActivityStatusObject IdFr8User IdData
    {{ fact.createDate | datetime }}{{ fact.primaryCategory }}{{ fact.secondaryCategory }}{{ fact.activity }}{{ fact.status }}{{ fact.objectId }}{{ fact.fr8UserId }}{{ fact.data }}
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/ContainerList","
      \r\n \r\n
    • \r\n Home\r\n
    • \r\n
    • \r\n Dashboard\r\n
    • \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    Containers

    \r\n
    \r\n \r\n Filter\r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    IdPlan IdCreate DateLast UpdatedNameState
    {{ container.id }}{{ container.planId }}{{ container.createDate | datetime }}{{ container.lastUpdated | datetime }}{{ container.name }}{{ container.state | State }}
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/ContainerTransition","
    \r\n
    \r\n

    \r\n If the following is true:\r\n 1\"\r\n ng-click=\"removeTransition($index)\">\r\n \r\n \r\n

    \r\n \r\n \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    {{transition.errorMessage}}
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/ControlList","
    \r\n \r\n
    \r\n
    1\" style=\"float:right\">\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {{::field.noDataMessage || \'No data was selected\'}}\r\n
    \r\n\r\n THIS CONTROL REQUIRES A TEMPLATE!\r\n \r\n
    "); +$templateCache.put("/AngularTemplate/Counter","
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    "); +$templateCache.put("/AngularTemplate/CrateChooser","
    \r\n {{::field.label}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    {{::crate.manifestType}}

    \r\n {{::crate.label}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Select...\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n"); +$templateCache.put("/AngularTemplate/DatePicker","\r\n

    \r\n \r\n \r\n \r\n \r\n

    \r\n"); +$templateCache.put("/AngularTemplate/DesignerHeader","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n
    {{plan.name}}
    \r\n \r\n\r\n

    \r\n

    \r\n
    {{plan.name}}
    \r\n

    \r\n
    \r\n \r\n \r\n \r\n Edit Name\r\n \r\n \r\n
    \r\n
    \r\n \r\n View:\r\n \r\n Activities\r\n \r\n \r\n Settings\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Saving Changes...\r\n \r\n \r\n Ready\r\n \r\n \r\n \r\n \r\n \r\n {{plan.planState | PlanState}}\r\n \r\n \r\n {{plan.planState | PlanState}}\r\n \r\n \r\n stop\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/DropDownListBox","
    \r\n \r\n \r\n {{$select.selected.key || select.selected.Key || $select.selected}}\r\n \r\n \r\n \r\n \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/Duration","
    \r\n \r\n \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/Empty","
    "); +$templateCache.put("/AngularTemplate/ExternalObjectChooser","
    \r\n \r\n
    \r\n \r\n {{field.externalObjectName}}\r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/FieldList","
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {{field.fieldLabel ? field.fieldLabel : \"Field\"}}{{field.valueLabel ? field.valueLabel : \"Value\"}}
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n Add Row\r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/FileDetails","
    \r\n

    {{file.originalFileName}}

    \r\n
    Id : {{file.id}}
    \r\n
    Cloud Storage Url : {{file.cloudStorageUrl}}
    \r\n
    \r\n
    Tags :
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    #KeyValueActions
    1DocusignTemplateIdMy_Docusign_Template.ds\r\n \r\n \r\n \r\n
    2EnvelopeTemplateIdMy_Envelope_Template.ds\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/FilePicker","
    \r\n Select File\r\n {{field.value == null ? \'No file selected\' : field.value|formatInput}}\r\n
    \r\n"); +$templateCache.put("/AngularTemplate/FileSelectorModal","
    \r\n

    Please select a file below

    \r\n
    \r\n
    \r\n
      \r\n
    • {{file.originalFileName}}
    • \r\n
    \r\n
    \r\n
    \r\n \r\n
    "); +$templateCache.put("/AngularTemplate/FilterPane","
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/Footer","
    \r\n
    \r\n

    � The Fr8 Company. All Rights Reserved.

    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/Fr8Event","\r\n\r\n \r\n
    \r\n

    {{::eventHeader}}

    \r\n

    {{::eventSubHeader}}

    \r\n
    \r\n\r\n \r\n \r\n \r\n
    \r\n\r\n\r\n\r\n
    \r\n

    \r\n
    \r\n
    \r\n\r\n
    "); +$templateCache.put("/AngularTemplate/InternalAuthentication","
    \r\n

    Please provide credentials for terminal authentication:

    \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n Remote service could not authenticate you.\r\n

    \r\n\r\n

    \r\n {{authErrorText}}\r\n

    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/KioskModeOrganizationHeader","
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{name}}\r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/MainContainer","
    "); +$templateCache.put("/AngularTemplate/MainContainer_AS","
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/ManageAuthTokens","
      \r\n
    • \r\n Home\r\n
    • \r\n
    • \r\n Manage Connections\r\n
    • \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    Terminal: {{terminal.name}}
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    External Account Name
    \r\n {{authToken.externalAccountName}}\r\n (Default)\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    No Connections Yet
    \r\n
    \r\n Currently you don\'t have any services connected to your Fr8 account.\r\n
    \r\n
    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/ManageFileList","
      \r\n
    • \r\n Home\r\n
    • \r\n
    • \r\n Dashboard\r\n
    • \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n

    Success!

    \r\n

    \r\n Operation has completed successfuly.\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n All Files\r\n weekly stats...\r\n
    \r\n
    \r\n Add File\r\n
    \r\n
    \r\n
    \r\n
    Files not found.
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n"); +$templateCache.put("/AngularTemplate/ManagePlan","
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n Save for future use\r\n
    \r\n\r\n
    \r\n Saved to «{{copySuccess.name}}» plan.\r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/ManifestRegistryList","
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Manifest Registry\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n These are defined Manifests that are shared by Fr8 Activities. You can submit additional Manifests to this registry. Use of these is optional, but when you save your activity\'s crate data in a json format specified by a defined Manifest, you increase the ability of other downstream activities to work with the data structures you\'ve created.\r\n \r\n
    \r\n
    No manifest descriptions found.
    \r\n
    0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    IdNameVersionDescriptionRegisteredBy
    {{manifestDescription.id}}{{manifestDescription.name}}{{manifestDescription.version}}{{manifestDescription.description}}{{manifestDescription.registeredBy}}
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/MappingPane","
    \r\n
    \r\n
    \r\n
    Map from:
    \r\n
    \r\n
    \r\n
    Map to:
    \r\n
    \r\n
    \r\n
    0\">\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/messages",""); +$templateCache.put("/AngularTemplate/MetaControlContainer","
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    {{metaDescription.description}}{{getIndex(metaDescription)}}
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/Organization","
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n {{logoUrl == null ? \'No file selected\' : logoUrl|formatInput}}\r\n \r\n
    \r\n Select File\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {{message}}
    \r\n Save\r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/PageDefinitionList","
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Page Definitions\r\n
    \r\n \r\n
    \r\n
    \r\n
    No page definitions found.
    \r\n
    0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    IdTitleTagsPage NameLink
    {{pageDefinition.id }}{{pageDefinition.title }}{{pageDefinition.tags }}{{pageDefinition.pageName }}Show
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    "); +$templateCache.put("/AngularTemplate/PageHead","
    \r\n \r\n
    \r\n

    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    "); +$templateCache.put("/AngularTemplate/PaneConfigureAction","
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n"); +$templateCache.put("/AngularTemplate/PaneSelectActionModal","
    \r\n
    \r\n
    \r\n \r\n
    {{actionCategory.name}}
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {{action.label}}\r\n
    \r\n \r\n\r\n\r\n"); +$templateCache.put("/AngularTemplate/PermissionsSetterModal","
    \r\n

    Set Permissions for Terminal

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Terminal: {{terminal.label}}\r\n
    \r\n
    \r\n

    \r\n These Roles can see and use this Terminal:\r\n

    \r\n
      \r\n
    • \r\n {{ role }}\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/PhoneNumberAuthentication","
    \r\n

    Please provide phone number for terminal authentication:

    \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n Remote service could not authenticate you.\r\n

    \r\n\r\n

    \r\n {{authErrorText}}\r\n

    \r\n\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    \r\n Remote service could not authenticate you.\r\n

    \r\n\r\n

    \r\n {{authErrorText}}\r\n

    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n

    \r\n {{formData.message}}\r\n

    \r\n \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/PlanBuilder","\r\n
      \r\n
    • Home
    • \r\n
    • Dashboard
    • \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    0\">\r\n
    \r\n
    \r\n
    \r\n
    {{jumpTarget.Target}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/PlanBuilder_KioskMode","\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n

    {{envelope.activity.label}} {{envelope.activity.label}}

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    1\" />\r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/PlanBuilder_SimpleKioskMode","\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n

    {{envelope.activity.label}} {{envelope.activity.label}}

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    1\" />\r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/PlanDetails","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Description: \r\n {{current.plan.description}}\r\n \r\n

    \r\n
    \r\n \r\n \r\n \r\n Edit Description\r\n \r\n \r\n
    \r\n\r\n

    \r\n \r\n Publish to Public Directory\r\n Yes\r\n No \r\n \r\n

    \r\n\r\n
    \r\n

    Plan JSON

    \r\n \r\n Download\r\n \r\n
    \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/PlanReportList","
      \r\n
    • \r\n Home\r\n
    • \r\n
    • \r\n Dashboard\r\n
    • \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n

    Reports

    \r\n
    \r\n
    \r\n\r\n @Html.Partial(\"_PlanReportList\")\r\n
    \r\n"); +$templateCache.put("/AngularTemplate/PlanUploadModal","
    \r\n

    Load plan from JSON file

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Choose .JSON file to upload plan template\r\n \r\n   {{planFile.name}}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/QueryBuilder","
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    FieldOperatorValue
    \r\n
    \r\n

    \r\n AND\r\n {{::addRowText}}\r\n

    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/QueryBuilderCondition","\r\n \r\n
    \r\n \r\n {{$select.selected.key}}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n"); +$templateCache.put("/AngularTemplate/QueryBuilderWidget","\r\n"); +$templateCache.put("/AngularTemplate/RadioButtonOption","\r\n\r\n\r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/ReportIncidentModal","
    \r\n

    \r\n Incident Report\r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Created Date

    {{ historyItem.createDate | date:\"MM/dd/yyyy h:mm:ss a\"}}

    \r\n

    Primary Category

    {{ historyItem.primaryCategory ? historyItem.primaryCategory: \'---\' }}

    \r\n

    Secondary Category

    {{ historyItem.secondaryCategory ? historyItem.secondaryCategory : \'---\' }}

    \r\n

    Activity

    {{ historyItem.activity ? historyItem.activity : \'---\' }}

    \r\n
    \r\n
    \r\n

    Fr8 User Id

    {{ historyItem.fr8UserId ? historyItem.fr8UserId : \'---\' }}

    \r\n

    Object Id

    {{ historyItem.objectId ? historyItem.objectId : \'---\' }}

    \r\n

    Status

    {{ historyItem.status ? historyItem.status : \'---\' }}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Data:

    \r\n
    {{ historyItem.data ? historyItem.data : \'---\' }}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/RunPlanButton","
    \r\n
    {{error}}
    \r\n Run Now\r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/SelectActivityDialog","
    \r\n

    Select which data:

    \r\n

    \r\n \r\n Activities\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {{webService.name}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {{activity.label}}\r\n
    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/SelectData","
    \r\n \r\n
    \r\n \r\n {{field.activityTemplateName}}\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n {{field.externalObjectName}}\r\n
    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/ShowFacts","
    \r\n \r\n \r\n
    \r\n

    Facts

    \r\n
    \r\n \r\n Filter\r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n Show facts of all users\r\n Show only my facts\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Created DatePrimary CategorySecondary CategoryActivityComponentDataFr8UserIdObject IdStatusCreated By
    {{ historyItem.createDate | date:\"MM/dd/yyyy h:mm:ss a\"}}{{ historyItem.primaryCategory }}{{ historyItem.secondaryCategory }}{{ historyItem.activity }}{{ historyItem.component }}\r\n
    \r\n {{ historyItem.data }}\r\n
    \r\n
    \r\n {{ historyItem.data.length > 50 ? (historyItem.data | limitTo: 50)+\'...\' : historyItem.data }}\r\n
    \r\n
    \r\n
    \r\n {{ historyItem.fr8UserId }}\r\n
    \r\n
    \r\n {{ historyItem.fr8UserId.length > 8 ? (historyItem.fr8UserId | limitTo: 8)+\'...\' : historyItem.fr8UserId }}\r\n
    \r\n
    \r\n
    \r\n {{ historyItem.objectId }}\r\n
    \r\n
    \r\n {{ historyItem.objectId.length > 8 ? (historyItem.objectId | limitTo: 8)+\'...\' : historyItem.objectId }}\r\n
    \r\n
    {{ historyItem.status }}{{ historyItem.createdByID }}
    \r\n
    \r\n \r\n \r\n
    \r\n

    You don\'t have permissions to see facts of other users

    \r\n
    \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/ShowIncidents","
    \r\n \r\n \r\n
    \r\n

    Incidents

    \r\n
    \r\n \r\n Filter\r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n Show incidents of all users\r\n Show only my incidents\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Created DatePrimary CategorySecondary CategoryActivityDataFr8 User IdObject IdStatus
    {{ historyItem.createDate | date:\"MM/dd/yyyy h:mm:ss a\"}}{{ historyItem.primaryCategory }}{{ historyItem.secondaryCategory }}{{ historyItem.activity }}{{ historyItem.data.length > 200 ? (historyItem.data | limitTo: 200)+\'...\' : historyItem.data }}{{ historyItem.fr8UserId.length > 8 ? (historyItem.fr8UserId | limitTo: 8)+\'...\' : historyItem.fr8UserId }}{{ historyItem.objectId.length > 8 ? (historyItem.objectId | limitTo: 8)+\'...\' : historyItem.objectId }}{{ historyItem.status }}
    \r\n
    \r\n\r\n \r\n \r\n
    \r\n

    You don\'t have permissions to see incidents of other users

    \r\n
    \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/SolutionDocumentation","
    \r\n
    \r\n
    \r\n
    \r\n Create\r\n
    \r\n
    {{solutionDTO.name}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Version: {{solutionDTO.version}}\r\n

    \r\n

    \r\n Host Terminal: {{solutionDTO.terminal}}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n"); +$templateCache.put("/AngularTemplate/SolutionList","
    \r\n
    \r\n
    \r\n

    Select a Solution

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Available SolutionsSolution Description
    \r\n {{activity.label}}\r\n \r\n {{activity.description}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/SourceableCriteria","
    \r\n \r\n
    \r\n \r\n \r\n \r\n {{$select.selected.key || select.selected.Key || $select.selected}}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{$select.selected.key || select.selected.Key || $select.selected}}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    than:
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/SubplanHeader","
    \r\n
    \r\n

    \r\n {{subplan.name}}\r\n \r\n \r\n

    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/TerminalDetail","\r\n
      \r\n \r\n
    • \r\n Home\r\n
    • \r\n
    • \r\n Dashboard\r\n
    • \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Terminal Details\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Some fields do not contain correct data. Please check below.\r\n
    \r\n
    \r\n {{errorMessage}}\r\n
    \r\n \r\n
    \r\n \r\n This is a Fr8 own C# terminal or is deployed along with those\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n Please contact Support to get the Production URL updated.\r\n
    \r\n
    \r\n If you run the terminal on the local machine, specify the local URL e.g. http://localhost:12345\r\n in both Production URL and Development URL textboxes. If you add the terminal on the shared Development instance,\r\n specify the Development URL e.g. http://dev-terminals.fr8.co:12345in both textboxes. On the Production environment, specify the development and production URLs,\r\n respectively.\r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n This is the URL which is used by the Hub to access the terminal at this moment.\r\n It can be equal to the Production URL or the Development URL or some other URL depending on terminal participation state\r\n and deployment status.\r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n Approved\r\n Not Approved\r\n \r\n
    \r\n \r\n
    \r\n You terminal is approved and available for all Fr8 users.\r\n Your terminal is not yet approved and is available to you only.\r\n
    \r\n\r\n \r\n
    \r\n \r\n Return\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/TerminalForm",""); +$templateCache.put("/AngularTemplate/TerminalPublishForm","
    \r\n
    \r\n

    Publish Terminal

    \r\n
    \r\n
    \r\n

    \r\n use this process to request The Fr8 Company to host your Terminal publicly,\r\n making it available to other Fr8 users. Before doing this, review the Submission Process.\r\n

    \r\n\r\n
    \r\n
    \r\n Ok\r\n \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/TextArea","
    \r\n \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/TextBlock","
    \r\n \r\n
    "); +$templateCache.put("/AngularTemplate/TextSource","\r\n\r\n
    \r\n {{field.initialLabel}}\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/TimePicker","
    \r\n
    \r\n {{duration.days}}
    \r\n days\r\n
    \r\n
    \r\n {{duration.hours}}
    \r\n hours\r\n
    \r\n
    \r\n {{duration.minutes}}
    \r\n minutes\r\n
    \r\n
    \r\n\r\n\r\n"); +$templateCache.put("/AngularTemplate/UpstreamCrateChooser","
    \r\n {{::field.label}}\r\n
    \r\n
    \r\n
    \r\n
    Type:
    \r\n
    \r\n \r\n
    \r\n
    Label:
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n 1\"\r\n ng-click=\"removeRow($index)\" style=\"cursor: pointer; margin-top: 20px;\" />\r\n
    \r\n
    \r\n
    \r\n
    \r\n Add Row\r\n
    \r\n
    \r\n
    \r\n"); +$templateCache.put("/AngularTemplate/UpstreamDataChooser","
    0 || labelList.listItems.length > 0 || fieldTypeList.listItems.length > 0\"> \r\n
    Convert which upstream data:
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n No data for data filtering is found in upstream crates.\r\n
    "); +$templateCache.put("/AngularTemplate/UpstreamFieldChooser","\r\n\r\n
    \r\n \r\n
    "); +$templateCache.put("/AngularTemplate/UpstreamFieldChooserDialog","
    \r\n \r\n

    Select Available Upstream Field:

    \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n {{ group.value }}\r\n \r\n
    {{row.key}}
    \r\n
    "); +$templateCache.put("/AngularTemplate/UsersEmailList","\r\n\r\n\r\n

    User Emails List

    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n"); +$templateCache.put("/AngularTemplate/WebServiceList","
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n All Web Services\r\n weekly stats...\r\n
    \r\n
    \r\n Add Web Service\r\n
    \r\n
    \r\n\r\n
    \r\n
    No web services found.
    \r\n
    0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    IdIconName
    {{webService.id}}\r\n \r\n {{webService.name}}
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n
    "); +$templateCache.put("/AngularTemplate/_AddPayloadModal","
    \r\n
    \r\n

    Add Payload

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Payload should not be empty\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    "); +$templateCache.put("/AngularTemplate/_Debug","\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n"); +$templateCache.put("/AngularTemplate/_PlanList","\r\n\r\n \r\n
    \r\n

    Active Plans

    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    NameDescriptionLast UpdatedStatusActions
    {{ plan.name }}{{ plan.description }}{{ plan.lastUpdated | date:\"MM/dd/yyyy h:mm:ss a\"}}\r\n \r\n Executing\r\n Active\r\n Inactive\r\n \r\n \r\n \r\n \r\n \r\n Edit\r\n \r\n \r\n \r\n \r\n \r\n Delete\r\n \r\n \r\n \r\n \r\n \r\n Deactivate\r\n \r\n \r\n \r\n \r\n \r\n Settings\r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n
    \r\n

    Plan Library

    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    NameDescriptionLast UpdatedStatusActions
    {{ plan.name }}{{ plan.description }}{{ plan.lastUpdated | date:\"MM/dd/yyyy h:mm:ss a\"}}\r\n {{plan.planState == \'Executing\' ? \'Running\' : \'Inactive\' }}\r\n \r\n \r\n \r\n \r\n Edit\r\n \r\n \r\n \r\n \r\n \r\n Delete\r\n \r\n \r\n \r\n \r\n \r\n Run\r\n \r\n \r\n \r\n \r\n \r\n Settings\r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n"); +$templateCache.put("/AngularTemplate/_PlanReportList","
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n RUNNING Reports\r\n weekly stats...\r\n
    \r\n
    \r\n\r\n
    \r\n
    Loading plans...
    \r\n
    No running reports found. To make a report running, click on the Run Now button after your report is fully configured.
    \r\n
    0\">\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    NameDescriptionLast UsedStatusActions
    {{ plan.name }}{{ plan.description }}{{ plan.lastUpdated }}\r\n {{plan.planState == \'Executing\' ? \'Running\' : \'Inactive\' }}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Report Library\r\n weekly stats...\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    Loading reports...
    \r\n
    No inactive reports are found. To make a report inactive, click on the Deactivate button for an Active report you wish to disable.
    \r\n
    0\">\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    NameDescriptionLast UsedStatusActions
    {{ plan.name }}{{ plan.description }}{{ plan.lastUpdated }}\r\n {{plan.planState == \'Executing\' ? \'Running\' : \'Inactive\' }}\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    ");}]); \ No newline at end of file diff --git a/Scripts/tests/.gitignore b/Hub/HubWeb/Scripts/tests/.gitignore similarity index 100% rename from Scripts/tests/.gitignore rename to Hub/HubWeb/Scripts/tests/.gitignore diff --git a/Scripts/tests/Chutzpah.json b/Hub/HubWeb/Scripts/tests/Chutzpah.json similarity index 100% rename from Scripts/tests/Chutzpah.json rename to Hub/HubWeb/Scripts/tests/Chutzpah.json diff --git a/Scripts/tests/e2e/authorizationPathways/docusign.spec.js b/Hub/HubWeb/Scripts/tests/e2e/authorizationPathways/docusign.spec.js similarity index 100% rename from Scripts/tests/e2e/authorizationPathways/docusign.spec.js rename to Hub/HubWeb/Scripts/tests/e2e/authorizationPathways/docusign.spec.js diff --git a/Scripts/tests/e2e/authorizationPathways/google.spec.js b/Hub/HubWeb/Scripts/tests/e2e/authorizationPathways/google.spec.js similarity index 100% rename from Scripts/tests/e2e/authorizationPathways/google.spec.js rename to Hub/HubWeb/Scripts/tests/e2e/authorizationPathways/google.spec.js diff --git a/Scripts/tests/e2e/authorizationPathways/salesforce.spec.js b/Hub/HubWeb/Scripts/tests/e2e/authorizationPathways/salesforce.spec.js similarity index 100% rename from Scripts/tests/e2e/authorizationPathways/salesforce.spec.js rename to Hub/HubWeb/Scripts/tests/e2e/authorizationPathways/salesforce.spec.js diff --git a/Scripts/tests/e2e/authorizationPathways/slack.spec.js b/Hub/HubWeb/Scripts/tests/e2e/authorizationPathways/slack.spec.js similarity index 100% rename from Scripts/tests/e2e/authorizationPathways/slack.spec.js rename to Hub/HubWeb/Scripts/tests/e2e/authorizationPathways/slack.spec.js diff --git a/Scripts/tests/e2e/conf.js b/Hub/HubWeb/Scripts/tests/e2e/conf.js similarity index 100% rename from Scripts/tests/e2e/conf.js rename to Hub/HubWeb/Scripts/tests/e2e/conf.js diff --git a/Scripts/tests/e2e/contact/contact.spec.js b/Hub/HubWeb/Scripts/tests/e2e/contact/contact.spec.js similarity index 100% rename from Scripts/tests/e2e/contact/contact.spec.js rename to Hub/HubWeb/Scripts/tests/e2e/contact/contact.spec.js diff --git a/Scripts/tests/e2e/login/login.spec.js b/Hub/HubWeb/Scripts/tests/e2e/login/login.spec.js similarity index 100% rename from Scripts/tests/e2e/login/login.spec.js rename to Hub/HubWeb/Scripts/tests/e2e/login/login.spec.js diff --git a/Scripts/tests/e2e/pages/contact.page.js b/Hub/HubWeb/Scripts/tests/e2e/pages/contact.page.js similarity index 100% rename from Scripts/tests/e2e/pages/contact.page.js rename to Hub/HubWeb/Scripts/tests/e2e/pages/contact.page.js diff --git a/Scripts/tests/e2e/pages/login.page.js b/Hub/HubWeb/Scripts/tests/e2e/pages/login.page.js similarity index 100% rename from Scripts/tests/e2e/pages/login.page.js rename to Hub/HubWeb/Scripts/tests/e2e/pages/login.page.js diff --git a/Scripts/tests/e2e/pages/myAccount.page.js b/Hub/HubWeb/Scripts/tests/e2e/pages/myAccount.page.js similarity index 100% rename from Scripts/tests/e2e/pages/myAccount.page.js rename to Hub/HubWeb/Scripts/tests/e2e/pages/myAccount.page.js diff --git a/Scripts/tests/e2e/pages/plans.page.js b/Hub/HubWeb/Scripts/tests/e2e/pages/plans.page.js similarity index 100% rename from Scripts/tests/e2e/pages/plans.page.js rename to Hub/HubWeb/Scripts/tests/e2e/pages/plans.page.js diff --git a/Scripts/tests/e2e/pages/registration.page.js b/Hub/HubWeb/Scripts/tests/e2e/pages/registration.page.js similarity index 100% rename from Scripts/tests/e2e/pages/registration.page.js rename to Hub/HubWeb/Scripts/tests/e2e/pages/registration.page.js diff --git a/Scripts/tests/e2e/registration/registration.spec.js b/Hub/HubWeb/Scripts/tests/e2e/registration/registration.spec.js similarity index 100% rename from Scripts/tests/e2e/registration/registration.spec.js rename to Hub/HubWeb/Scripts/tests/e2e/registration/registration.spec.js diff --git a/Scripts/tests/e2e/shared/ManageAuthTokens.js b/Hub/HubWeb/Scripts/tests/e2e/shared/ManageAuthTokens.js similarity index 100% rename from Scripts/tests/e2e/shared/ManageAuthTokens.js rename to Hub/HubWeb/Scripts/tests/e2e/shared/ManageAuthTokens.js diff --git a/Scripts/tests/e2e/shared/accountHelper.js b/Hub/HubWeb/Scripts/tests/e2e/shared/accountHelper.js similarity index 100% rename from Scripts/tests/e2e/shared/accountHelper.js rename to Hub/HubWeb/Scripts/tests/e2e/shared/accountHelper.js diff --git a/Scripts/tests/e2e/shared/consoleLog.js b/Hub/HubWeb/Scripts/tests/e2e/shared/consoleLog.js similarity index 100% rename from Scripts/tests/e2e/shared/consoleLog.js rename to Hub/HubWeb/Scripts/tests/e2e/shared/consoleLog.js diff --git a/Scripts/tests/e2e/shared/uiHelpers.js b/Hub/HubWeb/Scripts/tests/e2e/shared/uiHelpers.js similarity index 100% rename from Scripts/tests/e2e/shared/uiHelpers.js rename to Hub/HubWeb/Scripts/tests/e2e/shared/uiHelpers.js diff --git a/Scripts/tests/endpoints/plansControllerRefactoring.ts b/Hub/HubWeb/Scripts/tests/endpoints/plansControllerRefactoring.ts similarity index 100% rename from Scripts/tests/endpoints/plansControllerRefactoring.ts rename to Hub/HubWeb/Scripts/tests/endpoints/plansControllerRefactoring.ts diff --git a/Scripts/tests/integration/PlanControllerTests.ts b/Hub/HubWeb/Scripts/tests/integration/PlanControllerTests.ts similarity index 100% rename from Scripts/tests/integration/PlanControllerTests.ts rename to Hub/HubWeb/Scripts/tests/integration/PlanControllerTests.ts diff --git a/Scripts/tests/integration/_Chutzpah.d1b0548a440b1d872d225b098685dbe4.test.html b/Hub/HubWeb/Scripts/tests/integration/_Chutzpah.d1b0548a440b1d872d225b098685dbe4.test.html similarity index 100% rename from Scripts/tests/integration/_Chutzpah.d1b0548a440b1d872d225b098685dbe4.test.html rename to Hub/HubWeb/Scripts/tests/integration/_Chutzpah.d1b0548a440b1d872d225b098685dbe4.test.html diff --git a/Scripts/tests/unit/ContainerControllerTests.ts b/Hub/HubWeb/Scripts/tests/unit/ContainerControllerTests.ts similarity index 100% rename from Scripts/tests/unit/ContainerControllerTests.ts rename to Hub/HubWeb/Scripts/tests/unit/ContainerControllerTests.ts diff --git a/Scripts/tests/unit/PaneConfigurationActionTests.ts b/Hub/HubWeb/Scripts/tests/unit/PaneConfigurationActionTests.ts similarity index 100% rename from Scripts/tests/unit/PaneConfigurationActionTests.ts rename to Hub/HubWeb/Scripts/tests/unit/PaneConfigurationActionTests.ts diff --git a/Scripts/tests/unit/PlanBuilderControllerTests.ts b/Hub/HubWeb/Scripts/tests/unit/PlanBuilderControllerTests.ts similarity index 100% rename from Scripts/tests/unit/PlanBuilderControllerTests.ts rename to Hub/HubWeb/Scripts/tests/unit/PlanBuilderControllerTests.ts diff --git a/Scripts/tests/unit/PlanDetailsControllerTests.ts b/Hub/HubWeb/Scripts/tests/unit/PlanDetailsControllerTests.ts similarity index 100% rename from Scripts/tests/unit/PlanDetailsControllerTests.ts rename to Hub/HubWeb/Scripts/tests/unit/PlanDetailsControllerTests.ts diff --git a/Scripts/tests/unit/directives/ActionPicker.spec.ts b/Hub/HubWeb/Scripts/tests/unit/directives/ActionPicker.spec.ts similarity index 100% rename from Scripts/tests/unit/directives/ActionPicker.spec.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/ActionPicker.spec.ts diff --git a/Scripts/tests/unit/directives/controls/CounterTests.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/CounterTests.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/CounterTests.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/CounterTests.ts diff --git a/Scripts/tests/unit/directives/controls/DropDownListBox.spec.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/DropDownListBox.spec.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/DropDownListBox.spec.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/DropDownListBox.spec.ts diff --git a/Scripts/tests/unit/directives/controls/DurationTests.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/DurationTests.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/DurationTests.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/DurationTests.ts diff --git a/Scripts/tests/unit/directives/controls/FieldList.spec.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/FieldList.spec.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/FieldList.spec.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/FieldList.spec.ts diff --git a/Scripts/tests/unit/directives/controls/FilePicker.spec.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/FilePicker.spec.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/FilePicker.spec.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/FilePicker.spec.ts diff --git a/Scripts/tests/unit/directives/controls/QueryBuilder.spec.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/QueryBuilder.spec.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/QueryBuilder.spec.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/QueryBuilder.spec.ts diff --git a/Scripts/tests/unit/directives/controls/RadioButtonGroup.spec.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/RadioButtonGroup.spec.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/RadioButtonGroup.spec.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/RadioButtonGroup.spec.ts diff --git a/Scripts/tests/unit/directives/controls/TextAreaTests.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/TextAreaTests.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/TextAreaTests.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/TextAreaTests.ts diff --git a/Scripts/tests/unit/directives/controls/TextBlock.spec.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/TextBlock.spec.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/TextBlock.spec.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/TextBlock.spec.ts diff --git a/Scripts/tests/unit/directives/controls/TextBox.spec.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/TextBox.spec.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/TextBox.spec.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/TextBox.spec.ts diff --git a/Scripts/tests/unit/directives/controls/TextSource.spec.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/TextSource.spec.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/TextSource.spec.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/TextSource.spec.ts diff --git a/Scripts/tests/unit/directives/controls/UpstreamDataChooser.spec.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/UpstreamDataChooser.spec.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/UpstreamDataChooser.spec.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/UpstreamDataChooser.spec.ts diff --git a/Scripts/tests/unit/directives/controls/UpstreamFieldChooserButton.spec.ts b/Hub/HubWeb/Scripts/tests/unit/directives/controls/UpstreamFieldChooserButton.spec.ts similarity index 100% rename from Scripts/tests/unit/directives/controls/UpstreamFieldChooserButton.spec.ts rename to Hub/HubWeb/Scripts/tests/unit/directives/controls/UpstreamFieldChooserButton.spec.ts diff --git a/Scripts/tests/unit/filters/FilterByTagTests.ts b/Hub/HubWeb/Scripts/tests/unit/filters/FilterByTagTests.ts similarity index 100% rename from Scripts/tests/unit/filters/FilterByTagTests.ts rename to Hub/HubWeb/Scripts/tests/unit/filters/FilterByTagTests.ts diff --git a/Scripts/tests/unit/services/CrateHelperTests.ts b/Hub/HubWeb/Scripts/tests/unit/services/CrateHelperTests.ts similarity index 100% rename from Scripts/tests/unit/services/CrateHelperTests.ts rename to Hub/HubWeb/Scripts/tests/unit/services/CrateHelperTests.ts diff --git a/Scripts/tests/unit/services/ManifestRegistryServiceTests.ts b/Hub/HubWeb/Scripts/tests/unit/services/ManifestRegistryServiceTests.ts similarity index 100% rename from Scripts/tests/unit/services/ManifestRegistryServiceTests.ts rename to Hub/HubWeb/Scripts/tests/unit/services/ManifestRegistryServiceTests.ts diff --git a/Scripts/tests/utils/directives/controls/fixture_Duration.ts b/Hub/HubWeb/Scripts/tests/utils/directives/controls/fixture_Duration.ts similarity index 100% rename from Scripts/tests/utils/directives/controls/fixture_Duration.ts rename to Hub/HubWeb/Scripts/tests/utils/directives/controls/fixture_Duration.ts diff --git a/Scripts/tests/utils/directives/controls/fixture_TextArea.ts b/Hub/HubWeb/Scripts/tests/utils/directives/controls/fixture_TextArea.ts similarity index 100% rename from Scripts/tests/utils/directives/controls/fixture_TextArea.ts rename to Hub/HubWeb/Scripts/tests/utils/directives/controls/fixture_TextArea.ts diff --git a/Scripts/tests/utils/directives/controls/fixture_UpstreamDataChooser.ts b/Hub/HubWeb/Scripts/tests/utils/directives/controls/fixture_UpstreamDataChooser.ts similarity index 100% rename from Scripts/tests/utils/directives/controls/fixture_UpstreamDataChooser.ts rename to Hub/HubWeb/Scripts/tests/utils/directives/controls/fixture_UpstreamDataChooser.ts diff --git a/Scripts/tests/utils/directives/controls/fixture_UpstreamFieldChooser.ts b/Hub/HubWeb/Scripts/tests/utils/directives/controls/fixture_UpstreamFieldChooser.ts similarity index 100% rename from Scripts/tests/utils/directives/controls/fixture_UpstreamFieldChooser.ts rename to Hub/HubWeb/Scripts/tests/utils/directives/controls/fixture_UpstreamFieldChooser.ts diff --git a/Scripts/tests/utils/fixture_ActionDTO.ts b/Hub/HubWeb/Scripts/tests/utils/fixture_ActionDTO.ts similarity index 100% rename from Scripts/tests/utils/fixture_ActionDTO.ts rename to Hub/HubWeb/Scripts/tests/utils/fixture_ActionDTO.ts diff --git a/Scripts/tests/utils/fixture_ActionTemplate.ts b/Hub/HubWeb/Scripts/tests/utils/fixture_ActionTemplate.ts similarity index 100% rename from Scripts/tests/utils/fixture_ActionTemplate.ts rename to Hub/HubWeb/Scripts/tests/utils/fixture_ActionTemplate.ts diff --git a/Scripts/tests/utils/fixture_ContainerDTO.ts b/Hub/HubWeb/Scripts/tests/utils/fixture_ContainerDTO.ts similarity index 100% rename from Scripts/tests/utils/fixture_ContainerDTO.ts rename to Hub/HubWeb/Scripts/tests/utils/fixture_ContainerDTO.ts diff --git a/Scripts/tests/utils/fixture_FieldDTO.ts b/Hub/HubWeb/Scripts/tests/utils/fixture_FieldDTO.ts similarity index 100% rename from Scripts/tests/utils/fixture_FieldDTO.ts rename to Hub/HubWeb/Scripts/tests/utils/fixture_FieldDTO.ts diff --git a/Scripts/tests/utils/fixture_PlanBuilder.ts b/Hub/HubWeb/Scripts/tests/utils/fixture_PlanBuilder.ts similarity index 100% rename from Scripts/tests/utils/fixture_PlanBuilder.ts rename to Hub/HubWeb/Scripts/tests/utils/fixture_PlanBuilder.ts diff --git a/Scripts/tests/utils/jpattern.ts b/Hub/HubWeb/Scripts/tests/utils/jpattern.ts similarity index 100% rename from Scripts/tests/utils/jpattern.ts rename to Hub/HubWeb/Scripts/tests/utils/jpattern.ts diff --git a/Scripts/tests/utils/mocks.ts b/Hub/HubWeb/Scripts/tests/utils/mocks.ts similarity index 100% rename from Scripts/tests/utils/mocks.ts rename to Hub/HubWeb/Scripts/tests/utils/mocks.ts diff --git a/Scripts/tests/utils/services/fixture_CrateHelper.ts b/Hub/HubWeb/Scripts/tests/utils/services/fixture_CrateHelper.ts similarity index 100% rename from Scripts/tests/utils/services/fixture_CrateHelper.ts rename to Hub/HubWeb/Scripts/tests/utils/services/fixture_CrateHelper.ts diff --git a/Scripts/typings/Metronic.d.ts b/Hub/HubWeb/Scripts/typings/Metronic.d.ts similarity index 100% rename from Scripts/typings/Metronic.d.ts rename to Hub/HubWeb/Scripts/typings/Metronic.d.ts diff --git a/Scripts/typings/angular-material/angular-material.d.ts b/Hub/HubWeb/Scripts/typings/angular-material/angular-material.d.ts similarity index 100% rename from Scripts/typings/angular-material/angular-material.d.ts rename to Hub/HubWeb/Scripts/typings/angular-material/angular-material.d.ts diff --git a/Scripts/typings/angular-ui-bootstrap.d.ts b/Hub/HubWeb/Scripts/typings/angular-ui-bootstrap.d.ts similarity index 100% rename from Scripts/typings/angular-ui-bootstrap.d.ts rename to Hub/HubWeb/Scripts/typings/angular-ui-bootstrap.d.ts diff --git a/Scripts/typings/angular-ui-router/angular-ui-router.d.ts b/Hub/HubWeb/Scripts/typings/angular-ui-router/angular-ui-router.d.ts similarity index 100% rename from Scripts/typings/angular-ui-router/angular-ui-router.d.ts rename to Hub/HubWeb/Scripts/typings/angular-ui-router/angular-ui-router.d.ts diff --git a/Scripts/typings/angularjs/angular-mocks.d.ts b/Hub/HubWeb/Scripts/typings/angularjs/angular-mocks.d.ts similarity index 100% rename from Scripts/typings/angularjs/angular-mocks.d.ts rename to Hub/HubWeb/Scripts/typings/angularjs/angular-mocks.d.ts diff --git a/Scripts/typings/angularjs/angular-resource.d.ts b/Hub/HubWeb/Scripts/typings/angularjs/angular-resource.d.ts similarity index 100% rename from Scripts/typings/angularjs/angular-resource.d.ts rename to Hub/HubWeb/Scripts/typings/angularjs/angular-resource.d.ts diff --git a/Scripts/typings/angularjs/angular.d.ts b/Hub/HubWeb/Scripts/typings/angularjs/angular.d.ts similarity index 100% rename from Scripts/typings/angularjs/angular.d.ts rename to Hub/HubWeb/Scripts/typings/angularjs/angular.d.ts diff --git a/Scripts/typings/bootstrap-switch/bootstrap-switch.d.ts b/Hub/HubWeb/Scripts/typings/bootstrap-switch/bootstrap-switch.d.ts similarity index 100% rename from Scripts/typings/bootstrap-switch/bootstrap-switch.d.ts rename to Hub/HubWeb/Scripts/typings/bootstrap-switch/bootstrap-switch.d.ts diff --git a/Scripts/typings/jasmine/jasmine.d.ts b/Hub/HubWeb/Scripts/typings/jasmine/jasmine.d.ts similarity index 100% rename from Scripts/typings/jasmine/jasmine.d.ts rename to Hub/HubWeb/Scripts/typings/jasmine/jasmine.d.ts diff --git a/Scripts/typings/jquery.noty/jquery.noty.d.ts b/Hub/HubWeb/Scripts/typings/jquery.noty/jquery.noty.d.ts similarity index 100% rename from Scripts/typings/jquery.noty/jquery.noty.d.ts rename to Hub/HubWeb/Scripts/typings/jquery.noty/jquery.noty.d.ts diff --git a/Scripts/typings/jquery/bootstrap.d.ts b/Hub/HubWeb/Scripts/typings/jquery/bootstrap.d.ts similarity index 100% rename from Scripts/typings/jquery/bootstrap.d.ts rename to Hub/HubWeb/Scripts/typings/jquery/bootstrap.d.ts diff --git a/Scripts/typings/jquery/jquery.d.ts b/Hub/HubWeb/Scripts/typings/jquery/jquery.d.ts similarity index 100% rename from Scripts/typings/jquery/jquery.d.ts rename to Hub/HubWeb/Scripts/typings/jquery/jquery.d.ts diff --git a/Scripts/typings/pusher-js/pusher-js.d.ts b/Hub/HubWeb/Scripts/typings/pusher-js/pusher-js.d.ts similarity index 100% rename from Scripts/typings/pusher-js/pusher-js.d.ts rename to Hub/HubWeb/Scripts/typings/pusher-js/pusher-js.d.ts diff --git a/Scripts/typings/tsd.d.ts b/Hub/HubWeb/Scripts/typings/tsd.d.ts similarity index 100% rename from Scripts/typings/tsd.d.ts rename to Hub/HubWeb/Scripts/typings/tsd.d.ts diff --git a/Scripts/typings/underscore/underscore.d.ts b/Hub/HubWeb/Scripts/typings/underscore/underscore.d.ts similarity index 100% rename from Scripts/typings/underscore/underscore.d.ts rename to Hub/HubWeb/Scripts/typings/underscore/underscore.d.ts diff --git a/SelfHostFactory.cs b/Hub/HubWeb/SelfHostFactory.cs similarity index 100% rename from SelfHostFactory.cs rename to Hub/HubWeb/SelfHostFactory.cs diff --git a/Service References/Application Insights/ConnectedService.json b/Hub/HubWeb/Service References/Application Insights/ConnectedService.json similarity index 100% rename from Service References/Application Insights/ConnectedService.json rename to Hub/HubWeb/Service References/Application Insights/ConnectedService.json diff --git a/Startup.cs b/Hub/HubWeb/Startup.cs similarity index 100% rename from Startup.cs rename to Hub/HubWeb/Startup.cs diff --git a/Services/PlanDirectory/Templates/ManifestDescriptionTemplate.cs b/Hub/HubWeb/Templates/ManifestDescriptionTemplate.cs similarity index 100% rename from Services/PlanDirectory/Templates/ManifestDescriptionTemplate.cs rename to Hub/HubWeb/Templates/ManifestDescriptionTemplate.cs diff --git a/Services/PlanDirectory/Templates/ManifestDescriptionTemplate.tt b/Hub/HubWeb/Templates/ManifestDescriptionTemplate.tt similarity index 100% rename from Services/PlanDirectory/Templates/ManifestDescriptionTemplate.tt rename to Hub/HubWeb/Templates/ManifestDescriptionTemplate.tt diff --git a/Templates/PlanCategoryTemplate.cs b/Hub/HubWeb/Templates/PlanCategoryTemplate.cs similarity index 100% rename from Templates/PlanCategoryTemplate.cs rename to Hub/HubWeb/Templates/PlanCategoryTemplate.cs diff --git a/Templates/PlanCategoryTemplate.tt b/Hub/HubWeb/Templates/PlanCategoryTemplate.tt similarity index 100% rename from Templates/PlanCategoryTemplate.tt rename to Hub/HubWeb/Templates/PlanCategoryTemplate.tt diff --git a/Templates/PlanTemplateDetailsTemplate.cs b/Hub/HubWeb/Templates/PlanTemplateDetailsTemplate.cs similarity index 100% rename from Templates/PlanTemplateDetailsTemplate.cs rename to Hub/HubWeb/Templates/PlanTemplateDetailsTemplate.cs diff --git a/Templates/PlanTemplateDetailsTemplate.tt b/Hub/HubWeb/Templates/PlanTemplateDetailsTemplate.tt similarity index 100% rename from Templates/PlanTemplateDetailsTemplate.tt rename to Hub/HubWeb/Templates/PlanTemplateDetailsTemplate.tt diff --git a/Themes/areas.css b/Hub/HubWeb/Themes/areas.css similarity index 100% rename from Themes/areas.css rename to Hub/HubWeb/Themes/areas.css diff --git a/Themes/areas/icons.png b/Hub/HubWeb/Themes/areas/icons.png similarity index 100% rename from Themes/areas/icons.png rename to Hub/HubWeb/Themes/areas/icons.png diff --git a/Themes/bubble_default.css b/Hub/HubWeb/Themes/bubble_default.css similarity index 100% rename from Themes/bubble_default.css rename to Hub/HubWeb/Themes/bubble_default.css diff --git a/Themes/calendar_blue.css b/Hub/HubWeb/Themes/calendar_blue.css similarity index 100% rename from Themes/calendar_blue.css rename to Hub/HubWeb/Themes/calendar_blue.css diff --git a/Themes/calendar_g.css b/Hub/HubWeb/Themes/calendar_g.css similarity index 100% rename from Themes/calendar_g.css rename to Hub/HubWeb/Themes/calendar_g.css diff --git a/Themes/calendar_green.css b/Hub/HubWeb/Themes/calendar_green.css similarity index 100% rename from Themes/calendar_green.css rename to Hub/HubWeb/Themes/calendar_green.css diff --git a/Themes/calendar_traditional.css b/Hub/HubWeb/Themes/calendar_traditional.css similarity index 100% rename from Themes/calendar_traditional.css rename to Hub/HubWeb/Themes/calendar_traditional.css diff --git a/Themes/calendar_transparent.css b/Hub/HubWeb/Themes/calendar_transparent.css similarity index 100% rename from Themes/calendar_transparent.css rename to Hub/HubWeb/Themes/calendar_transparent.css diff --git a/Themes/calendar_white.css b/Hub/HubWeb/Themes/calendar_white.css similarity index 100% rename from Themes/calendar_white.css rename to Hub/HubWeb/Themes/calendar_white.css diff --git a/Themes/legacy/calendar_bronze/delete.gif b/Hub/HubWeb/Themes/legacy/calendar_bronze/delete.gif similarity index 100% rename from Themes/legacy/calendar_bronze/delete.gif rename to Hub/HubWeb/Themes/legacy/calendar_bronze/delete.gif diff --git a/Themes/legacy/calendar_bronze/down.png b/Hub/HubWeb/Themes/legacy/calendar_bronze/down.png similarity index 100% rename from Themes/legacy/calendar_bronze/down.png rename to Hub/HubWeb/Themes/legacy/calendar_bronze/down.png diff --git a/Themes/legacy/calendar_bronze/left30.gif b/Hub/HubWeb/Themes/legacy/calendar_bronze/left30.gif similarity index 100% rename from Themes/legacy/calendar_bronze/left30.gif rename to Hub/HubWeb/Themes/legacy/calendar_bronze/left30.gif diff --git a/Themes/legacy/calendar_bronze/top21.gif b/Hub/HubWeb/Themes/legacy/calendar_bronze/top21.gif similarity index 100% rename from Themes/legacy/calendar_bronze/top21.gif rename to Hub/HubWeb/Themes/legacy/calendar_bronze/top21.gif diff --git a/Themes/legacy/calendar_bronze/up.png b/Hub/HubWeb/Themes/legacy/calendar_bronze/up.png similarity index 100% rename from Themes/legacy/calendar_bronze/up.png rename to Hub/HubWeb/Themes/legacy/calendar_bronze/up.png diff --git a/Themes/legacy/calendar_silver/corner20.gif b/Hub/HubWeb/Themes/legacy/calendar_silver/corner20.gif similarity index 100% rename from Themes/legacy/calendar_silver/corner20.gif rename to Hub/HubWeb/Themes/legacy/calendar_silver/corner20.gif diff --git a/Themes/legacy/calendar_silver/delete.gif b/Hub/HubWeb/Themes/legacy/calendar_silver/delete.gif similarity index 100% rename from Themes/legacy/calendar_silver/delete.gif rename to Hub/HubWeb/Themes/legacy/calendar_silver/delete.gif diff --git a/Themes/legacy/calendar_silver/down.png b/Hub/HubWeb/Themes/legacy/calendar_silver/down.png similarity index 100% rename from Themes/legacy/calendar_silver/down.png rename to Hub/HubWeb/Themes/legacy/calendar_silver/down.png diff --git a/Themes/legacy/calendar_silver/left45.gif b/Hub/HubWeb/Themes/legacy/calendar_silver/left45.gif similarity index 100% rename from Themes/legacy/calendar_silver/left45.gif rename to Hub/HubWeb/Themes/legacy/calendar_silver/left45.gif diff --git a/Themes/legacy/calendar_silver/light_line_10.png b/Hub/HubWeb/Themes/legacy/calendar_silver/light_line_10.png similarity index 100% rename from Themes/legacy/calendar_silver/light_line_10.png rename to Hub/HubWeb/Themes/legacy/calendar_silver/light_line_10.png diff --git a/Themes/legacy/calendar_silver/right17.gif b/Hub/HubWeb/Themes/legacy/calendar_silver/right17.gif similarity index 100% rename from Themes/legacy/calendar_silver/right17.gif rename to Hub/HubWeb/Themes/legacy/calendar_silver/right17.gif diff --git a/Themes/legacy/calendar_silver/top21.gif b/Hub/HubWeb/Themes/legacy/calendar_silver/top21.gif similarity index 100% rename from Themes/legacy/calendar_silver/top21.gif rename to Hub/HubWeb/Themes/legacy/calendar_silver/top21.gif diff --git a/Themes/legacy/calendar_silver/up.png b/Hub/HubWeb/Themes/legacy/calendar_silver/up.png similarity index 100% rename from Themes/legacy/calendar_silver/up.png rename to Hub/HubWeb/Themes/legacy/calendar_silver/up.png diff --git a/Themes/legacy/month_silver/event20.gif b/Hub/HubWeb/Themes/legacy/month_silver/event20.gif similarity index 100% rename from Themes/legacy/month_silver/event20.gif rename to Hub/HubWeb/Themes/legacy/month_silver/event20.gif diff --git a/Themes/legacy/month_silver/light_line_10.png b/Hub/HubWeb/Themes/legacy/month_silver/light_line_10.png similarity index 100% rename from Themes/legacy/month_silver/light_line_10.png rename to Hub/HubWeb/Themes/legacy/month_silver/light_line_10.png diff --git a/Themes/legacy/month_silver/top20.gif b/Hub/HubWeb/Themes/legacy/month_silver/top20.gif similarity index 100% rename from Themes/legacy/month_silver/top20.gif rename to Hub/HubWeb/Themes/legacy/month_silver/top20.gif diff --git a/Themes/legacy/navigator_silver/top21.gif b/Hub/HubWeb/Themes/legacy/navigator_silver/top21.gif similarity index 100% rename from Themes/legacy/navigator_silver/top21.gif rename to Hub/HubWeb/Themes/legacy/navigator_silver/top21.gif diff --git a/Themes/legacy/scheduler_silver/gradient_dps.jpg b/Hub/HubWeb/Themes/legacy/scheduler_silver/gradient_dps.jpg similarity index 100% rename from Themes/legacy/scheduler_silver/gradient_dps.jpg rename to Hub/HubWeb/Themes/legacy/scheduler_silver/gradient_dps.jpg diff --git a/Themes/legacy/scheduler_silver/left45.gif b/Hub/HubWeb/Themes/legacy/scheduler_silver/left45.gif similarity index 100% rename from Themes/legacy/scheduler_silver/left45.gif rename to Hub/HubWeb/Themes/legacy/scheduler_silver/left45.gif diff --git a/Themes/legacy/scheduler_silver/light_line_10.png b/Hub/HubWeb/Themes/legacy/scheduler_silver/light_line_10.png similarity index 100% rename from Themes/legacy/scheduler_silver/light_line_10.png rename to Hub/HubWeb/Themes/legacy/scheduler_silver/light_line_10.png diff --git a/Themes/legacy/scheduler_silver/top20.gif b/Hub/HubWeb/Themes/legacy/scheduler_silver/top20.gif similarity index 100% rename from Themes/legacy/scheduler_silver/top20.gif rename to Hub/HubWeb/Themes/legacy/scheduler_silver/top20.gif diff --git a/Themes/legacy/scheduler_silver/tree_collapse.png b/Hub/HubWeb/Themes/legacy/scheduler_silver/tree_collapse.png similarity index 100% rename from Themes/legacy/scheduler_silver/tree_collapse.png rename to Hub/HubWeb/Themes/legacy/scheduler_silver/tree_collapse.png diff --git a/Themes/legacy/scheduler_silver/tree_expand.png b/Hub/HubWeb/Themes/legacy/scheduler_silver/tree_expand.png similarity index 100% rename from Themes/legacy/scheduler_silver/tree_expand.png rename to Hub/HubWeb/Themes/legacy/scheduler_silver/tree_expand.png diff --git a/Themes/legacy/scheduler_silver/tree_nochildren.png b/Hub/HubWeb/Themes/legacy/scheduler_silver/tree_nochildren.png similarity index 100% rename from Themes/legacy/scheduler_silver/tree_nochildren.png rename to Hub/HubWeb/Themes/legacy/scheduler_silver/tree_nochildren.png diff --git a/Themes/legacy/traditional.css b/Hub/HubWeb/Themes/legacy/traditional.css similarity index 100% rename from Themes/legacy/traditional.css rename to Hub/HubWeb/Themes/legacy/traditional.css diff --git a/Themes/menu_default.css b/Hub/HubWeb/Themes/menu_default.css similarity index 100% rename from Themes/menu_default.css rename to Hub/HubWeb/Themes/menu_default.css diff --git a/Themes/month_blue.css b/Hub/HubWeb/Themes/month_blue.css similarity index 100% rename from Themes/month_blue.css rename to Hub/HubWeb/Themes/month_blue.css diff --git a/Themes/month_g.css b/Hub/HubWeb/Themes/month_g.css similarity index 100% rename from Themes/month_g.css rename to Hub/HubWeb/Themes/month_g.css diff --git a/Themes/month_green.css b/Hub/HubWeb/Themes/month_green.css similarity index 100% rename from Themes/month_green.css rename to Hub/HubWeb/Themes/month_green.css diff --git a/Themes/month_traditional.css b/Hub/HubWeb/Themes/month_traditional.css similarity index 100% rename from Themes/month_traditional.css rename to Hub/HubWeb/Themes/month_traditional.css diff --git a/Themes/month_transparent.css b/Hub/HubWeb/Themes/month_transparent.css similarity index 100% rename from Themes/month_transparent.css rename to Hub/HubWeb/Themes/month_transparent.css diff --git a/Themes/month_white.css b/Hub/HubWeb/Themes/month_white.css similarity index 100% rename from Themes/month_white.css rename to Hub/HubWeb/Themes/month_white.css diff --git a/Themes/navigator_8.css b/Hub/HubWeb/Themes/navigator_8.css similarity index 100% rename from Themes/navigator_8.css rename to Hub/HubWeb/Themes/navigator_8.css diff --git a/Themes/navigator_blue.css b/Hub/HubWeb/Themes/navigator_blue.css similarity index 100% rename from Themes/navigator_blue.css rename to Hub/HubWeb/Themes/navigator_blue.css diff --git a/Themes/navigator_g.css b/Hub/HubWeb/Themes/navigator_g.css similarity index 100% rename from Themes/navigator_g.css rename to Hub/HubWeb/Themes/navigator_g.css diff --git a/Themes/navigator_green.css b/Hub/HubWeb/Themes/navigator_green.css similarity index 100% rename from Themes/navigator_green.css rename to Hub/HubWeb/Themes/navigator_green.css diff --git a/Themes/navigator_transparent.css b/Hub/HubWeb/Themes/navigator_transparent.css similarity index 100% rename from Themes/navigator_transparent.css rename to Hub/HubWeb/Themes/navigator_transparent.css diff --git a/Themes/navigator_white.css b/Hub/HubWeb/Themes/navigator_white.css similarity index 100% rename from Themes/navigator_white.css rename to Hub/HubWeb/Themes/navigator_white.css diff --git a/Themes/scheduler_8.css b/Hub/HubWeb/Themes/scheduler_8.css similarity index 100% rename from Themes/scheduler_8.css rename to Hub/HubWeb/Themes/scheduler_8.css diff --git a/Themes/scheduler_blue.css b/Hub/HubWeb/Themes/scheduler_blue.css similarity index 100% rename from Themes/scheduler_blue.css rename to Hub/HubWeb/Themes/scheduler_blue.css diff --git a/Themes/scheduler_green.css b/Hub/HubWeb/Themes/scheduler_green.css similarity index 100% rename from Themes/scheduler_green.css rename to Hub/HubWeb/Themes/scheduler_green.css diff --git a/Themes/scheduler_traditional.css b/Hub/HubWeb/Themes/scheduler_traditional.css similarity index 100% rename from Themes/scheduler_traditional.css rename to Hub/HubWeb/Themes/scheduler_traditional.css diff --git a/Themes/scheduler_transparent.css b/Hub/HubWeb/Themes/scheduler_transparent.css similarity index 100% rename from Themes/scheduler_transparent.css rename to Hub/HubWeb/Themes/scheduler_transparent.css diff --git a/Themes/scheduler_white.css b/Hub/HubWeb/Themes/scheduler_white.css similarity index 100% rename from Themes/scheduler_white.css rename to Hub/HubWeb/Themes/scheduler_white.css diff --git a/Themes/scheduler_white/tree_collapse.png b/Hub/HubWeb/Themes/scheduler_white/tree_collapse.png similarity index 100% rename from Themes/scheduler_white/tree_collapse.png rename to Hub/HubWeb/Themes/scheduler_white/tree_collapse.png diff --git a/Themes/scheduler_white/tree_expand.png b/Hub/HubWeb/Themes/scheduler_white/tree_expand.png similarity index 100% rename from Themes/scheduler_white/tree_expand.png rename to Hub/HubWeb/Themes/scheduler_white/tree_expand.png diff --git a/Themes/scheduler_white/tree_nochildren.png b/Hub/HubWeb/Themes/scheduler_white/tree_nochildren.png similarity index 100% rename from Themes/scheduler_white/tree_nochildren.png rename to Hub/HubWeb/Themes/scheduler_white/tree_nochildren.png diff --git a/UnauthorizedRequest.html b/Hub/HubWeb/UnauthorizedRequest.html similarity index 100% rename from UnauthorizedRequest.html rename to Hub/HubWeb/UnauthorizedRequest.html diff --git a/ViewModels/AuthenticationErrorVM.cs b/Hub/HubWeb/ViewModels/AuthenticationErrorVM.cs similarity index 100% rename from ViewModels/AuthenticationErrorVM.cs rename to Hub/HubWeb/ViewModels/AuthenticationErrorVM.cs diff --git a/ViewModels/BookingRequestAdminVM.cs b/Hub/HubWeb/ViewModels/BookingRequestAdminVM.cs similarity index 100% rename from ViewModels/BookingRequestAdminVM.cs rename to Hub/HubWeb/ViewModels/BookingRequestAdminVM.cs diff --git a/ViewModels/CalendarShowVM.cs b/Hub/HubWeb/ViewModels/CalendarShowVM.cs similarity index 100% rename from ViewModels/CalendarShowVM.cs rename to Hub/HubWeb/ViewModels/CalendarShowVM.cs diff --git a/ViewModels/DiagnosticInfoVM.cs b/Hub/HubWeb/ViewModels/DiagnosticInfoVM.cs similarity index 100% rename from ViewModels/DiagnosticInfoVM.cs rename to Hub/HubWeb/ViewModels/DiagnosticInfoVM.cs diff --git a/ViewModels/DocusignLoginVM.cs b/Hub/HubWeb/ViewModels/DocusignLoginVM.cs similarity index 100% rename from ViewModels/DocusignLoginVM.cs rename to Hub/HubWeb/ViewModels/DocusignLoginVM.cs diff --git a/ViewModels/EventVM.cs b/Hub/HubWeb/ViewModels/EventVM.cs similarity index 100% rename from ViewModels/EventVM.cs rename to Hub/HubWeb/ViewModels/EventVM.cs diff --git a/ViewModels/ExternalLoginConfirmationVM.cs b/Hub/HubWeb/ViewModels/ExternalLoginConfirmationVM.cs similarity index 100% rename from ViewModels/ExternalLoginConfirmationVM.cs rename to Hub/HubWeb/ViewModels/ExternalLoginConfirmationVM.cs diff --git a/ViewModels/ForgotPasswordVM.cs b/Hub/HubWeb/ViewModels/ForgotPasswordVM.cs similarity index 100% rename from ViewModels/ForgotPasswordVM.cs rename to Hub/HubWeb/ViewModels/ForgotPasswordVM.cs diff --git a/ViewModels/HomeVM.cs b/Hub/HubWeb/ViewModels/HomeVM.cs similarity index 100% rename from ViewModels/HomeVM.cs rename to Hub/HubWeb/ViewModels/HomeVM.cs diff --git a/ViewModels/InternalDemoAccountVM.cs b/Hub/HubWeb/ViewModels/InternalDemoAccountVM.cs similarity index 100% rename from ViewModels/InternalDemoAccountVM.cs rename to Hub/HubWeb/ViewModels/InternalDemoAccountVM.cs diff --git a/ViewModels/LoginVM.cs b/Hub/HubWeb/ViewModels/LoginVM.cs similarity index 100% rename from ViewModels/LoginVM.cs rename to Hub/HubWeb/ViewModels/LoginVM.cs diff --git a/ViewModels/ManageUserVM.cs b/Hub/HubWeb/ViewModels/ManageUserVM.cs similarity index 100% rename from ViewModels/ManageUserVM.cs rename to Hub/HubWeb/ViewModels/ManageUserVM.cs diff --git a/ViewModels/NavLinks.cs b/Hub/HubWeb/ViewModels/NavLinks.cs similarity index 100% rename from ViewModels/NavLinks.cs rename to Hub/HubWeb/ViewModels/NavLinks.cs diff --git a/ViewModels/NegotiationResponseVM.cs b/Hub/HubWeb/ViewModels/NegotiationResponseVM.cs similarity index 100% rename from ViewModels/NegotiationResponseVM.cs rename to Hub/HubWeb/ViewModels/NegotiationResponseVM.cs diff --git a/ViewModels/RegisterVM.cs b/Hub/HubWeb/ViewModels/RegisterVM.cs similarity index 100% rename from ViewModels/RegisterVM.cs rename to Hub/HubWeb/ViewModels/RegisterVM.cs diff --git a/ViewModels/RemoteCalendarVM.cs b/Hub/HubWeb/ViewModels/RemoteCalendarVM.cs similarity index 100% rename from ViewModels/RemoteCalendarVM.cs rename to Hub/HubWeb/ViewModels/RemoteCalendarVM.cs diff --git a/ViewModels/RequestParameters/PlansGetParams.cs b/Hub/HubWeb/ViewModels/RequestParameters/PlansGetParams.cs similarity index 100% rename from ViewModels/RequestParameters/PlansGetParams.cs rename to Hub/HubWeb/ViewModels/RequestParameters/PlansGetParams.cs diff --git a/ViewModels/RequestParameters/PlansPostParams.cs b/Hub/HubWeb/ViewModels/RequestParameters/PlansPostParams.cs similarity index 100% rename from ViewModels/RequestParameters/PlansPostParams.cs rename to Hub/HubWeb/ViewModels/RequestParameters/PlansPostParams.cs diff --git a/ViewModels/ResetPasswordVM.cs b/Hub/HubWeb/ViewModels/ResetPasswordVM.cs similarity index 100% rename from ViewModels/ResetPasswordVM.cs rename to Hub/HubWeb/ViewModels/ResetPasswordVM.cs diff --git a/ViewModels/UserProfilesVM.cs b/Hub/HubWeb/ViewModels/UserProfilesVM.cs similarity index 100% rename from ViewModels/UserProfilesVM.cs rename to Hub/HubWeb/ViewModels/UserProfilesVM.cs diff --git a/ViewModels/UserVM.cs b/Hub/HubWeb/ViewModels/UserVM.cs similarity index 100% rename from ViewModels/UserVM.cs rename to Hub/HubWeb/ViewModels/UserVM.cs diff --git a/Views/.gitattributes b/Hub/HubWeb/Views/.gitattributes similarity index 100% rename from Views/.gitattributes rename to Hub/HubWeb/Views/.gitattributes diff --git a/Views/Account/Confirm.cshtml b/Hub/HubWeb/Views/Account/Confirm.cshtml similarity index 100% rename from Views/Account/Confirm.cshtml rename to Hub/HubWeb/Views/Account/Confirm.cshtml diff --git a/Views/Account/ExternalLoginConfirmation.cshtml b/Hub/HubWeb/Views/Account/ExternalLoginConfirmation.cshtml similarity index 100% rename from Views/Account/ExternalLoginConfirmation.cshtml rename to Hub/HubWeb/Views/Account/ExternalLoginConfirmation.cshtml diff --git a/Views/Account/ExternalLoginFailure.cshtml b/Hub/HubWeb/Views/Account/ExternalLoginFailure.cshtml similarity index 100% rename from Views/Account/ExternalLoginFailure.cshtml rename to Hub/HubWeb/Views/Account/ExternalLoginFailure.cshtml diff --git a/Views/Account/ForgotPassword.cshtml b/Hub/HubWeb/Views/Account/ForgotPassword.cshtml similarity index 100% rename from Views/Account/ForgotPassword.cshtml rename to Hub/HubWeb/Views/Account/ForgotPassword.cshtml diff --git a/Views/Account/ForgotPasswordConfirmation.cshtml b/Hub/HubWeb/Views/Account/ForgotPasswordConfirmation.cshtml similarity index 100% rename from Views/Account/ForgotPasswordConfirmation.cshtml rename to Hub/HubWeb/Views/Account/ForgotPasswordConfirmation.cshtml diff --git a/Views/Account/Index.cshtml b/Hub/HubWeb/Views/Account/Index.cshtml similarity index 100% rename from Views/Account/Index.cshtml rename to Hub/HubWeb/Views/Account/Index.cshtml diff --git a/Views/Account/Manage.cshtml b/Hub/HubWeb/Views/Account/Manage.cshtml similarity index 100% rename from Views/Account/Manage.cshtml rename to Hub/HubWeb/Views/Account/Manage.cshtml diff --git a/Views/Account/MyAccount.cshtml b/Hub/HubWeb/Views/Account/MyAccount.cshtml similarity index 100% rename from Views/Account/MyAccount.cshtml rename to Hub/HubWeb/Views/Account/MyAccount.cshtml diff --git a/Views/Account/Register.cshtml b/Hub/HubWeb/Views/Account/Register.cshtml similarity index 100% rename from Views/Account/Register.cshtml rename to Hub/HubWeb/Views/Account/Register.cshtml diff --git a/Views/Account/RegistrationConfirmation.cshtml b/Hub/HubWeb/Views/Account/RegistrationConfirmation.cshtml similarity index 100% rename from Views/Account/RegistrationConfirmation.cshtml rename to Hub/HubWeb/Views/Account/RegistrationConfirmation.cshtml diff --git a/Views/Account/RegistrationSuccessful.cshtml b/Hub/HubWeb/Views/Account/RegistrationSuccessful.cshtml similarity index 100% rename from Views/Account/RegistrationSuccessful.cshtml rename to Hub/HubWeb/Views/Account/RegistrationSuccessful.cshtml diff --git a/Views/Account/ResetPassword.cshtml b/Hub/HubWeb/Views/Account/ResetPassword.cshtml similarity index 100% rename from Views/Account/ResetPassword.cshtml rename to Hub/HubWeb/Views/Account/ResetPassword.cshtml diff --git a/Views/Account/ResetPasswordConfirmation.cshtml b/Hub/HubWeb/Views/Account/ResetPasswordConfirmation.cshtml similarity index 100% rename from Views/Account/ResetPasswordConfirmation.cshtml rename to Hub/HubWeb/Views/Account/ResetPasswordConfirmation.cshtml diff --git a/Views/Account/SetupWizard.cshtml b/Hub/HubWeb/Views/Account/SetupWizard.cshtml similarity index 100% rename from Views/Account/SetupWizard.cshtml rename to Hub/HubWeb/Views/Account/SetupWizard.cshtml diff --git a/Views/Account/_ChangePasswordPartial.cshtml b/Hub/HubWeb/Views/Account/_ChangePasswordPartial.cshtml similarity index 100% rename from Views/Account/_ChangePasswordPartial.cshtml rename to Hub/HubWeb/Views/Account/_ChangePasswordPartial.cshtml diff --git a/Views/Account/_ExternalLoginsListPartial.cshtml b/Hub/HubWeb/Views/Account/_ExternalLoginsListPartial.cshtml similarity index 100% rename from Views/Account/_ExternalLoginsListPartial.cshtml rename to Hub/HubWeb/Views/Account/_ExternalLoginsListPartial.cshtml diff --git a/Views/Account/_HeaderPartial.cshtml b/Hub/HubWeb/Views/Account/_HeaderPartial.cshtml similarity index 100% rename from Views/Account/_HeaderPartial.cshtml rename to Hub/HubWeb/Views/Account/_HeaderPartial.cshtml diff --git a/Views/Account/_RemoveAccountPartial.cshtml b/Hub/HubWeb/Views/Account/_RemoveAccountPartial.cshtml similarity index 100% rename from Views/Account/_RemoveAccountPartial.cshtml rename to Hub/HubWeb/Views/Account/_RemoveAccountPartial.cshtml diff --git a/Views/Account/_SetPasswordPartial.cshtml b/Hub/HubWeb/Views/Account/_SetPasswordPartial.cshtml similarity index 100% rename from Views/Account/_SetPasswordPartial.cshtml rename to Hub/HubWeb/Views/Account/_SetPasswordPartial.cshtml diff --git a/Views/Action/ShowAllActionLists.html b/Hub/HubWeb/Views/Action/ShowAllActionLists.html similarity index 100% rename from Views/Action/ShowAllActionLists.html rename to Hub/HubWeb/Views/Action/ShowAllActionLists.html diff --git a/Views/Action/ShowAllActions.html b/Hub/HubWeb/Views/Action/ShowAllActions.html similarity index 100% rename from Views/Action/ShowAllActions.html rename to Hub/HubWeb/Views/Action/ShowAllActions.html diff --git a/Views/AngularTemplate/AccountDetails.cshtml b/Hub/HubWeb/Views/AngularTemplate/AccountDetails.cshtml similarity index 100% rename from Views/AngularTemplate/AccountDetails.cshtml rename to Hub/HubWeb/Views/AngularTemplate/AccountDetails.cshtml diff --git a/Views/AngularTemplate/AccountList.cshtml b/Hub/HubWeb/Views/AngularTemplate/AccountList.cshtml similarity index 100% rename from Views/AngularTemplate/AccountList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/AccountList.cshtml diff --git a/Views/AngularTemplate/ActionPicker.cshtml b/Hub/HubWeb/Views/AngularTemplate/ActionPicker.cshtml similarity index 100% rename from Views/AngularTemplate/ActionPicker.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ActionPicker.cshtml diff --git a/Views/AngularTemplate/ActionPickerPanel.cshtml b/Hub/HubWeb/Views/AngularTemplate/ActionPickerPanel.cshtml similarity index 100% rename from Views/AngularTemplate/ActionPickerPanel.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ActionPickerPanel.cshtml diff --git a/Views/AngularTemplate/ActivityHeader.cshtml b/Hub/HubWeb/Views/AngularTemplate/ActivityHeader.cshtml similarity index 100% rename from Views/AngularTemplate/ActivityHeader.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ActivityHeader.cshtml diff --git a/Views/AngularTemplate/ActivityLabelModal.cshtml b/Hub/HubWeb/Views/AngularTemplate/ActivityLabelModal.cshtml similarity index 100% rename from Views/AngularTemplate/ActivityLabelModal.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ActivityLabelModal.cshtml diff --git a/Views/AngularTemplate/ActivityStream.cshtml b/Hub/HubWeb/Views/AngularTemplate/ActivityStream.cshtml similarity index 100% rename from Views/AngularTemplate/ActivityStream.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ActivityStream.cshtml diff --git a/Views/AngularTemplate/AdminTools.cshtml b/Hub/HubWeb/Views/AngularTemplate/AdminTools.cshtml similarity index 100% rename from Views/AngularTemplate/AdminTools.cshtml rename to Hub/HubWeb/Views/AngularTemplate/AdminTools.cshtml diff --git a/Views/AngularTemplate/AdvisoryMessagesPopup.cshtml b/Hub/HubWeb/Views/AngularTemplate/AdvisoryMessagesPopup.cshtml similarity index 100% rename from Views/AngularTemplate/AdvisoryMessagesPopup.cshtml rename to Hub/HubWeb/Views/AngularTemplate/AdvisoryMessagesPopup.cshtml diff --git a/Views/AngularTemplate/AuthenticationDialog.cshtml b/Hub/HubWeb/Views/AngularTemplate/AuthenticationDialog.cshtml similarity index 100% rename from Views/AngularTemplate/AuthenticationDialog.cshtml rename to Hub/HubWeb/Views/AngularTemplate/AuthenticationDialog.cshtml diff --git a/Views/AngularTemplate/BuildMessageAppender.cshtml b/Hub/HubWeb/Views/AngularTemplate/BuildMessageAppender.cshtml similarity index 100% rename from Views/AngularTemplate/BuildMessageAppender.cshtml rename to Hub/HubWeb/Views/AngularTemplate/BuildMessageAppender.cshtml diff --git a/Views/AngularTemplate/ChangePassword.cshtml b/Hub/HubWeb/Views/AngularTemplate/ChangePassword.cshtml similarity index 100% rename from Views/AngularTemplate/ChangePassword.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ChangePassword.cshtml diff --git a/Views/AngularTemplate/ConfigurationControl.cshtml b/Hub/HubWeb/Views/AngularTemplate/ConfigurationControl.cshtml similarity index 100% rename from Views/AngularTemplate/ConfigurationControl.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ConfigurationControl.cshtml diff --git a/Views/AngularTemplate/ConfigureActivityDialog.cshtml b/Hub/HubWeb/Views/AngularTemplate/ConfigureActivityDialog.cshtml similarity index 100% rename from Views/AngularTemplate/ConfigureActivityDialog.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ConfigureActivityDialog.cshtml diff --git a/Views/AngularTemplate/ConfirmationModal.cshtml b/Hub/HubWeb/Views/AngularTemplate/ConfirmationModal.cshtml similarity index 100% rename from Views/AngularTemplate/ConfirmationModal.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ConfirmationModal.cshtml diff --git a/Views/AngularTemplate/ContainerDetails.cshtml b/Hub/HubWeb/Views/AngularTemplate/ContainerDetails.cshtml similarity index 100% rename from Views/AngularTemplate/ContainerDetails.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ContainerDetails.cshtml diff --git a/Views/AngularTemplate/ContainerList.cshtml b/Hub/HubWeb/Views/AngularTemplate/ContainerList.cshtml similarity index 100% rename from Views/AngularTemplate/ContainerList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ContainerList.cshtml diff --git a/Views/AngularTemplate/ContainerTransition.cshtml b/Hub/HubWeb/Views/AngularTemplate/ContainerTransition.cshtml similarity index 100% rename from Views/AngularTemplate/ContainerTransition.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ContainerTransition.cshtml diff --git a/Views/AngularTemplate/ControlList.cshtml b/Hub/HubWeb/Views/AngularTemplate/ControlList.cshtml similarity index 100% rename from Views/AngularTemplate/ControlList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ControlList.cshtml diff --git a/Views/AngularTemplate/Counter.cshtml b/Hub/HubWeb/Views/AngularTemplate/Counter.cshtml similarity index 100% rename from Views/AngularTemplate/Counter.cshtml rename to Hub/HubWeb/Views/AngularTemplate/Counter.cshtml diff --git a/Views/AngularTemplate/CrateChooser.cshtml b/Hub/HubWeb/Views/AngularTemplate/CrateChooser.cshtml similarity index 100% rename from Views/AngularTemplate/CrateChooser.cshtml rename to Hub/HubWeb/Views/AngularTemplate/CrateChooser.cshtml diff --git a/Views/AngularTemplate/DatePicker.cshtml b/Hub/HubWeb/Views/AngularTemplate/DatePicker.cshtml similarity index 100% rename from Views/AngularTemplate/DatePicker.cshtml rename to Hub/HubWeb/Views/AngularTemplate/DatePicker.cshtml diff --git a/Views/AngularTemplate/DesignerHeader.cshtml b/Hub/HubWeb/Views/AngularTemplate/DesignerHeader.cshtml similarity index 100% rename from Views/AngularTemplate/DesignerHeader.cshtml rename to Hub/HubWeb/Views/AngularTemplate/DesignerHeader.cshtml diff --git a/Views/AngularTemplate/DropDownListBox.cshtml b/Hub/HubWeb/Views/AngularTemplate/DropDownListBox.cshtml similarity index 100% rename from Views/AngularTemplate/DropDownListBox.cshtml rename to Hub/HubWeb/Views/AngularTemplate/DropDownListBox.cshtml diff --git a/Views/AngularTemplate/Duration.cshtml b/Hub/HubWeb/Views/AngularTemplate/Duration.cshtml similarity index 100% rename from Views/AngularTemplate/Duration.cshtml rename to Hub/HubWeb/Views/AngularTemplate/Duration.cshtml diff --git a/Views/AngularTemplate/Empty.cshtml b/Hub/HubWeb/Views/AngularTemplate/Empty.cshtml similarity index 100% rename from Views/AngularTemplate/Empty.cshtml rename to Hub/HubWeb/Views/AngularTemplate/Empty.cshtml diff --git a/Views/AngularTemplate/ExternalObjectChooser.cshtml b/Hub/HubWeb/Views/AngularTemplate/ExternalObjectChooser.cshtml similarity index 100% rename from Views/AngularTemplate/ExternalObjectChooser.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ExternalObjectChooser.cshtml diff --git a/Views/AngularTemplate/FieldList.cshtml b/Hub/HubWeb/Views/AngularTemplate/FieldList.cshtml similarity index 100% rename from Views/AngularTemplate/FieldList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/FieldList.cshtml diff --git a/Views/AngularTemplate/FileDetails.cshtml b/Hub/HubWeb/Views/AngularTemplate/FileDetails.cshtml similarity index 100% rename from Views/AngularTemplate/FileDetails.cshtml rename to Hub/HubWeb/Views/AngularTemplate/FileDetails.cshtml diff --git a/Views/AngularTemplate/FilePicker.cshtml b/Hub/HubWeb/Views/AngularTemplate/FilePicker.cshtml similarity index 100% rename from Views/AngularTemplate/FilePicker.cshtml rename to Hub/HubWeb/Views/AngularTemplate/FilePicker.cshtml diff --git a/Views/AngularTemplate/FileSelectorModal.cshtml b/Hub/HubWeb/Views/AngularTemplate/FileSelectorModal.cshtml similarity index 100% rename from Views/AngularTemplate/FileSelectorModal.cshtml rename to Hub/HubWeb/Views/AngularTemplate/FileSelectorModal.cshtml diff --git a/Views/AngularTemplate/FilterPane.cshtml b/Hub/HubWeb/Views/AngularTemplate/FilterPane.cshtml similarity index 100% rename from Views/AngularTemplate/FilterPane.cshtml rename to Hub/HubWeb/Views/AngularTemplate/FilterPane.cshtml diff --git a/Views/AngularTemplate/Footer.cshtml b/Hub/HubWeb/Views/AngularTemplate/Footer.cshtml similarity index 100% rename from Views/AngularTemplate/Footer.cshtml rename to Hub/HubWeb/Views/AngularTemplate/Footer.cshtml diff --git a/Views/AngularTemplate/Fr8Event.cshtml b/Hub/HubWeb/Views/AngularTemplate/Fr8Event.cshtml similarity index 100% rename from Views/AngularTemplate/Fr8Event.cshtml rename to Hub/HubWeb/Views/AngularTemplate/Fr8Event.cshtml diff --git a/Views/AngularTemplate/Header.cshtml b/Hub/HubWeb/Views/AngularTemplate/Header.cshtml similarity index 100% rename from Views/AngularTemplate/Header.cshtml rename to Hub/HubWeb/Views/AngularTemplate/Header.cshtml diff --git a/Views/AngularTemplate/HeaderNav.cshtml b/Hub/HubWeb/Views/AngularTemplate/HeaderNav.cshtml similarity index 100% rename from Views/AngularTemplate/HeaderNav.cshtml rename to Hub/HubWeb/Views/AngularTemplate/HeaderNav.cshtml diff --git a/Views/AngularTemplate/InternalAuthentication.cshtml b/Hub/HubWeb/Views/AngularTemplate/InternalAuthentication.cshtml similarity index 100% rename from Views/AngularTemplate/InternalAuthentication.cshtml rename to Hub/HubWeb/Views/AngularTemplate/InternalAuthentication.cshtml diff --git a/Views/AngularTemplate/KioskModeOrganizationHeader.cshtml b/Hub/HubWeb/Views/AngularTemplate/KioskModeOrganizationHeader.cshtml similarity index 100% rename from Views/AngularTemplate/KioskModeOrganizationHeader.cshtml rename to Hub/HubWeb/Views/AngularTemplate/KioskModeOrganizationHeader.cshtml diff --git a/Views/AngularTemplate/MainContainer.cshtml b/Hub/HubWeb/Views/AngularTemplate/MainContainer.cshtml similarity index 100% rename from Views/AngularTemplate/MainContainer.cshtml rename to Hub/HubWeb/Views/AngularTemplate/MainContainer.cshtml diff --git a/Views/AngularTemplate/MainContainer_AS.cshtml b/Hub/HubWeb/Views/AngularTemplate/MainContainer_AS.cshtml similarity index 100% rename from Views/AngularTemplate/MainContainer_AS.cshtml rename to Hub/HubWeb/Views/AngularTemplate/MainContainer_AS.cshtml diff --git a/Views/AngularTemplate/ManageAuthTokens.cshtml b/Hub/HubWeb/Views/AngularTemplate/ManageAuthTokens.cshtml similarity index 100% rename from Views/AngularTemplate/ManageAuthTokens.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ManageAuthTokens.cshtml diff --git a/Views/AngularTemplate/ManageFileList.cshtml b/Hub/HubWeb/Views/AngularTemplate/ManageFileList.cshtml similarity index 100% rename from Views/AngularTemplate/ManageFileList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ManageFileList.cshtml diff --git a/Views/AngularTemplate/ManagePlan.cshtml b/Hub/HubWeb/Views/AngularTemplate/ManagePlan.cshtml similarity index 100% rename from Views/AngularTemplate/ManagePlan.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ManagePlan.cshtml diff --git a/Views/AngularTemplate/ManifestRegistryList.cshtml b/Hub/HubWeb/Views/AngularTemplate/ManifestRegistryList.cshtml similarity index 100% rename from Views/AngularTemplate/ManifestRegistryList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ManifestRegistryList.cshtml diff --git a/Views/AngularTemplate/MappingPane.cshtml b/Hub/HubWeb/Views/AngularTemplate/MappingPane.cshtml similarity index 100% rename from Views/AngularTemplate/MappingPane.cshtml rename to Hub/HubWeb/Views/AngularTemplate/MappingPane.cshtml diff --git a/Views/AngularTemplate/MetaControlContainer.cshtml b/Hub/HubWeb/Views/AngularTemplate/MetaControlContainer.cshtml similarity index 100% rename from Views/AngularTemplate/MetaControlContainer.cshtml rename to Hub/HubWeb/Views/AngularTemplate/MetaControlContainer.cshtml diff --git a/Views/AngularTemplate/MiniHeader.cshtml b/Hub/HubWeb/Views/AngularTemplate/MiniHeader.cshtml similarity index 100% rename from Views/AngularTemplate/MiniHeader.cshtml rename to Hub/HubWeb/Views/AngularTemplate/MiniHeader.cshtml diff --git a/Views/AngularTemplate/MyAccountPage.cshtml b/Hub/HubWeb/Views/AngularTemplate/MyAccountPage.cshtml similarity index 100% rename from Views/AngularTemplate/MyAccountPage.cshtml rename to Hub/HubWeb/Views/AngularTemplate/MyAccountPage.cshtml diff --git a/Views/AngularTemplate/Organization.cshtml b/Hub/HubWeb/Views/AngularTemplate/Organization.cshtml similarity index 100% rename from Views/AngularTemplate/Organization.cshtml rename to Hub/HubWeb/Views/AngularTemplate/Organization.cshtml diff --git a/Views/AngularTemplate/PageDefinitionList.cshtml b/Hub/HubWeb/Views/AngularTemplate/PageDefinitionList.cshtml similarity index 100% rename from Views/AngularTemplate/PageDefinitionList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PageDefinitionList.cshtml diff --git a/Views/AngularTemplate/PageHead.cshtml b/Hub/HubWeb/Views/AngularTemplate/PageHead.cshtml similarity index 100% rename from Views/AngularTemplate/PageHead.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PageHead.cshtml diff --git a/Views/AngularTemplate/PaneConfigureAction.cshtml b/Hub/HubWeb/Views/AngularTemplate/PaneConfigureAction.cshtml similarity index 100% rename from Views/AngularTemplate/PaneConfigureAction.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PaneConfigureAction.cshtml diff --git a/Views/AngularTemplate/PaneSelectActionModal.cshtml b/Hub/HubWeb/Views/AngularTemplate/PaneSelectActionModal.cshtml similarity index 100% rename from Views/AngularTemplate/PaneSelectActionModal.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PaneSelectActionModal.cshtml diff --git a/Views/AngularTemplate/PermissionsSetterModal.cshtml b/Hub/HubWeb/Views/AngularTemplate/PermissionsSetterModal.cshtml similarity index 100% rename from Views/AngularTemplate/PermissionsSetterModal.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PermissionsSetterModal.cshtml diff --git a/Views/AngularTemplate/PhoneNumberAuthentication.cshtml b/Hub/HubWeb/Views/AngularTemplate/PhoneNumberAuthentication.cshtml similarity index 100% rename from Views/AngularTemplate/PhoneNumberAuthentication.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PhoneNumberAuthentication.cshtml diff --git a/Views/AngularTemplate/PlanBuilder.cshtml b/Hub/HubWeb/Views/AngularTemplate/PlanBuilder.cshtml similarity index 100% rename from Views/AngularTemplate/PlanBuilder.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PlanBuilder.cshtml diff --git a/Views/AngularTemplate/PlanBuilder_KioskMode.cshtml b/Hub/HubWeb/Views/AngularTemplate/PlanBuilder_KioskMode.cshtml similarity index 100% rename from Views/AngularTemplate/PlanBuilder_KioskMode.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PlanBuilder_KioskMode.cshtml diff --git a/Views/AngularTemplate/PlanBuilder_SimpleKioskMode.cshtml b/Hub/HubWeb/Views/AngularTemplate/PlanBuilder_SimpleKioskMode.cshtml similarity index 100% rename from Views/AngularTemplate/PlanBuilder_SimpleKioskMode.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PlanBuilder_SimpleKioskMode.cshtml diff --git a/Views/AngularTemplate/PlanDetails.cshtml b/Hub/HubWeb/Views/AngularTemplate/PlanDetails.cshtml similarity index 100% rename from Views/AngularTemplate/PlanDetails.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PlanDetails.cshtml diff --git a/Views/AngularTemplate/PlanList.cshtml b/Hub/HubWeb/Views/AngularTemplate/PlanList.cshtml similarity index 100% rename from Views/AngularTemplate/PlanList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PlanList.cshtml diff --git a/Views/AngularTemplate/PlanReportList.cshtml b/Hub/HubWeb/Views/AngularTemplate/PlanReportList.cshtml similarity index 100% rename from Views/AngularTemplate/PlanReportList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PlanReportList.cshtml diff --git a/Views/AngularTemplate/PlanUploadModal.cshtml b/Hub/HubWeb/Views/AngularTemplate/PlanUploadModal.cshtml similarity index 100% rename from Views/AngularTemplate/PlanUploadModal.cshtml rename to Hub/HubWeb/Views/AngularTemplate/PlanUploadModal.cshtml diff --git a/Views/AngularTemplate/QueryBuilder.cshtml b/Hub/HubWeb/Views/AngularTemplate/QueryBuilder.cshtml similarity index 100% rename from Views/AngularTemplate/QueryBuilder.cshtml rename to Hub/HubWeb/Views/AngularTemplate/QueryBuilder.cshtml diff --git a/Views/AngularTemplate/QueryBuilderCondition.cshtml b/Hub/HubWeb/Views/AngularTemplate/QueryBuilderCondition.cshtml similarity index 100% rename from Views/AngularTemplate/QueryBuilderCondition.cshtml rename to Hub/HubWeb/Views/AngularTemplate/QueryBuilderCondition.cshtml diff --git a/Views/AngularTemplate/QueryBuilderWidget.cshtml b/Hub/HubWeb/Views/AngularTemplate/QueryBuilderWidget.cshtml similarity index 100% rename from Views/AngularTemplate/QueryBuilderWidget.cshtml rename to Hub/HubWeb/Views/AngularTemplate/QueryBuilderWidget.cshtml diff --git a/Views/AngularTemplate/RadioButtonOption.cshtml b/Hub/HubWeb/Views/AngularTemplate/RadioButtonOption.cshtml similarity index 100% rename from Views/AngularTemplate/RadioButtonOption.cshtml rename to Hub/HubWeb/Views/AngularTemplate/RadioButtonOption.cshtml diff --git a/Views/AngularTemplate/ReportIncidentModal.cshtml b/Hub/HubWeb/Views/AngularTemplate/ReportIncidentModal.cshtml similarity index 100% rename from Views/AngularTemplate/ReportIncidentModal.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ReportIncidentModal.cshtml diff --git a/Views/AngularTemplate/RunPlanButton.cshtml b/Hub/HubWeb/Views/AngularTemplate/RunPlanButton.cshtml similarity index 100% rename from Views/AngularTemplate/RunPlanButton.cshtml rename to Hub/HubWeb/Views/AngularTemplate/RunPlanButton.cshtml diff --git a/Views/AngularTemplate/SelectActivityDialog.cshtml b/Hub/HubWeb/Views/AngularTemplate/SelectActivityDialog.cshtml similarity index 100% rename from Views/AngularTemplate/SelectActivityDialog.cshtml rename to Hub/HubWeb/Views/AngularTemplate/SelectActivityDialog.cshtml diff --git a/Views/AngularTemplate/SelectData.cshtml b/Hub/HubWeb/Views/AngularTemplate/SelectData.cshtml similarity index 100% rename from Views/AngularTemplate/SelectData.cshtml rename to Hub/HubWeb/Views/AngularTemplate/SelectData.cshtml diff --git a/Views/AngularTemplate/ShowFacts.cshtml b/Hub/HubWeb/Views/AngularTemplate/ShowFacts.cshtml similarity index 100% rename from Views/AngularTemplate/ShowFacts.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ShowFacts.cshtml diff --git a/Views/AngularTemplate/ShowIncidents.cshtml b/Hub/HubWeb/Views/AngularTemplate/ShowIncidents.cshtml similarity index 100% rename from Views/AngularTemplate/ShowIncidents.cshtml rename to Hub/HubWeb/Views/AngularTemplate/ShowIncidents.cshtml diff --git a/Views/AngularTemplate/SolutionDocumentation.cshtml b/Hub/HubWeb/Views/AngularTemplate/SolutionDocumentation.cshtml similarity index 100% rename from Views/AngularTemplate/SolutionDocumentation.cshtml rename to Hub/HubWeb/Views/AngularTemplate/SolutionDocumentation.cshtml diff --git a/Views/AngularTemplate/SolutionList.cshtml b/Hub/HubWeb/Views/AngularTemplate/SolutionList.cshtml similarity index 100% rename from Views/AngularTemplate/SolutionList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/SolutionList.cshtml diff --git a/Views/AngularTemplate/SourceableCriteria.cshtml b/Hub/HubWeb/Views/AngularTemplate/SourceableCriteria.cshtml similarity index 100% rename from Views/AngularTemplate/SourceableCriteria.cshtml rename to Hub/HubWeb/Views/AngularTemplate/SourceableCriteria.cshtml diff --git a/Views/AngularTemplate/SubplanHeader.cshtml b/Hub/HubWeb/Views/AngularTemplate/SubplanHeader.cshtml similarity index 100% rename from Views/AngularTemplate/SubplanHeader.cshtml rename to Hub/HubWeb/Views/AngularTemplate/SubplanHeader.cshtml diff --git a/Views/AngularTemplate/TerminalDetail.cshtml b/Hub/HubWeb/Views/AngularTemplate/TerminalDetail.cshtml similarity index 100% rename from Views/AngularTemplate/TerminalDetail.cshtml rename to Hub/HubWeb/Views/AngularTemplate/TerminalDetail.cshtml diff --git a/Views/AngularTemplate/TerminalForm.cshtml b/Hub/HubWeb/Views/AngularTemplate/TerminalForm.cshtml similarity index 100% rename from Views/AngularTemplate/TerminalForm.cshtml rename to Hub/HubWeb/Views/AngularTemplate/TerminalForm.cshtml diff --git a/Views/AngularTemplate/TerminalList.cshtml b/Hub/HubWeb/Views/AngularTemplate/TerminalList.cshtml similarity index 100% rename from Views/AngularTemplate/TerminalList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/TerminalList.cshtml diff --git a/Views/AngularTemplate/TerminalPublishForm.cshtml b/Hub/HubWeb/Views/AngularTemplate/TerminalPublishForm.cshtml similarity index 100% rename from Views/AngularTemplate/TerminalPublishForm.cshtml rename to Hub/HubWeb/Views/AngularTemplate/TerminalPublishForm.cshtml diff --git a/Views/AngularTemplate/TextArea.cshtml b/Hub/HubWeb/Views/AngularTemplate/TextArea.cshtml similarity index 100% rename from Views/AngularTemplate/TextArea.cshtml rename to Hub/HubWeb/Views/AngularTemplate/TextArea.cshtml diff --git a/Views/AngularTemplate/TextBlock.cshtml b/Hub/HubWeb/Views/AngularTemplate/TextBlock.cshtml similarity index 100% rename from Views/AngularTemplate/TextBlock.cshtml rename to Hub/HubWeb/Views/AngularTemplate/TextBlock.cshtml diff --git a/Views/AngularTemplate/TextSource.cshtml b/Hub/HubWeb/Views/AngularTemplate/TextSource.cshtml similarity index 100% rename from Views/AngularTemplate/TextSource.cshtml rename to Hub/HubWeb/Views/AngularTemplate/TextSource.cshtml diff --git a/Views/AngularTemplate/TimePicker.cshtml b/Hub/HubWeb/Views/AngularTemplate/TimePicker.cshtml similarity index 100% rename from Views/AngularTemplate/TimePicker.cshtml rename to Hub/HubWeb/Views/AngularTemplate/TimePicker.cshtml diff --git a/Views/AngularTemplate/UpstreamCrateChooser.cshtml b/Hub/HubWeb/Views/AngularTemplate/UpstreamCrateChooser.cshtml similarity index 100% rename from Views/AngularTemplate/UpstreamCrateChooser.cshtml rename to Hub/HubWeb/Views/AngularTemplate/UpstreamCrateChooser.cshtml diff --git a/Views/AngularTemplate/UpstreamDataChooser.cshtml b/Hub/HubWeb/Views/AngularTemplate/UpstreamDataChooser.cshtml similarity index 100% rename from Views/AngularTemplate/UpstreamDataChooser.cshtml rename to Hub/HubWeb/Views/AngularTemplate/UpstreamDataChooser.cshtml diff --git a/Views/AngularTemplate/UpstreamFieldChooser.cshtml b/Hub/HubWeb/Views/AngularTemplate/UpstreamFieldChooser.cshtml similarity index 100% rename from Views/AngularTemplate/UpstreamFieldChooser.cshtml rename to Hub/HubWeb/Views/AngularTemplate/UpstreamFieldChooser.cshtml diff --git a/Views/AngularTemplate/UpstreamFieldChooserDialog.cshtml b/Hub/HubWeb/Views/AngularTemplate/UpstreamFieldChooserDialog.cshtml similarity index 100% rename from Views/AngularTemplate/UpstreamFieldChooserDialog.cshtml rename to Hub/HubWeb/Views/AngularTemplate/UpstreamFieldChooserDialog.cshtml diff --git a/Views/AngularTemplate/UsersEmailList.cshtml b/Hub/HubWeb/Views/AngularTemplate/UsersEmailList.cshtml similarity index 100% rename from Views/AngularTemplate/UsersEmailList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/UsersEmailList.cshtml diff --git a/Views/AngularTemplate/WebServiceList.cshtml b/Hub/HubWeb/Views/AngularTemplate/WebServiceList.cshtml similarity index 100% rename from Views/AngularTemplate/WebServiceList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/WebServiceList.cshtml diff --git a/Views/AngularTemplate/_AddPayloadModal.cshtml b/Hub/HubWeb/Views/AngularTemplate/_AddPayloadModal.cshtml similarity index 100% rename from Views/AngularTemplate/_AddPayloadModal.cshtml rename to Hub/HubWeb/Views/AngularTemplate/_AddPayloadModal.cshtml diff --git a/Views/AngularTemplate/_Debug.cshtml b/Hub/HubWeb/Views/AngularTemplate/_Debug.cshtml similarity index 100% rename from Views/AngularTemplate/_Debug.cshtml rename to Hub/HubWeb/Views/AngularTemplate/_Debug.cshtml diff --git a/Views/AngularTemplate/_PlanList.cshtml b/Hub/HubWeb/Views/AngularTemplate/_PlanList.cshtml similarity index 100% rename from Views/AngularTemplate/_PlanList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/_PlanList.cshtml diff --git a/Views/AngularTemplate/_PlanReportList.cshtml b/Hub/HubWeb/Views/AngularTemplate/_PlanReportList.cshtml similarity index 100% rename from Views/AngularTemplate/_PlanReportList.cshtml rename to Hub/HubWeb/Views/AngularTemplate/_PlanReportList.cshtml diff --git a/Views/AngularTemplate/messages.cshtml b/Hub/HubWeb/Views/AngularTemplate/messages.cshtml similarity index 100% rename from Views/AngularTemplate/messages.cshtml rename to Hub/HubWeb/Views/AngularTemplate/messages.cshtml diff --git a/Views/AuthenticationCallback/Error.cshtml b/Hub/HubWeb/Views/AuthenticationCallback/Error.cshtml similarity index 100% rename from Views/AuthenticationCallback/Error.cshtml rename to Hub/HubWeb/Views/AuthenticationCallback/Error.cshtml diff --git a/Views/AuthenticationCallback/ProcessSuccessfulOAuthResponse.cshtml b/Hub/HubWeb/Views/AuthenticationCallback/ProcessSuccessfulOAuthResponse.cshtml similarity index 100% rename from Views/AuthenticationCallback/ProcessSuccessfulOAuthResponse.cshtml rename to Hub/HubWeb/Views/AuthenticationCallback/ProcessSuccessfulOAuthResponse.cshtml diff --git a/Views/BookingRequest/AddNote.cshtml b/Hub/HubWeb/Views/BookingRequest/AddNote.cshtml similarity index 100% rename from Views/BookingRequest/AddNote.cshtml rename to Hub/HubWeb/Views/BookingRequest/AddNote.cshtml diff --git a/Views/BookingRequest/Administer.cshtml b/Hub/HubWeb/Views/BookingRequest/Administer.cshtml similarity index 100% rename from Views/BookingRequest/Administer.cshtml rename to Hub/HubWeb/Views/BookingRequest/Administer.cshtml diff --git a/Views/BookingRequest/DefaultActivityPopup.cshtml b/Hub/HubWeb/Views/BookingRequest/DefaultActivityPopup.cshtml similarity index 100% rename from Views/BookingRequest/DefaultActivityPopup.cshtml rename to Hub/HubWeb/Views/BookingRequest/DefaultActivityPopup.cshtml diff --git a/Views/BookingRequest/FindBookingRequest.cshtml b/Hub/HubWeb/Views/BookingRequest/FindBookingRequest.cshtml similarity index 100% rename from Views/BookingRequest/FindBookingRequest.cshtml rename to Hub/HubWeb/Views/BookingRequest/FindBookingRequest.cshtml diff --git a/Views/BookingRequest/Index.cshtml b/Hub/HubWeb/Views/BookingRequest/Index.cshtml similarity index 100% rename from Views/BookingRequest/Index.cshtml rename to Hub/HubWeb/Views/BookingRequest/Index.cshtml diff --git a/Views/BookingRequest/MergeRelatedBR.cshtml b/Hub/HubWeb/Views/BookingRequest/MergeRelatedBR.cshtml similarity index 100% rename from Views/BookingRequest/MergeRelatedBR.cshtml rename to Hub/HubWeb/Views/BookingRequest/MergeRelatedBR.cshtml diff --git a/Views/BookingRequest/SearchResult.cshtml b/Hub/HubWeb/Views/BookingRequest/SearchResult.cshtml similarity index 100% rename from Views/BookingRequest/SearchResult.cshtml rename to Hub/HubWeb/Views/BookingRequest/SearchResult.cshtml diff --git a/Views/BookingRequest/ShowAllBookingRequests.cshtml b/Hub/HubWeb/Views/BookingRequest/ShowAllBookingRequests.cshtml similarity index 100% rename from Views/BookingRequest/ShowAllBookingRequests.cshtml rename to Hub/HubWeb/Views/BookingRequest/ShowAllBookingRequests.cshtml diff --git a/Views/BookingRequest/ShowAwaitingResponse.cshtml b/Hub/HubWeb/Views/BookingRequest/ShowAwaitingResponse.cshtml similarity index 100% rename from Views/BookingRequest/ShowAwaitingResponse.cshtml rename to Hub/HubWeb/Views/BookingRequest/ShowAwaitingResponse.cshtml diff --git a/Views/BookingRequest/ShowConversation.cshtml b/Hub/HubWeb/Views/BookingRequest/ShowConversation.cshtml similarity index 100% rename from Views/BookingRequest/ShowConversation.cshtml rename to Hub/HubWeb/Views/BookingRequest/ShowConversation.cshtml diff --git a/Views/BookingRequest/ShowInProcessBRs.cshtml b/Hub/HubWeb/Views/BookingRequest/ShowInProcessBRs.cshtml similarity index 100% rename from Views/BookingRequest/ShowInProcessBRs.cshtml rename to Hub/HubWeb/Views/BookingRequest/ShowInProcessBRs.cshtml diff --git a/Views/BookingRequest/ShowManualCreationForm.cshtml b/Hub/HubWeb/Views/BookingRequest/ShowManualCreationForm.cshtml similarity index 100% rename from Views/BookingRequest/ShowManualCreationForm.cshtml rename to Hub/HubWeb/Views/BookingRequest/ShowManualCreationForm.cshtml diff --git a/Views/BookingRequest/ShowMyBRs.cshtml b/Hub/HubWeb/Views/BookingRequest/ShowMyBRs.cshtml similarity index 100% rename from Views/BookingRequest/ShowMyBRs.cshtml rename to Hub/HubWeb/Views/BookingRequest/ShowMyBRs.cshtml diff --git a/Views/Calendar/ActiveAreas.cshtml b/Hub/HubWeb/Views/Calendar/ActiveAreas.cshtml similarity index 100% rename from Views/Calendar/ActiveAreas.cshtml rename to Hub/HubWeb/Views/Calendar/ActiveAreas.cshtml diff --git a/Views/Calendar/AutoHide.cshtml b/Hub/HubWeb/Views/Calendar/AutoHide.cshtml similarity index 100% rename from Views/Calendar/AutoHide.cshtml rename to Hub/HubWeb/Views/Calendar/AutoHide.cshtml diff --git a/Views/Calendar/AutoRefresh.cshtml b/Hub/HubWeb/Views/Calendar/AutoRefresh.cshtml similarity index 100% rename from Views/Calendar/AutoRefresh.cshtml rename to Hub/HubWeb/Views/Calendar/AutoRefresh.cshtml diff --git a/Views/Calendar/Columns50.cshtml b/Hub/HubWeb/Views/Calendar/Columns50.cshtml similarity index 100% rename from Views/Calendar/Columns50.cshtml rename to Hub/HubWeb/Views/Calendar/Columns50.cshtml diff --git a/Views/Calendar/ContextMenu.cshtml b/Hub/HubWeb/Views/Calendar/ContextMenu.cshtml similarity index 100% rename from Views/Calendar/ContextMenu.cshtml rename to Hub/HubWeb/Views/Calendar/ContextMenu.cshtml diff --git a/Views/Calendar/Crosshair.cshtml b/Hub/HubWeb/Views/Calendar/Crosshair.cshtml similarity index 100% rename from Views/Calendar/Crosshair.cshtml rename to Hub/HubWeb/Views/Calendar/Crosshair.cshtml diff --git a/Views/Calendar/DayRange.cshtml b/Hub/HubWeb/Views/Calendar/DayRange.cshtml similarity index 100% rename from Views/Calendar/DayRange.cshtml rename to Hub/HubWeb/Views/Calendar/DayRange.cshtml diff --git a/Views/Calendar/DaysResources.cshtml b/Hub/HubWeb/Views/Calendar/DaysResources.cshtml similarity index 100% rename from Views/Calendar/DaysResources.cshtml rename to Hub/HubWeb/Views/Calendar/DaysResources.cshtml diff --git a/Views/Calendar/Edit.cshtml b/Hub/HubWeb/Views/Calendar/Edit.cshtml similarity index 100% rename from Views/Calendar/Edit.cshtml rename to Hub/HubWeb/Views/Calendar/Edit.cshtml diff --git a/Views/Calendar/EventArrangement.cshtml b/Hub/HubWeb/Views/Calendar/EventArrangement.cshtml similarity index 100% rename from Views/Calendar/EventArrangement.cshtml rename to Hub/HubWeb/Views/Calendar/EventArrangement.cshtml diff --git a/Views/Calendar/EventSelecting.cshtml b/Hub/HubWeb/Views/Calendar/EventSelecting.cshtml similarity index 100% rename from Views/Calendar/EventSelecting.cshtml rename to Hub/HubWeb/Views/Calendar/EventSelecting.cshtml diff --git a/Views/Calendar/ExternalDragDrop.cshtml b/Hub/HubWeb/Views/Calendar/ExternalDragDrop.cshtml similarity index 100% rename from Views/Calendar/ExternalDragDrop.cshtml rename to Hub/HubWeb/Views/Calendar/ExternalDragDrop.cshtml diff --git a/Views/Calendar/GetNegotiationCalendars.cshtml b/Hub/HubWeb/Views/Calendar/GetNegotiationCalendars.cshtml similarity index 100% rename from Views/Calendar/GetNegotiationCalendars.cshtml rename to Hub/HubWeb/Views/Calendar/GetNegotiationCalendars.cshtml diff --git a/Views/Calendar/GoogleLike.cshtml b/Hub/HubWeb/Views/Calendar/GoogleLike.cshtml similarity index 100% rename from Views/Calendar/GoogleLike.cshtml rename to Hub/HubWeb/Views/Calendar/GoogleLike.cshtml diff --git a/Views/Calendar/HeaderAutoFit.cshtml b/Hub/HubWeb/Views/Calendar/HeaderAutoFit.cshtml similarity index 100% rename from Views/Calendar/HeaderAutoFit.cshtml rename to Hub/HubWeb/Views/Calendar/HeaderAutoFit.cshtml diff --git a/Views/Calendar/Height100Pct.cshtml b/Hub/HubWeb/Views/Calendar/Height100Pct.cshtml similarity index 100% rename from Views/Calendar/Height100Pct.cshtml rename to Hub/HubWeb/Views/Calendar/Height100Pct.cshtml diff --git a/Views/Calendar/JQuery.cshtml b/Hub/HubWeb/Views/Calendar/JQuery.cshtml similarity index 100% rename from Views/Calendar/JQuery.cshtml rename to Hub/HubWeb/Views/Calendar/JQuery.cshtml diff --git a/Views/Calendar/Message.cshtml b/Hub/HubWeb/Views/Calendar/Message.cshtml similarity index 100% rename from Views/Calendar/Message.cshtml rename to Hub/HubWeb/Views/Calendar/Message.cshtml diff --git a/Views/Calendar/Navigation.json b/Hub/HubWeb/Views/Calendar/Navigation.json similarity index 100% rename from Views/Calendar/Navigation.json rename to Hub/HubWeb/Views/Calendar/Navigation.json diff --git a/Views/Calendar/Notify.cshtml b/Hub/HubWeb/Views/Calendar/Notify.cshtml similarity index 100% rename from Views/Calendar/Notify.cshtml rename to Hub/HubWeb/Views/Calendar/Notify.cshtml diff --git a/Views/Calendar/RecurringEvents.cshtml b/Hub/HubWeb/Views/Calendar/RecurringEvents.cshtml similarity index 100% rename from Views/Calendar/RecurringEvents.cshtml rename to Hub/HubWeb/Views/Calendar/RecurringEvents.cshtml diff --git a/Views/Calendar/Resources.cshtml b/Hub/HubWeb/Views/Calendar/Resources.cshtml similarity index 100% rename from Views/Calendar/Resources.cshtml rename to Hub/HubWeb/Views/Calendar/Resources.cshtml diff --git a/Views/Calendar/Rtl.cshtml b/Hub/HubWeb/Views/Calendar/Rtl.cshtml similarity index 100% rename from Views/Calendar/Rtl.cshtml rename to Hub/HubWeb/Views/Calendar/Rtl.cshtml diff --git a/Views/Calendar/ThemeBlue.cshtml b/Hub/HubWeb/Views/Calendar/ThemeBlue.cshtml similarity index 100% rename from Views/Calendar/ThemeBlue.cshtml rename to Hub/HubWeb/Views/Calendar/ThemeBlue.cshtml diff --git a/Views/Calendar/ThemeGreen.cshtml b/Hub/HubWeb/Views/Calendar/ThemeGreen.cshtml similarity index 100% rename from Views/Calendar/ThemeGreen.cshtml rename to Hub/HubWeb/Views/Calendar/ThemeGreen.cshtml diff --git a/Views/Calendar/ThemeTraditional.cshtml b/Hub/HubWeb/Views/Calendar/ThemeTraditional.cshtml similarity index 100% rename from Views/Calendar/ThemeTraditional.cshtml rename to Hub/HubWeb/Views/Calendar/ThemeTraditional.cshtml diff --git a/Views/Calendar/ThemeTransparent.cshtml b/Hub/HubWeb/Views/Calendar/ThemeTransparent.cshtml similarity index 100% rename from Views/Calendar/ThemeTransparent.cshtml rename to Hub/HubWeb/Views/Calendar/ThemeTransparent.cshtml diff --git a/Views/Calendar/ThemeWhite.cshtml b/Hub/HubWeb/Views/Calendar/ThemeWhite.cshtml similarity index 100% rename from Views/Calendar/ThemeWhite.cshtml rename to Hub/HubWeb/Views/Calendar/ThemeWhite.cshtml diff --git a/Views/Calendar/TimeHeaderCellDuration.cshtml b/Hub/HubWeb/Views/Calendar/TimeHeaderCellDuration.cshtml similarity index 100% rename from Views/Calendar/TimeHeaderCellDuration.cshtml rename to Hub/HubWeb/Views/Calendar/TimeHeaderCellDuration.cshtml diff --git a/Views/Calendar/Today.cshtml b/Hub/HubWeb/Views/Calendar/Today.cshtml similarity index 100% rename from Views/Calendar/Today.cshtml rename to Hub/HubWeb/Views/Calendar/Today.cshtml diff --git a/Views/Company/Index.cshtml b/Hub/HubWeb/Views/Company/Index.cshtml similarity index 100% rename from Views/Company/Index.cshtml rename to Hub/HubWeb/Views/Company/Index.cshtml diff --git a/Views/Dashboard/Index.cshtml b/Hub/HubWeb/Views/Dashboard/Index.cshtml similarity index 100% rename from Views/Dashboard/Index.cshtml rename to Hub/HubWeb/Views/Dashboard/Index.cshtml diff --git a/Views/DocusignAuthCallback/Login.cshtml b/Hub/HubWeb/Views/DocusignAuthCallback/Login.cshtml similarity index 100% rename from Views/DocusignAuthCallback/Login.cshtml rename to Hub/HubWeb/Views/DocusignAuthCallback/Login.cshtml diff --git a/Views/Home/ConditionalLogicBranching.cshtml b/Hub/HubWeb/Views/Home/ConditionalLogicBranching.cshtml similarity index 100% rename from Views/Home/ConditionalLogicBranching.cshtml rename to Hub/HubWeb/Views/Home/ConditionalLogicBranching.cshtml diff --git a/Views/Home/Contact.cshtml b/Hub/HubWeb/Views/Home/Contact.cshtml similarity index 100% rename from Views/Home/Contact.cshtml rename to Hub/HubWeb/Views/Home/Contact.cshtml diff --git a/Views/Home/DataExtractionIntoSalesforce.cshtml b/Hub/HubWeb/Views/Home/DataExtractionIntoSalesforce.cshtml similarity index 100% rename from Views/Home/DataExtractionIntoSalesforce.cshtml rename to Hub/HubWeb/Views/Home/DataExtractionIntoSalesforce.cshtml diff --git a/Views/Home/DataExtractionIntoServices.cshtml b/Hub/HubWeb/Views/Home/DataExtractionIntoServices.cshtml similarity index 100% rename from Views/Home/DataExtractionIntoServices.cshtml rename to Hub/HubWeb/Views/Home/DataExtractionIntoServices.cshtml diff --git a/Views/Home/DataExtractionintoSQLServer.cshtml b/Hub/HubWeb/Views/Home/DataExtractionintoSQLServer.cshtml similarity index 100% rename from Views/Home/DataExtractionintoSQLServer.cshtml rename to Hub/HubWeb/Views/Home/DataExtractionintoSQLServer.cshtml diff --git a/Views/Home/Index.cshtml b/Hub/HubWeb/Views/Home/Index.cshtml similarity index 100% rename from Views/Home/Index.cshtml rename to Hub/HubWeb/Views/Home/Index.cshtml diff --git a/Views/Home/IntegrationWithOtherDataServices.cshtml b/Hub/HubWeb/Views/Home/IntegrationWithOtherDataServices.cshtml similarity index 100% rename from Views/Home/IntegrationWithOtherDataServices.cshtml rename to Hub/HubWeb/Views/Home/IntegrationWithOtherDataServices.cshtml diff --git a/Views/Home/InterOrganizationWorkflows.cshtml b/Hub/HubWeb/Views/Home/InterOrganizationWorkflows.cshtml similarity index 100% rename from Views/Home/InterOrganizationWorkflows.cshtml rename to Hub/HubWeb/Views/Home/InterOrganizationWorkflows.cshtml diff --git a/Views/Home/MultiPartWorkflows.cshtml b/Hub/HubWeb/Views/Home/MultiPartWorkflows.cshtml similarity index 100% rename from Views/Home/MultiPartWorkflows.cshtml rename to Hub/HubWeb/Views/Home/MultiPartWorkflows.cshtml diff --git a/Views/Home/index_docusign.cshtml b/Hub/HubWeb/Views/Home/index_docusign.cshtml similarity index 100% rename from Views/Home/index_docusign.cshtml rename to Hub/HubWeb/Views/Home/index_docusign.cshtml diff --git a/Views/JsTests/endpoints.cshtml b/Hub/HubWeb/Views/JsTests/endpoints.cshtml similarity index 100% rename from Views/JsTests/endpoints.cshtml rename to Hub/HubWeb/Views/JsTests/endpoints.cshtml diff --git a/Views/JsTests/tests.cshtml b/Hub/HubWeb/Views/JsTests/tests.cshtml similarity index 100% rename from Views/JsTests/tests.cshtml rename to Hub/HubWeb/Views/JsTests/tests.cshtml diff --git a/Views/ManifestRegistry/Index.cshtml b/Hub/HubWeb/Views/ManifestRegistry/Index.cshtml similarity index 100% rename from Views/ManifestRegistry/Index.cshtml rename to Hub/HubWeb/Views/ManifestRegistry/Index.cshtml diff --git a/Views/Negotiation/Edit.cshtml b/Hub/HubWeb/Views/Negotiation/Edit.cshtml similarity index 100% rename from Views/Negotiation/Edit.cshtml rename to Hub/HubWeb/Views/Negotiation/Edit.cshtml diff --git a/Views/Negotiation/EventWindows.cshtml b/Hub/HubWeb/Views/Negotiation/EventWindows.cshtml similarity index 100% rename from Views/Negotiation/EventWindows.cshtml rename to Hub/HubWeb/Views/Negotiation/EventWindows.cshtml diff --git a/Views/Negotiation/Review.cshtml b/Hub/HubWeb/Views/Negotiation/Review.cshtml similarity index 100% rename from Views/Negotiation/Review.cshtml rename to Hub/HubWeb/Views/Negotiation/Review.cshtml diff --git a/Views/Negotiation/_Question.cshtml b/Hub/HubWeb/Views/Negotiation/_Question.cshtml similarity index 100% rename from Views/Negotiation/_Question.cshtml rename to Hub/HubWeb/Views/Negotiation/_Question.cshtml diff --git a/Views/Negotiation/_TextAnswer.cshtml b/Hub/HubWeb/Views/Negotiation/_TextAnswer.cshtml similarity index 100% rename from Views/Negotiation/_TextAnswer.cshtml rename to Hub/HubWeb/Views/Negotiation/_TextAnswer.cshtml diff --git a/Views/PlanDirectory/Index.cshtml b/Hub/HubWeb/Views/PlanDirectory/Index.cshtml similarity index 100% rename from Views/PlanDirectory/Index.cshtml rename to Hub/HubWeb/Views/PlanDirectory/Index.cshtml diff --git a/Views/Redirect/ClonePlan.cshtml b/Hub/HubWeb/Views/Redirect/ClonePlan.cshtml similarity index 100% rename from Views/Redirect/ClonePlan.cshtml rename to Hub/HubWeb/Views/Redirect/ClonePlan.cshtml diff --git a/Views/Sandbox/Index.cshtml b/Hub/HubWeb/Views/Sandbox/Index.cshtml similarity index 100% rename from Views/Sandbox/Index.cshtml rename to Hub/HubWeb/Views/Sandbox/Index.cshtml diff --git a/Views/Services/GoogleApps.cshtml b/Hub/HubWeb/Views/Services/GoogleApps.cshtml similarity index 100% rename from Views/Services/GoogleApps.cshtml rename to Hub/HubWeb/Views/Services/GoogleApps.cshtml diff --git a/Views/Services/HowItWorks.cshtml b/Hub/HubWeb/Views/Services/HowItWorks.cshtml similarity index 100% rename from Views/Services/HowItWorks.cshtml rename to Hub/HubWeb/Views/Services/HowItWorks.cshtml diff --git a/Views/Services/Salesforce.cshtml b/Hub/HubWeb/Views/Services/Salesforce.cshtml similarity index 100% rename from Views/Services/Salesforce.cshtml rename to Hub/HubWeb/Views/Services/Salesforce.cshtml diff --git a/Views/Services/SolutionListTemplate.cshtml b/Hub/HubWeb/Views/Services/SolutionListTemplate.cshtml similarity index 100% rename from Views/Services/SolutionListTemplate.cshtml rename to Hub/HubWeb/Views/Services/SolutionListTemplate.cshtml diff --git a/Views/Services/docusign.cshtml b/Hub/HubWeb/Views/Services/docusign.cshtml similarity index 100% rename from Views/Services/docusign.cshtml rename to Hub/HubWeb/Views/Services/docusign.cshtml diff --git a/Views/Shared/401.cshtml b/Hub/HubWeb/Views/Shared/401.cshtml similarity index 100% rename from Views/Shared/401.cshtml rename to Hub/HubWeb/Views/Shared/401.cshtml diff --git a/Views/Shared/403.cshtml b/Hub/HubWeb/Views/Shared/403.cshtml similarity index 100% rename from Views/Shared/403.cshtml rename to Hub/HubWeb/Views/Shared/403.cshtml diff --git a/Views/Shared/404.cshtml b/Hub/HubWeb/Views/Shared/404.cshtml similarity index 100% rename from Views/Shared/404.cshtml rename to Hub/HubWeb/Views/Shared/404.cshtml diff --git a/Views/Shared/AccessDenied.cshtml b/Hub/HubWeb/Views/Shared/AccessDenied.cshtml similarity index 100% rename from Views/Shared/AccessDenied.cshtml rename to Hub/HubWeb/Views/Shared/AccessDenied.cshtml diff --git a/Views/Shared/CDN/_AngularAppScripts.cshtml b/Hub/HubWeb/Views/Shared/CDN/_AngularAppScripts.cshtml similarity index 100% rename from Views/Shared/CDN/_AngularAppScripts.cshtml rename to Hub/HubWeb/Views/Shared/CDN/_AngularAppScripts.cshtml diff --git a/Views/Shared/CDN/_AngularAppStyles.cshtml b/Hub/HubWeb/Views/Shared/CDN/_AngularAppStyles.cshtml similarity index 100% rename from Views/Shared/CDN/_AngularAppStyles.cshtml rename to Hub/HubWeb/Views/Shared/CDN/_AngularAppStyles.cshtml diff --git a/Views/Shared/Error.cshtml b/Hub/HubWeb/Views/Shared/Error.cshtml similarity index 100% rename from Views/Shared/Error.cshtml rename to Hub/HubWeb/Views/Shared/Error.cshtml diff --git a/Views/Shared/_AngularAppScripts.cshtml b/Hub/HubWeb/Views/Shared/_AngularAppScripts.cshtml similarity index 100% rename from Views/Shared/_AngularAppScripts.cshtml rename to Hub/HubWeb/Views/Shared/_AngularAppScripts.cshtml diff --git a/Views/Shared/_AngularAppStyles.cshtml b/Hub/HubWeb/Views/Shared/_AngularAppStyles.cshtml similarity index 100% rename from Views/Shared/_AngularAppStyles.cshtml rename to Hub/HubWeb/Views/Shared/_AngularAppStyles.cshtml diff --git a/Views/Shared/_Blank.cshtml b/Hub/HubWeb/Views/Shared/_Blank.cshtml similarity index 100% rename from Views/Shared/_Blank.cshtml rename to Hub/HubWeb/Views/Shared/_Blank.cshtml diff --git a/Views/Shared/_HomeNav.cshtml b/Hub/HubWeb/Views/Shared/_HomeNav.cshtml similarity index 100% rename from Views/Shared/_HomeNav.cshtml rename to Hub/HubWeb/Views/Shared/_HomeNav.cshtml diff --git a/Views/Shared/_HomeNavNew.cshtml b/Hub/HubWeb/Views/Shared/_HomeNavNew.cshtml similarity index 100% rename from Views/Shared/_HomeNavNew.cshtml rename to Hub/HubWeb/Views/Shared/_HomeNavNew.cshtml diff --git a/Views/Shared/_HomePage.cshtml b/Hub/HubWeb/Views/Shared/_HomePage.cshtml similarity index 100% rename from Views/Shared/_HomePage.cshtml rename to Hub/HubWeb/Views/Shared/_HomePage.cshtml diff --git a/Views/Shared/_HomePageNew.cshtml b/Hub/HubWeb/Views/Shared/_HomePageNew.cshtml similarity index 100% rename from Views/Shared/_HomePageNew.cshtml rename to Hub/HubWeb/Views/Shared/_HomePageNew.cshtml diff --git a/Views/Shared/_JsTestsLayout.cshtml b/Hub/HubWeb/Views/Shared/_JsTestsLayout.cshtml similarity index 100% rename from Views/Shared/_JsTestsLayout.cshtml rename to Hub/HubWeb/Views/Shared/_JsTestsLayout.cshtml diff --git a/Views/Shared/_Layout.cshtml b/Hub/HubWeb/Views/Shared/_Layout.cshtml similarity index 100% rename from Views/Shared/_Layout.cshtml rename to Hub/HubWeb/Views/Shared/_Layout.cshtml diff --git a/Views/Shared/_LoginPartial.cshtml b/Hub/HubWeb/Views/Shared/_LoginPartial.cshtml similarity index 100% rename from Views/Shared/_LoginPartial.cshtml rename to Hub/HubWeb/Views/Shared/_LoginPartial.cshtml diff --git a/Views/Support/Index.cshtml b/Hub/HubWeb/Views/Support/Index.cshtml similarity index 100% rename from Views/Support/Index.cshtml rename to Hub/HubWeb/Views/Support/Index.cshtml diff --git a/Views/Welcome/Index.cshtml b/Hub/HubWeb/Views/Welcome/Index.cshtml similarity index 100% rename from Views/Welcome/Index.cshtml rename to Hub/HubWeb/Views/Welcome/Index.cshtml diff --git a/Views/_ViewStart.cshtml b/Hub/HubWeb/Views/_ViewStart.cshtml similarity index 100% rename from Views/_ViewStart.cshtml rename to Hub/HubWeb/Views/_ViewStart.cshtml diff --git a/Web.Debug.config b/Hub/HubWeb/Web.Debug.config similarity index 100% rename from Web.Debug.config rename to Hub/HubWeb/Web.Debug.config diff --git a/Web.Demo.config b/Hub/HubWeb/Web.Demo.config similarity index 100% rename from Web.Demo.config rename to Hub/HubWeb/Web.Demo.config diff --git a/Web.Dev.config b/Hub/HubWeb/Web.Dev.config similarity index 100% rename from Web.Dev.config rename to Hub/HubWeb/Web.Dev.config diff --git a/Web.Release.config b/Hub/HubWeb/Web.Release.config similarity index 100% rename from Web.Release.config rename to Hub/HubWeb/Web.Release.config diff --git a/Web.config b/Hub/HubWeb/Web.config similarity index 100% rename from Web.config rename to Hub/HubWeb/Web.config diff --git a/bower.json b/Hub/HubWeb/bower.json similarity index 100% rename from bower.json rename to Hub/HubWeb/bower.json diff --git a/fonts/glyphicons-halflings-regular.eot b/Hub/HubWeb/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from fonts/glyphicons-halflings-regular.eot rename to Hub/HubWeb/fonts/glyphicons-halflings-regular.eot diff --git a/fonts/glyphicons-halflings-regular.svg b/Hub/HubWeb/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from fonts/glyphicons-halflings-regular.svg rename to Hub/HubWeb/fonts/glyphicons-halflings-regular.svg diff --git a/fonts/glyphicons-halflings-regular.ttf b/Hub/HubWeb/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from fonts/glyphicons-halflings-regular.ttf rename to Hub/HubWeb/fonts/glyphicons-halflings-regular.ttf diff --git a/fonts/glyphicons-halflings-regular.woff b/Hub/HubWeb/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from fonts/glyphicons-halflings-regular.woff rename to Hub/HubWeb/fonts/glyphicons-halflings-regular.woff diff --git a/gulpfile.js b/Hub/HubWeb/gulpfile.js similarity index 100% rename from gulpfile.js rename to Hub/HubWeb/gulpfile.js diff --git a/package.json b/Hub/HubWeb/package.json similarity index 100% rename from package.json rename to Hub/HubWeb/package.json diff --git a/packages.config b/Hub/HubWeb/packages.config similarity index 100% rename from packages.config rename to Hub/HubWeb/packages.config diff --git a/tsconfig.json b/Hub/HubWeb/tsconfig.json similarity index 100% rename from tsconfig.json rename to Hub/HubWeb/tsconfig.json diff --git a/tsd.json b/Hub/HubWeb/tsd.json similarity index 100% rename from tsd.json rename to Hub/HubWeb/tsd.json diff --git a/typings/tsd.d.ts b/Hub/HubWeb/typings/tsd.d.ts similarity index 100% rename from typings/tsd.d.ts rename to Hub/HubWeb/typings/tsd.d.ts diff --git a/Tests/HubTests/ConfigurationOverride.cs b/Hub/Tests/HubTests/ConfigurationOverride.cs similarity index 100% rename from Tests/HubTests/ConfigurationOverride.cs rename to Hub/Tests/HubTests/ConfigurationOverride.cs diff --git a/Tests/HubTests/Content/DocusignXmlPayload.xml b/Hub/Tests/HubTests/Content/DocusignXmlPayload.xml similarity index 100% rename from Tests/HubTests/Content/DocusignXmlPayload.xml rename to Hub/Tests/HubTests/Content/DocusignXmlPayload.xml diff --git a/Tests/HubTests/Content/DocusignXmlPayload_healthdemo.xml b/Hub/Tests/HubTests/Content/DocusignXmlPayload_healthdemo.xml similarity index 100% rename from Tests/HubTests/Content/DocusignXmlPayload_healthdemo.xml rename to Hub/Tests/HubTests/Content/DocusignXmlPayload_healthdemo.xml diff --git a/Tests/HubTests/Content/DocusignXmlPayload_invalid.xml b/Hub/Tests/HubTests/Content/DocusignXmlPayload_invalid.xml similarity index 100% rename from Tests/HubTests/Content/DocusignXmlPayload_invalid.xml rename to Hub/Tests/HubTests/Content/DocusignXmlPayload_invalid.xml diff --git a/Tests/HubTests/Controllers/ActivityControllerTest.cs b/Hub/Tests/HubTests/Controllers/ActivityControllerTest.cs similarity index 100% rename from Tests/HubTests/Controllers/ActivityControllerTest.cs rename to Hub/Tests/HubTests/Controllers/ActivityControllerTest.cs diff --git a/Tests/HubTests/Controllers/Api/ApiControllerTestBase.cs b/Hub/Tests/HubTests/Controllers/Api/ApiControllerTestBase.cs similarity index 100% rename from Tests/HubTests/Controllers/Api/ApiControllerTestBase.cs rename to Hub/Tests/HubTests/Controllers/Api/ApiControllerTestBase.cs diff --git a/Tests/HubTests/Controllers/AuthenticationControllerTest.cs b/Hub/Tests/HubTests/Controllers/AuthenticationControllerTest.cs similarity index 100% rename from Tests/HubTests/Controllers/AuthenticationControllerTest.cs rename to Hub/Tests/HubTests/Controllers/AuthenticationControllerTest.cs diff --git a/Tests/HubTests/Controllers/ContainerControllerTests.cs b/Hub/Tests/HubTests/Controllers/ContainerControllerTests.cs similarity index 100% rename from Tests/HubTests/Controllers/ContainerControllerTests.cs rename to Hub/Tests/HubTests/Controllers/ContainerControllerTests.cs diff --git a/Tests/HubTests/Controllers/DocumentationControllerTest.cs b/Hub/Tests/HubTests/Controllers/DocumentationControllerTest.cs similarity index 100% rename from Tests/HubTests/Controllers/DocumentationControllerTest.cs rename to Hub/Tests/HubTests/Controllers/DocumentationControllerTest.cs diff --git a/Tests/HubTests/Controllers/EventControllerTest.cs b/Hub/Tests/HubTests/Controllers/EventControllerTest.cs similarity index 100% rename from Tests/HubTests/Controllers/EventControllerTest.cs rename to Hub/Tests/HubTests/Controllers/EventControllerTest.cs diff --git a/Tests/HubTests/Controllers/ManifestControllerTest.cs b/Hub/Tests/HubTests/Controllers/ManifestControllerTest.cs similarity index 100% rename from Tests/HubTests/Controllers/ManifestControllerTest.cs rename to Hub/Tests/HubTests/Controllers/ManifestControllerTest.cs diff --git a/Tests/HubTests/Controllers/NotificationControllerTests.cs b/Hub/Tests/HubTests/Controllers/NotificationControllerTests.cs similarity index 100% rename from Tests/HubTests/Controllers/NotificationControllerTests.cs rename to Hub/Tests/HubTests/Controllers/NotificationControllerTests.cs diff --git a/Tests/HubTests/Controllers/PlanControllerTests.cs b/Hub/Tests/HubTests/Controllers/PlanControllerTests.cs similarity index 100% rename from Tests/HubTests/Controllers/PlanControllerTests.cs rename to Hub/Tests/HubTests/Controllers/PlanControllerTests.cs diff --git a/Tests/HubTests/Controllers/PlanControllerTests_2.cs b/Hub/Tests/HubTests/Controllers/PlanControllerTests_2.cs similarity index 100% rename from Tests/HubTests/Controllers/PlanControllerTests_2.cs rename to Hub/Tests/HubTests/Controllers/PlanControllerTests_2.cs diff --git a/Tests/HubTests/Controllers/UserApiControlle.cs b/Hub/Tests/HubTests/Controllers/UserApiControlle.cs similarity index 100% rename from Tests/HubTests/Controllers/UserApiControlle.cs rename to Hub/Tests/HubTests/Controllers/UserApiControlle.cs diff --git a/Tests/HubTests/Controllers/UserControllerTests.cs b/Hub/Tests/HubTests/Controllers/UserControllerTests.cs similarity index 100% rename from Tests/HubTests/Controllers/UserControllerTests.cs rename to Hub/Tests/HubTests/Controllers/UserControllerTests.cs diff --git a/Tests/HubTests/CsvReaderTests.cs b/Hub/Tests/HubTests/CsvReaderTests.cs similarity index 100% rename from Tests/HubTests/CsvReaderTests.cs rename to Hub/Tests/HubTests/CsvReaderTests.cs diff --git a/Tests/HubTests/Entities/ActivityRegistrationTests.cs b/Hub/Tests/HubTests/Entities/ActivityRegistrationTests.cs similarity index 100% rename from Tests/HubTests/Entities/ActivityRegistrationTests.cs rename to Hub/Tests/HubTests/Entities/ActivityRegistrationTests.cs diff --git a/Tests/HubTests/Entities/ActivityTests .cs b/Hub/Tests/HubTests/Entities/ActivityTests .cs similarity index 100% rename from Tests/HubTests/Entities/ActivityTests .cs rename to Hub/Tests/HubTests/Entities/ActivityTests .cs diff --git a/Tests/HubTests/Entities/CustomerTests.cs b/Hub/Tests/HubTests/Entities/CustomerTests.cs similarity index 100% rename from Tests/HubTests/Entities/CustomerTests.cs rename to Hub/Tests/HubTests/Entities/CustomerTests.cs diff --git a/Tests/HubTests/Entities/EmailAddressTests.cs b/Hub/Tests/HubTests/Entities/EmailAddressTests.cs similarity index 100% rename from Tests/HubTests/Entities/EmailAddressTests.cs rename to Hub/Tests/HubTests/Entities/EmailAddressTests.cs diff --git a/Tests/HubTests/Entities/EnvelopeTests.cs b/Hub/Tests/HubTests/Entities/EnvelopeTests.cs similarity index 100% rename from Tests/HubTests/Entities/EnvelopeTests.cs rename to Hub/Tests/HubTests/Entities/EnvelopeTests.cs diff --git a/Tests/HubTests/Entities/ProcessTemplateTests.cs b/Hub/Tests/HubTests/Entities/ProcessTemplateTests.cs similarity index 100% rename from Tests/HubTests/Entities/ProcessTemplateTests.cs rename to Hub/Tests/HubTests/Entities/ProcessTemplateTests.cs diff --git a/Tests/HubTests/Entities/UserTests.cs b/Hub/Tests/HubTests/Entities/UserTests.cs similarity index 100% rename from Tests/HubTests/Entities/UserTests.cs rename to Hub/Tests/HubTests/Entities/UserTests.cs diff --git a/Tests/HubTests/ExcelUtilsTests.cs b/Hub/Tests/HubTests/ExcelUtilsTests.cs similarity index 100% rename from Tests/HubTests/ExcelUtilsTests.cs rename to Hub/Tests/HubTests/ExcelUtilsTests.cs diff --git a/Tests/HubTests/Fixtures/ActivityResponseFixtureData.cs b/Hub/Tests/HubTests/Fixtures/ActivityResponseFixtureData.cs similarity index 100% rename from Tests/HubTests/Fixtures/ActivityResponseFixtureData.cs rename to Hub/Tests/HubTests/Fixtures/ActivityResponseFixtureData.cs diff --git a/Tests/HubTests/Fixtures/WebServicesControllerFixtureData.cs b/Hub/Tests/HubTests/Fixtures/WebServicesControllerFixtureData.cs similarity index 100% rename from Tests/HubTests/Fixtures/WebServicesControllerFixtureData.cs rename to Hub/Tests/HubTests/Fixtures/WebServicesControllerFixtureData.cs diff --git a/Tests/HubTests/HubTests.csproj b/Hub/Tests/HubTests/HubTests.csproj similarity index 78% rename from Tests/HubTests/HubTests.csproj rename to Hub/Tests/HubTests/HubTests.csproj index 674835d806..3cc741e144 100644 --- a/Tests/HubTests/HubTests.csproj +++ b/Hub/Tests/HubTests/HubTests.csproj @@ -56,148 +56,148 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\Castle.Core.1.2.0\lib\Castle.Core.dll + ..\..\..\packages\Castle.Core.1.2.0\lib\Castle.Core.dll True - ..\..\packages\Castle.DynamicProxy.2.2.0\lib\Castle.DynamicProxy2.dll + ..\..\..\packages\Castle.DynamicProxy.2.2.0\lib\Castle.DynamicProxy2.dll True - ..\..\packages\Castle.Core.1.2.0\lib\Castle.Services.Logging.log4netIntegration.dll + ..\..\..\packages\Castle.Core.1.2.0\lib\Castle.Services.Logging.log4netIntegration.dll True - ..\..\packages\Castle.Core.1.2.0\lib\Castle.Services.Logging.NLogIntegration.dll + ..\..\..\packages\Castle.Core.1.2.0\lib\Castle.Services.Logging.NLogIntegration.dll True ..\..\lib\DayPilot.Web.Mvc.dll - ..\..\packages\DocuSign.Integration.Client.dll.1.6.1\lib\DocuSign.Integration.Client.dll + ..\..\..\packages\DocuSign.Integration.Client.dll.1.6.1\lib\DocuSign.Integration.Client.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.AspNet.Identity.Core.2.0.1\lib\net45\Microsoft.AspNet.Identity.Core.dll + ..\..\..\packages\Microsoft.AspNet.Identity.Core.2.0.1\lib\net45\Microsoft.AspNet.Identity.Core.dll True - ..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.1\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll + ..\..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.1\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll True - ..\..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll + ..\..\..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll True - ..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll True - ..\..\packages\Microsoft.Data.OData.5.6.4\lib\net40\Microsoft.Data.OData.dll + ..\..\..\packages\Microsoft.Data.OData.5.6.4\lib\net40\Microsoft.Data.OData.dll True - ..\..\packages\Microsoft.Data.Services.Client.5.6.4\lib\net40\Microsoft.Data.Services.Client.dll + ..\..\..\packages\Microsoft.Data.Services.Client.5.6.4\lib\net40\Microsoft.Data.Services.Client.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Microsoft.Owin.Security.3.0.1\lib\net45\Microsoft.Owin.Security.dll + ..\..\..\packages\Microsoft.Owin.Security.3.0.1\lib\net45\Microsoft.Owin.Security.dll True - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll + ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll True - ..\..\packages\WindowsAzure.Storage.5.0.2\lib\net40\Microsoft.WindowsAzure.Storage.dll + ..\..\..\packages\WindowsAzure.Storage.5.0.2\lib\net40\Microsoft.WindowsAzure.Storage.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NLog.1.0.0.505\lib\NLog.dll + ..\..\..\packages\NLog.1.0.0.505\lib\NLog.dll True - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll True - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\..\packages\SendGrid.SmtpApi.1.1.3\lib\net40\SendGrid.SmtpApi.dll + ..\..\..\packages\SendGrid.SmtpApi.1.1.3\lib\net40\SendGrid.SmtpApi.dll True - ..\..\packages\Sendgrid.5.0.0\lib\SendGridMail.dll + ..\..\..\packages\Sendgrid.5.0.0\lib\SendGridMail.dll True False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll @@ -205,62 +205,62 @@ - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\System.Spatial.5.6.4\lib\net40\System.Spatial.dll + ..\..\..\packages\System.Spatial.5.6.4\lib\net40\System.Spatial.dll True - ..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll + ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True - ..\..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll + ..\..\..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll True - ..\..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll + ..\..\..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll True - ..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll + ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll True - ..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll + ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll True - ..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll + ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll True - ..\..\packages\Twilio.4.1.0\lib\3.5\Twilio.Api.dll + ..\..\..\packages\Twilio.4.1.0\lib\3.5\Twilio.Api.dll True - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -365,15 +365,15 @@ {990241ea-6cf0-4026-b57c-a9031463c7c0} Data
    - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {f7bd7117-4f1d-4215-b338-61ebdd0d0bfe} HubWeb @@ -381,23 +381,23 @@ {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + {d019b112-55a8-4661-aff5-329f998d9e28} terminalAzure - + {57373d06-6b82-4ec6-af62-ed25fe170c61} terminalExcel - + {ad226a7f-0641-4589-93eb-06e5ee7e767b} terminalFr8Core - + {e46b602a-287b-450f-b455-5eed20c93eb7} terminalUtilities - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing @@ -482,9 +482,9 @@ - + - - + +
    \ No newline at end of file diff --git a/Tests/HubTests/Infrastructure/Fr8HubWebHMACAuthenticateAttributeTests.cs b/Hub/Tests/HubTests/Infrastructure/Fr8HubWebHMACAuthenticateAttributeTests.cs similarity index 100% rename from Tests/HubTests/Infrastructure/Fr8HubWebHMACAuthenticateAttributeTests.cs rename to Hub/Tests/HubTests/Infrastructure/Fr8HubWebHMACAuthenticateAttributeTests.cs diff --git a/Tests/HubTests/Infrastructure/MultiTenantTests.cs b/Hub/Tests/HubTests/Infrastructure/MultiTenantTests.cs similarity index 100% rename from Tests/HubTests/Infrastructure/MultiTenantTests.cs rename to Hub/Tests/HubTests/Infrastructure/MultiTenantTests.cs diff --git a/Tests/HubTests/Integration/AccountITests.cs b/Hub/Tests/HubTests/Integration/AccountITests.cs similarity index 100% rename from Tests/HubTests/Integration/AccountITests.cs rename to Hub/Tests/HubTests/Integration/AccountITests.cs diff --git a/Tests/HubTests/Integration/ActivityControllerTests.cs b/Hub/Tests/HubTests/Integration/ActivityControllerTests.cs similarity index 100% rename from Tests/HubTests/Integration/ActivityControllerTests.cs rename to Hub/Tests/HubTests/Integration/ActivityControllerTests.cs diff --git a/Tests/HubTests/Integration/SwaggerTests.cs b/Hub/Tests/HubTests/Integration/SwaggerTests.cs similarity index 100% rename from Tests/HubTests/Integration/SwaggerTests.cs rename to Hub/Tests/HubTests/Integration/SwaggerTests.cs diff --git a/Tests/HubTests/Integration/WebServicesControllerTests.cs b/Hub/Tests/HubTests/Integration/WebServicesControllerTests.cs similarity index 100% rename from Tests/HubTests/Integration/WebServicesControllerTests.cs rename to Hub/Tests/HubTests/Integration/WebServicesControllerTests.cs diff --git a/Tests/Fr8.Testing.Integration.Tools/LICENSE b/Hub/Tests/HubTests/LICENSE similarity index 100% rename from Tests/Fr8.Testing.Integration.Tools/LICENSE rename to Hub/Tests/HubTests/LICENSE diff --git a/Tests/HubTests/Managers/CommunicationManagerTest.cs b/Hub/Tests/HubTests/Managers/CommunicationManagerTest.cs similarity index 100% rename from Tests/HubTests/Managers/CommunicationManagerTest.cs rename to Hub/Tests/HubTests/Managers/CommunicationManagerTest.cs diff --git a/Tests/HubTests/Managers/CrateManagerTests.Fixtures.cs b/Hub/Tests/HubTests/Managers/CrateManagerTests.Fixtures.cs similarity index 100% rename from Tests/HubTests/Managers/CrateManagerTests.Fixtures.cs rename to Hub/Tests/HubTests/Managers/CrateManagerTests.Fixtures.cs diff --git a/Tests/HubTests/Managers/CrateManagerTests.cs b/Hub/Tests/HubTests/Managers/CrateManagerTests.cs similarity index 100% rename from Tests/HubTests/Managers/CrateManagerTests.cs rename to Hub/Tests/HubTests/Managers/CrateManagerTests.cs diff --git a/Tests/HubTests/Managers/EventReporterTests.cs b/Hub/Tests/HubTests/Managers/EventReporterTests.cs similarity index 100% rename from Tests/HubTests/Managers/EventReporterTests.cs rename to Hub/Tests/HubTests/Managers/EventReporterTests.cs diff --git a/Tests/HubTests/Managers/IncidentReporterTests.cs b/Hub/Tests/HubTests/Managers/IncidentReporterTests.cs similarity index 100% rename from Tests/HubTests/Managers/IncidentReporterTests.cs rename to Hub/Tests/HubTests/Managers/IncidentReporterTests.cs diff --git a/Tests/HubTests/ManifestDiscoveryTests.cs b/Hub/Tests/HubTests/ManifestDiscoveryTests.cs similarity index 100% rename from Tests/HubTests/ManifestDiscoveryTests.cs rename to Hub/Tests/HubTests/ManifestDiscoveryTests.cs diff --git a/Tests/HubTests/MockedDB/MockedDBTests.cs b/Hub/Tests/HubTests/MockedDB/MockedDBTests.cs similarity index 100% rename from Tests/HubTests/MockedDB/MockedDBTests.cs rename to Hub/Tests/HubTests/MockedDB/MockedDBTests.cs diff --git a/Tests/HubTests/MockedDB/MoqDemoTests.cs b/Hub/Tests/HubTests/MockedDB/MoqDemoTests.cs similarity index 100% rename from Tests/HubTests/MockedDB/MoqDemoTests.cs rename to Hub/Tests/HubTests/MockedDB/MoqDemoTests.cs diff --git a/Tests/HubTests/Properties/AssemblyInfo.cs b/Hub/Tests/HubTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/HubTests/Properties/AssemblyInfo.cs rename to Hub/Tests/HubTests/Properties/AssemblyInfo.cs diff --git a/Tests/HubTests/Repositories/AuthorizationTokenRepositoryTests.cs b/Hub/Tests/HubTests/Repositories/AuthorizationTokenRepositoryTests.cs similarity index 100% rename from Tests/HubTests/Repositories/AuthorizationTokenRepositoryTests.cs rename to Hub/Tests/HubTests/Repositories/AuthorizationTokenRepositoryTests.cs diff --git a/Tests/HubTests/Repositories/Encryption/EncryptionServiceTests.cs b/Hub/Tests/HubTests/Repositories/Encryption/EncryptionServiceTests.cs similarity index 100% rename from Tests/HubTests/Repositories/Encryption/EncryptionServiceTests.cs rename to Hub/Tests/HubTests/Repositories/Encryption/EncryptionServiceTests.cs diff --git a/Tests/HubTests/Repositories/Encryption/EncryptionTests.cs b/Hub/Tests/HubTests/Repositories/Encryption/EncryptionTests.cs similarity index 100% rename from Tests/HubTests/Repositories/Encryption/EncryptionTests.cs rename to Hub/Tests/HubTests/Repositories/Encryption/EncryptionTests.cs diff --git a/Tests/HubTests/Repositories/Encryption/RijndaelEncryptionProviderTests.cs b/Hub/Tests/HubTests/Repositories/Encryption/RijndaelEncryptionProviderTests.cs similarity index 100% rename from Tests/HubTests/Repositories/Encryption/RijndaelEncryptionProviderTests.cs rename to Hub/Tests/HubTests/Repositories/Encryption/RijndaelEncryptionProviderTests.cs diff --git a/Tests/HubTests/Repositories/MultiTenantObjectRepositoryTests.cs b/Hub/Tests/HubTests/Repositories/MultiTenantObjectRepositoryTests.cs similarity index 100% rename from Tests/HubTests/Repositories/MultiTenantObjectRepositoryTests.cs rename to Hub/Tests/HubTests/Repositories/MultiTenantObjectRepositoryTests.cs diff --git a/Tests/HubTests/Repositories/Plan/PersistentPlanStorage.cs b/Hub/Tests/HubTests/Repositories/Plan/PersistentPlanStorage.cs similarity index 100% rename from Tests/HubTests/Repositories/Plan/PersistentPlanStorage.cs rename to Hub/Tests/HubTests/Repositories/Plan/PersistentPlanStorage.cs diff --git a/Tests/HubTests/Repositories/Plan/PlanCacheTests.cs b/Hub/Tests/HubTests/Repositories/Plan/PlanCacheTests.cs similarity index 100% rename from Tests/HubTests/Repositories/Plan/PlanCacheTests.cs rename to Hub/Tests/HubTests/Repositories/Plan/PlanCacheTests.cs diff --git a/Tests/HubTests/Repositories/Plan/PlanRepositoryTests.cs b/Hub/Tests/HubTests/Repositories/Plan/PlanRepositoryTests.cs similarity index 100% rename from Tests/HubTests/Repositories/Plan/PlanRepositoryTests.cs rename to Hub/Tests/HubTests/Repositories/Plan/PlanRepositoryTests.cs diff --git a/Tests/HubTests/Repositories/Plan/PlanSnapshotTests.cs b/Hub/Tests/HubTests/Repositories/Plan/PlanSnapshotTests.cs similarity index 100% rename from Tests/HubTests/Repositories/Plan/PlanSnapshotTests.cs rename to Hub/Tests/HubTests/Repositories/Plan/PlanSnapshotTests.cs diff --git a/Tests/HubTests/Security/AuthorizationMethodsTests.cs b/Hub/Tests/HubTests/Security/AuthorizationMethodsTests.cs similarity index 100% rename from Tests/HubTests/Security/AuthorizationMethodsTests.cs rename to Hub/Tests/HubTests/Security/AuthorizationMethodsTests.cs diff --git a/Tests/HubTests/Services/AccountTest.cs b/Hub/Tests/HubTests/Services/AccountTest.cs similarity index 100% rename from Tests/HubTests/Services/AccountTest.cs rename to Hub/Tests/HubTests/Services/AccountTest.cs diff --git a/Tests/HubTests/Services/ActivityServiceTests.cs b/Hub/Tests/HubTests/Services/ActivityServiceTests.cs similarity index 100% rename from Tests/HubTests/Services/ActivityServiceTests.cs rename to Hub/Tests/HubTests/Services/ActivityServiceTests.cs diff --git a/Tests/HubTests/Services/ActivityTemplateTests.cs b/Hub/Tests/HubTests/Services/ActivityTemplateTests.cs similarity index 100% rename from Tests/HubTests/Services/ActivityTemplateTests.cs rename to Hub/Tests/HubTests/Services/ActivityTemplateTests.cs diff --git a/Tests/HubTests/Services/AuthorizationTests.cs b/Hub/Tests/HubTests/Services/AuthorizationTests.cs similarity index 100% rename from Tests/HubTests/Services/AuthorizationTests.cs rename to Hub/Tests/HubTests/Services/AuthorizationTests.cs diff --git a/Tests/HubTests/Services/Container/ActivityExecutionCall.cs b/Hub/Tests/HubTests/Services/Container/ActivityExecutionCall.cs similarity index 100% rename from Tests/HubTests/Services/Container/ActivityExecutionCall.cs rename to Hub/Tests/HubTests/Services/Container/ActivityExecutionCall.cs diff --git a/Tests/HubTests/Services/Container/ActivityExecutionMock.cs b/Hub/Tests/HubTests/Services/Container/ActivityExecutionMock.cs similarity index 100% rename from Tests/HubTests/Services/Container/ActivityExecutionMock.cs rename to Hub/Tests/HubTests/Services/Container/ActivityExecutionMock.cs diff --git a/Tests/HubTests/Services/Container/ActivityMockBase.cs b/Hub/Tests/HubTests/Services/Container/ActivityMockBase.cs similarity index 100% rename from Tests/HubTests/Services/Container/ActivityMockBase.cs rename to Hub/Tests/HubTests/Services/Container/ActivityMockBase.cs diff --git a/Tests/HubTests/Services/Container/ContainerExecutionTestBase.cs b/Hub/Tests/HubTests/Services/Container/ContainerExecutionTestBase.cs similarity index 100% rename from Tests/HubTests/Services/Container/ContainerExecutionTestBase.cs rename to Hub/Tests/HubTests/Services/Container/ContainerExecutionTestBase.cs diff --git a/Tests/HubTests/Services/Container/ContainerExecutionTests.cs b/Hub/Tests/HubTests/Services/Container/ContainerExecutionTests.cs similarity index 100% rename from Tests/HubTests/Services/Container/ContainerExecutionTests.cs rename to Hub/Tests/HubTests/Services/Container/ContainerExecutionTests.cs diff --git a/Tests/HubTests/Services/Container/ContainerServiceTests.cs b/Hub/Tests/HubTests/Services/Container/ContainerServiceTests.cs similarity index 100% rename from Tests/HubTests/Services/Container/ContainerServiceTests.cs rename to Hub/Tests/HubTests/Services/Container/ContainerServiceTests.cs diff --git a/Tests/HubTests/Services/Container/Mocks/CallerActivityMock.cs b/Hub/Tests/HubTests/Services/Container/Mocks/CallerActivityMock.cs similarity index 100% rename from Tests/HubTests/Services/Container/Mocks/CallerActivityMock.cs rename to Hub/Tests/HubTests/Services/Container/Mocks/CallerActivityMock.cs diff --git a/Tests/HubTests/Services/Container/Mocks/JumpToSelfActivityMock.cs b/Hub/Tests/HubTests/Services/Container/Mocks/JumpToSelfActivityMock.cs similarity index 100% rename from Tests/HubTests/Services/Container/Mocks/JumpToSelfActivityMock.cs rename to Hub/Tests/HubTests/Services/Container/Mocks/JumpToSelfActivityMock.cs diff --git a/Tests/HubTests/Services/Container/Mocks/JumperActivityMock.cs b/Hub/Tests/HubTests/Services/Container/Mocks/JumperActivityMock.cs similarity index 100% rename from Tests/HubTests/Services/Container/Mocks/JumperActivityMock.cs rename to Hub/Tests/HubTests/Services/Container/Mocks/JumperActivityMock.cs diff --git a/Tests/HubTests/Services/Container/Mocks/LooperActivityMock.cs b/Hub/Tests/HubTests/Services/Container/Mocks/LooperActivityMock.cs similarity index 100% rename from Tests/HubTests/Services/Container/Mocks/LooperActivityMock.cs rename to Hub/Tests/HubTests/Services/Container/Mocks/LooperActivityMock.cs diff --git a/Tests/HubTests/Services/Container/Mocks/SubplanJumperActivityMock.cs b/Hub/Tests/HubTests/Services/Container/Mocks/SubplanJumperActivityMock.cs similarity index 100% rename from Tests/HubTests/Services/Container/Mocks/SubplanJumperActivityMock.cs rename to Hub/Tests/HubTests/Services/Container/Mocks/SubplanJumperActivityMock.cs diff --git a/Tests/HubTests/Services/Container/Mocks/SuspenderActivityMock.cs b/Hub/Tests/HubTests/Services/Container/Mocks/SuspenderActivityMock.cs similarity index 100% rename from Tests/HubTests/Services/Container/Mocks/SuspenderActivityMock.cs rename to Hub/Tests/HubTests/Services/Container/Mocks/SuspenderActivityMock.cs diff --git a/Tests/HubTests/Services/ContainerTests.cs b/Hub/Tests/HubTests/Services/ContainerTests.cs similarity index 100% rename from Tests/HubTests/Services/ContainerTests.cs rename to Hub/Tests/HubTests/Services/ContainerTests.cs diff --git a/Tests/HubTests/Services/DisableCacheSettings.cs b/Hub/Tests/HubTests/Services/DisableCacheSettings.cs similarity index 100% rename from Tests/HubTests/Services/DisableCacheSettings.cs rename to Hub/Tests/HubTests/Services/DisableCacheSettings.cs diff --git a/Tests/HubTests/Services/EventTests.cs b/Hub/Tests/HubTests/Services/EventTests.cs similarity index 100% rename from Tests/HubTests/Services/EventTests.cs rename to Hub/Tests/HubTests/Services/EventTests.cs diff --git a/Tests/HubTests/Services/FileTests.cs b/Hub/Tests/HubTests/Services/FileTests.cs similarity index 100% rename from Tests/HubTests/Services/FileTests.cs rename to Hub/Tests/HubTests/Services/FileTests.cs diff --git a/Tests/HubTests/Services/HMACAuthenticatorTests.cs b/Hub/Tests/HubTests/Services/HMACAuthenticatorTests.cs similarity index 100% rename from Tests/HubTests/Services/HMACAuthenticatorTests.cs rename to Hub/Tests/HubTests/Services/HMACAuthenticatorTests.cs diff --git a/Tests/HubTests/Services/PlanNodeTests.cs b/Hub/Tests/HubTests/Services/PlanNodeTests.cs similarity index 100% rename from Tests/HubTests/Services/PlanNodeTests.cs rename to Hub/Tests/HubTests/Services/PlanNodeTests.cs diff --git a/Tests/HubTests/Services/PlanTests.cs b/Hub/Tests/HubTests/Services/PlanTests.cs similarity index 100% rename from Tests/HubTests/Services/PlanTests.cs rename to Hub/Tests/HubTests/Services/PlanTests.cs diff --git a/Tests/HubTests/Services/TagTests.cs b/Hub/Tests/HubTests/Services/TagTests.cs similarity index 100% rename from Tests/HubTests/Services/TagTests.cs rename to Hub/Tests/HubTests/Services/TagTests.cs diff --git a/Tests/HubTests/Services/TerminalServiceTests.cs b/Hub/Tests/HubTests/Services/TerminalServiceTests.cs similarity index 100% rename from Tests/HubTests/Services/TerminalServiceTests.cs rename to Hub/Tests/HubTests/Services/TerminalServiceTests.cs diff --git a/Tests/HubTests/Services/TerminalTransmitterMock.cs b/Hub/Tests/HubTests/Services/TerminalTransmitterMock.cs similarity index 100% rename from Tests/HubTests/Services/TerminalTransmitterMock.cs rename to Hub/Tests/HubTests/Services/TerminalTransmitterMock.cs diff --git a/Tests/HubTests/Services/UserServiceTests.cs b/Hub/Tests/HubTests/Services/UserServiceTests.cs similarity index 100% rename from Tests/HubTests/Services/UserServiceTests.cs rename to Hub/Tests/HubTests/Services/UserServiceTests.cs diff --git a/Tests/HubTests/Tools/FileTools/TestFiles/10Columns.xls b/Hub/Tests/HubTests/Tools/FileTools/TestFiles/10Columns.xls similarity index 100% rename from Tests/HubTests/Tools/FileTools/TestFiles/10Columns.xls rename to Hub/Tests/HubTests/Tools/FileTools/TestFiles/10Columns.xls diff --git a/Tests/HubTests/Tools/FileTools/TestFiles/10Columns.xlsx b/Hub/Tests/HubTests/Tools/FileTools/TestFiles/10Columns.xlsx similarity index 100% rename from Tests/HubTests/Tools/FileTools/TestFiles/10Columns.xlsx rename to Hub/Tests/HubTests/Tools/FileTools/TestFiles/10Columns.xlsx diff --git a/Tests/HubTests/Tools/FileTools/TestFiles/1Column.xls b/Hub/Tests/HubTests/Tools/FileTools/TestFiles/1Column.xls similarity index 100% rename from Tests/HubTests/Tools/FileTools/TestFiles/1Column.xls rename to Hub/Tests/HubTests/Tools/FileTools/TestFiles/1Column.xls diff --git a/Tests/HubTests/Tools/FileTools/TestFiles/1Column.xlsx b/Hub/Tests/HubTests/Tools/FileTools/TestFiles/1Column.xlsx similarity index 100% rename from Tests/HubTests/Tools/FileTools/TestFiles/1Column.xlsx rename to Hub/Tests/HubTests/Tools/FileTools/TestFiles/1Column.xlsx diff --git a/Tests/HubTests/Tools/FileTools/TestFiles/2Columns.xls b/Hub/Tests/HubTests/Tools/FileTools/TestFiles/2Columns.xls similarity index 100% rename from Tests/HubTests/Tools/FileTools/TestFiles/2Columns.xls rename to Hub/Tests/HubTests/Tools/FileTools/TestFiles/2Columns.xls diff --git a/Tests/HubTests/Tools/FileTools/TestFiles/2Columns.xlsx b/Hub/Tests/HubTests/Tools/FileTools/TestFiles/2Columns.xlsx similarity index 100% rename from Tests/HubTests/Tools/FileTools/TestFiles/2Columns.xlsx rename to Hub/Tests/HubTests/Tools/FileTools/TestFiles/2Columns.xlsx diff --git a/Tests/HubTests/Tools/FileTools/TestFiles/3Columns.xls b/Hub/Tests/HubTests/Tools/FileTools/TestFiles/3Columns.xls similarity index 100% rename from Tests/HubTests/Tools/FileTools/TestFiles/3Columns.xls rename to Hub/Tests/HubTests/Tools/FileTools/TestFiles/3Columns.xls diff --git a/Tests/HubTests/Tools/FileTools/TestFiles/3Columns.xlsx b/Hub/Tests/HubTests/Tools/FileTools/TestFiles/3Columns.xlsx similarity index 100% rename from Tests/HubTests/Tools/FileTools/TestFiles/3Columns.xlsx rename to Hub/Tests/HubTests/Tools/FileTools/TestFiles/3Columns.xlsx diff --git a/Tests/HubTests/Tools/FileTools/TestFiles/SampleFile1.xlsx b/Hub/Tests/HubTests/Tools/FileTools/TestFiles/SampleFile1.xlsx similarity index 100% rename from Tests/HubTests/Tools/FileTools/TestFiles/SampleFile1.xlsx rename to Hub/Tests/HubTests/Tools/FileTools/TestFiles/SampleFile1.xlsx diff --git a/Tests/HubTests/Tools/FileTools/TestFiles/small_pdf_file.pdf b/Hub/Tests/HubTests/Tools/FileTools/TestFiles/small_pdf_file.pdf similarity index 100% rename from Tests/HubTests/Tools/FileTools/TestFiles/small_pdf_file.pdf rename to Hub/Tests/HubTests/Tools/FileTools/TestFiles/small_pdf_file.pdf diff --git a/Tests/HubTests/Utilities/DateUtilityTests.cs b/Hub/Tests/HubTests/Utilities/DateUtilityTests.cs similarity index 100% rename from Tests/HubTests/Utilities/DateUtilityTests.cs rename to Hub/Tests/HubTests/Utilities/DateUtilityTests.cs diff --git a/Tests/HubTests/Utilization/ActivityExecutionRateLimiterIntTests.cs b/Hub/Tests/HubTests/Utilization/ActivityExecutionRateLimiterIntTests.cs similarity index 100% rename from Tests/HubTests/Utilization/ActivityExecutionRateLimiterIntTests.cs rename to Hub/Tests/HubTests/Utilization/ActivityExecutionRateLimiterIntTests.cs diff --git a/Tests/HubTests/Utilization/ActivityExecutionRateLimiterTests.cs b/Hub/Tests/HubTests/Utilization/ActivityExecutionRateLimiterTests.cs similarity index 100% rename from Tests/HubTests/Utilization/ActivityExecutionRateLimiterTests.cs rename to Hub/Tests/HubTests/Utilization/ActivityExecutionRateLimiterTests.cs diff --git a/Tests/HubTests/Utilization/ManualyTriggeredTimer.cs b/Hub/Tests/HubTests/Utilization/ManualyTriggeredTimer.cs similarity index 100% rename from Tests/HubTests/Utilization/ManualyTriggeredTimer.cs rename to Hub/Tests/HubTests/Utilization/ManualyTriggeredTimer.cs diff --git a/Tests/HubTests/Utilization/UtilizationMonitoringTests.cs b/Hub/Tests/HubTests/Utilization/UtilizationMonitoringTests.cs similarity index 100% rename from Tests/HubTests/Utilization/UtilizationMonitoringTests.cs rename to Hub/Tests/HubTests/Utilization/UtilizationMonitoringTests.cs diff --git a/Tests/HubTests/Wrapper/DcousingAccountTest.cs b/Hub/Tests/HubTests/Wrapper/DcousingAccountTest.cs similarity index 100% rename from Tests/HubTests/Wrapper/DcousingAccountTest.cs rename to Hub/Tests/HubTests/Wrapper/DcousingAccountTest.cs diff --git a/Tests/HubTests/app.config b/Hub/Tests/HubTests/app.config similarity index 99% rename from Tests/HubTests/app.config rename to Hub/Tests/HubTests/app.config index ac977428f9..d8026763d4 100644 --- a/Tests/HubTests/app.config +++ b/Hub/Tests/HubTests/app.config @@ -23,7 +23,7 @@ --> - + diff --git a/Tests/HubTests/packages.config b/Hub/Tests/HubTests/packages.config similarity index 100% rename from Tests/HubTests/packages.config rename to Hub/Tests/HubTests/packages.config diff --git a/IDaemon.cs b/IDaemon.cs deleted file mode 100644 index 9cf1c97601..0000000000 --- a/IDaemon.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Shnexy -{ - public interface IDaemon - { - int WaitTimeBetweenExecution { get; } - void Start(); - void Stop(); - } -} diff --git a/Infrastructure/Communication/RestfulServiceClient.cs b/Infrastructure/Communication/RestfulServiceClient.cs deleted file mode 100644 index babe9e4693..0000000000 --- a/Infrastructure/Communication/RestfulServiceClient.cs +++ /dev/null @@ -1,347 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Globalization; -using System.IO; -using System.Net.Http; -using System.Net.Http.Formatting; -using System.Threading.Tasks; -using Fr8Infrastructure.Interfaces; -using log4net; -using Utilities.Logging; - -namespace Fr8Infrastructure.Communication -{ - public class RestfulServiceClient : IRestfulServiceClient - { - private static readonly ILog Log = Logger.GetLogger(); - private const string HttpLogFormat = "--New Request--\nIsSuccess: {0}\nFinished: {1}\nTotal Elapsed: {2}\nCorrelation ID: {3}\nHttp Status: {4}({5})\n"; - class FormatterLogger : IFormatterLogger - { - public void LogError(string message, Exception ex) - { - //Log.Error(message, ex); - Logger.LogError($"{message}. Exception = {ex}"); - } - - public void LogError(string errorPath, string errorMessage) - { - //Log.Error(string.Format("{0}: {1}", errorPath, errorMessage)) - Logger.LogError($"{errorPath}: {errorMessage}"); - } - } - - private readonly HttpClient _innerClient; - private readonly MediaTypeFormatter _formatter; - private readonly FormatterLogger _formatterLogger; - - /// - /// Creates an instance with JSON formatter for requests and responses - /// - public RestfulServiceClient() - : this(new JsonMediaTypeFormatter(), null) - { - } - - public RestfulServiceClient(HttpClient _client) - : this(new JsonMediaTypeFormatter(), _client) - { - } - - /// - /// Creates an instance with specified formatter for requests and responses - /// - public RestfulServiceClient(MediaTypeFormatter formatter, HttpClient client) - { - if (client == null) - { - client = new HttpClient(); - -#if DEBUG - client.Timeout = new TimeSpan(0, 10, 0); //5 minutes -#else - client.Timeout = new TimeSpan(0, 2, 0); //2 minutes -#endif - } - - _innerClient = client; - _formatter = formatter; - _formatterLogger = new FormatterLogger(); - } - - protected virtual async Task SendInternalAsync(HttpRequestMessage request, string CorrelationId) - { - HttpResponseMessage response; - string responseContent = ""; - int statusCode = -1; - - var stopWatch = Stopwatch.StartNew(); - Exception raisedException = null; - string prettyStatusCode = null; - try - { - response = await _innerClient.SendAsync(request); - responseContent = await response.Content.ReadAsStringAsync(); - prettyStatusCode = response.StatusCode.ToString(); - statusCode = (int)response.StatusCode; - response.EnsureSuccessStatusCode(); - } - catch (HttpRequestException ex) - { - raisedException = ex; - string errorMessage = String.Format("An error has ocurred while sending a {0} request to {1}. Response message: {2}", - request.RequestUri, - request.Method.Method, - ExtractErrorMessage(responseContent)); - throw new RestfulServiceException(statusCode, errorMessage, ex); - } - catch (TaskCanceledException ex) - { - raisedException = ex; - //Timeout - throw new TimeoutException( - String.Format("Timeout while making HTTP request. \r\nURL: {0}, \r\nMethod: {1}", - request.RequestUri, - request.Method.Method)); - } - catch (Exception ex) - { - raisedException = ex; - string errorMessage = String.Format("An error has ocurred while sending a {0} request to {1}.", - request.RequestUri, - request.Method.Method); - throw new ApplicationException(errorMessage); - } - finally - { - stopWatch.Stop(); - var isSuccess = raisedException == null; - //log details - var logDetails = string.Format(HttpLogFormat, isSuccess ? "YES" : "NO", - DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture), - stopWatch.ElapsedMilliseconds.ToString(CultureInfo.InvariantCulture), - CorrelationId, statusCode, prettyStatusCode); - - // This code tends to eat a lot of processor time on my macine and blocks. - /*if (isSuccess) - { - Log.Info(logDetails); - } - else - { - Log.Error(logDetails, raisedException); - }*/ - } - return response; - } - - //private async Task SendInternalAsync(HttpRequestMessage request) - //{ - // var response = await _innerClient.SendAsync(request); - // var responseContent = await response.Content.ReadAsStringAsync(); - // try - // { - // response.EnsureSuccessStatusCode(); - // } - // catch (HttpRequestException ex) - // { - // var errorMessage = ExtractErrorMessage(responseContent); - // throw new RestfulServiceException(errorMessage, ex); - // } - // return response; - //} - - protected virtual string ExtractErrorMessage(string responseContent) - { - return responseContent; - } - - #region InternalRequestMethods - private async Task GetInternalAsync(Uri requestUri, string CorrelationId, Dictionary headers) - { - using (var request = new HttpRequestMessage(HttpMethod.Get, requestUri)) - { - AddHeaders(request, headers); - return await SendInternalAsync(request, CorrelationId); - } - } - - private async Task PostInternalAsync(Uri requestUri, string CorrelationId, Dictionary headers) - { - using (var request = new HttpRequestMessage(HttpMethod.Post, requestUri)) - { - AddHeaders(request, headers); - return await SendInternalAsync(request, CorrelationId); - } - } - - private async Task PostInternalAsync(Uri requestUri, HttpContent content, string CorrelationId, Dictionary headers) - { - using (var request = new HttpRequestMessage(HttpMethod.Post, requestUri) { Content = content }) - { - AddHeaders(request, headers); - return await SendInternalAsync(request, CorrelationId); - } - } - private async Task DeleteInternalAsync(Uri requestUri, string CorrelationId, Dictionary headers) - { - using (var request = new HttpRequestMessage(HttpMethod.Delete, requestUri)) - { - AddHeaders(request, headers); - var response = await SendInternalAsync(request, CorrelationId); - response.Dispose(); - } - } - private async Task PutInternalAsync(Uri requestUri, HttpContent content, string CorrelationId, Dictionary headers) - { - using (var request = new HttpRequestMessage(HttpMethod.Put, requestUri) { Content = content }) - { - AddHeaders(request, headers); - return await SendInternalAsync(request, CorrelationId); - } - } - - #endregion - - private void AddHeaders(HttpRequestMessage request, Dictionary headers) - { - if (headers != null) - { - foreach (KeyValuePair entry in headers) - { - request.Headers.Add(entry.Key, entry.Value); - } - } - } - - private async Task DeserializeResponseAsync(HttpResponseMessage response) - { - var responseStream = await response.Content.ReadAsStreamAsync(); - - var responseObject = await _formatter.ReadFromStreamAsync( - typeof(T), - responseStream, - response.Content, - _formatterLogger); - - return (T)responseObject; - } - - public Uri BaseUri - { - get { return _innerClient.BaseAddress; } - set { _innerClient.BaseAddress = value; } - } - - #region GenericRequestMethods - /// - /// Downloads file as a MemoryStream from given URL - /// - /// - /// - /// - /// MemoryStream - public async Task DownloadAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null) - { - using (var response = await GetInternalAsync(requestUri, CorrelationId, headers)) - { - //copy stream because response will be disposed on return - var downloadedFile = await response.Content.ReadAsStreamAsync(); - var copy = new MemoryStream(); - await downloadedFile.CopyToAsync(copy); - //rewind stream - copy.Position = 0; - return copy; - } - } - - public async Task GetAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null) - { - using (var response = await GetInternalAsync(requestUri, CorrelationId, headers)) - { - return await DeserializeResponseAsync(response); - } - } - - public async Task GetAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null) - { - using (var response = await GetInternalAsync(requestUri, CorrelationId, headers)) - { - return await response.Content.ReadAsStringAsync(); - } - } - - public async Task PostAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null) - { - using (var response = await PostInternalAsync(requestUri, CorrelationId, headers)) - { - return await DeserializeResponseAsync(response); - } - } - - public async Task PostAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null) - { - using (var response = await PostInternalAsync(requestUri, CorrelationId, headers)) - { - return await response.Content.ReadAsStringAsync(); - } - } - - public async Task PostAsync(Uri requestUri, TContent content, string CorrelationId = null, Dictionary headers = null) - { - return await PostAsync(requestUri, (HttpContent)new ObjectContent(typeof(TContent), content, _formatter), CorrelationId, headers); - } - - public async Task PostAsync(Uri requestUri, TContent content, string CorrelationId = null, Dictionary headers = null) - { - return await PostAsync(requestUri, new ObjectContent(typeof(TContent), content, _formatter), CorrelationId, headers); - } - public async Task PutAsync(Uri requestUri, TContent content, string CorrelationId = null, Dictionary headers = null) - { - return await PutAsync(requestUri, new ObjectContent(typeof(TContent), content, _formatter), CorrelationId, headers); - } - public async Task PutAsync(Uri requestUri, TContent content, string CorrelationId = null, Dictionary headers = null) - { - return await PutAsync(requestUri, (HttpContent)new ObjectContent(typeof(TContent), content, _formatter), CorrelationId, headers); - } - - #endregion - - #region HttpContentRequestMethods - public async Task PostAsync(Uri requestUri, HttpContent content, string CorrelationId = null, Dictionary headers = null) - { - using (var response = await PostInternalAsync(requestUri, content, CorrelationId, headers)) - { - return await response.Content.ReadAsStringAsync(); - } - } - public async Task PostAsync(Uri requestUri, HttpContent content, string CorrelationId = null, Dictionary headers = null) - { - using (var response = await PostInternalAsync(requestUri, content, CorrelationId, headers)) - { - return await DeserializeResponseAsync(response); - } - } - public async Task DeleteAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null) - { - await DeleteInternalAsync(requestUri, CorrelationId, headers); - } - public async Task PutAsync(Uri requestUri, HttpContent content, string CorrelationId = null, Dictionary headers = null) - { - using (var response = await PutInternalAsync(requestUri, content, CorrelationId, headers)) - { - return await DeserializeResponseAsync(response); - } - } - public async Task PutAsync(Uri requestUri, HttpContent content, string CorrelationId = null, Dictionary headers = null) - { - using (var response = await PutInternalAsync(requestUri, content, CorrelationId, headers)) - { - return await response.Content.ReadAsStringAsync(); - } - } - - #endregion - - } -} diff --git a/Infrastructure/Communication/RestfulServiceException.cs b/Infrastructure/Communication/RestfulServiceException.cs deleted file mode 100644 index 4a8dfdd8e7..0000000000 --- a/Infrastructure/Communication/RestfulServiceException.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; - -namespace Fr8Infrastructure.Communication -{ - public class RestfulServiceException : ApplicationException - { - public int StatusCode - { - get; - private set; - } - - public RestfulServiceException(int statusCode) - { - StatusCode = statusCode; - } - - public RestfulServiceException(int statusCode, string message) - : base(message) - { - StatusCode = statusCode; - } - - public RestfulServiceException(int statusCode, string message, Exception innerException) - : base(message, innerException) - { - StatusCode = statusCode; - } - } -} diff --git a/Infrastructure/Fr8Infrastructure.csproj b/Infrastructure/Fr8Infrastructure.csproj deleted file mode 100644 index 2ba2c1b637..0000000000 --- a/Infrastructure/Fr8Infrastructure.csproj +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Debug - AnyCPU - {9F4B5C92-3535-4D4C-B1E4-37BEB1AE5C42} - Library - Properties - Fr8Infrastructure - Fr8Infrastructure - v4.5 - 512 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\packages\log4net.2.0.3\lib\net40-full\log4net.dll - True - - - ..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll - True - - - ..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll - True - - - ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll - True - - - ..\packages\Owin.1.0\lib\net40\Owin.dll - True - - - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll - True - - - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll - True - - - - - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll - True - - - ..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll - True - - - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll - True - - - - - ..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll - True - - - - - - - - - - - - - - - - - - - - - - - - - - - {d6c86cff-37c0-49be-9f77-4f876ce6a793} - Utilities - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure/Fr8Infrastructure.nuspec b/Infrastructure/Fr8Infrastructure.nuspec deleted file mode 100644 index 5eb7ecdc32..0000000000 --- a/Infrastructure/Fr8Infrastructure.nuspec +++ /dev/null @@ -1,18 +0,0 @@ - - - - $id$ - $version$ - $title$ - $author$ - $author$ - https://github.com/Fr8org/Fr8Core.NET - https://github.com/Fr8org/Fr8Core.NET - https://fr8.co/Content/img/dockyard_logo_white.png - false - $description$ - Initial release - Copyright 2016 - fr8 fr8Infrastructure - - \ No newline at end of file diff --git a/Infrastructure/Infrastructure.csproj b/Infrastructure/Infrastructure.csproj deleted file mode 100644 index c2a3a5cc2b..0000000000 --- a/Infrastructure/Infrastructure.csproj +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Debug - AnyCPU - {9F4B5C92-3535-4D4C-B1E4-37BEB1AE5C42} - Library - Properties - fr8.Infrastructure - Fr8Infrastructure - v4.5 - 512 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\packages\log4net.2.0.3\lib\net40-full\log4net.dll - True - - - ..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll - True - - - ..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll - True - - - ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll - True - - - ..\packages\Owin.1.0\lib\net40\Owin.dll - True - - - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll - True - - - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll - True - - - - - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll - True - - - ..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll - True - - - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll - True - - - - - ..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll - True - - - - - - - - - - - - - - - - - - - - - - - - - - - {d6c86cff-37c0-49be-9f77-4f876ce6a793} - Utilities - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure/Interfaces/IHMACAuthenticator.cs b/Infrastructure/Interfaces/IHMACAuthenticator.cs deleted file mode 100644 index f85afcfc79..0000000000 --- a/Infrastructure/Interfaces/IHMACAuthenticator.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Net.Http; -using System.Threading.Tasks; - -namespace Fr8Infrastructure.Interfaces -{ - public interface IHMACAuthenticator - { - Task IsValidRequest(HttpRequestMessage request, string terminalSecret); - void ExtractTokenParts(HttpRequestMessage request, out string terminalId, out string userId); - } -} diff --git a/Infrastructure/Interfaces/IHMACService.cs b/Infrastructure/Interfaces/IHMACService.cs deleted file mode 100644 index 07d13d4ffa..0000000000 --- a/Infrastructure/Interfaces/IHMACService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Net.Http; -using System.Threading.Tasks; - -namespace Fr8Infrastructure.Interfaces -{ - public interface IHMACService - { - Task CalculateHMACHash(Uri requestUri, string userId, string terminalId, string terminalSecret, string timeStamp, string nonce, HttpContent content); - Task> GenerateHMACHeader(Uri requestUri, string terminalId, string terminalSecret, string userId, HttpContent content); - Task> GenerateHMACHeader(Uri requestUri, string terminalId, string terminalSecret, string userId, T content); - Task> GenerateHMACHeader(Uri requestUri, string terminalId, string terminalSecret, string userId); - } -} diff --git a/Infrastructure/Interfaces/IRestfulServiceClient.cs b/Infrastructure/Interfaces/IRestfulServiceClient.cs deleted file mode 100644 index 3a84ce9e79..0000000000 --- a/Infrastructure/Interfaces/IRestfulServiceClient.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Net.Http; -using System.Threading.Tasks; - -namespace Fr8Infrastructure.Interfaces -{ - public interface IRestfulServiceClient - { - Uri BaseUri { get; set; } - - Task DownloadAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null); - Task GetAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null); - Task GetAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null); - Task PostAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null); - Task PostAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null); - Task PostAsync(Uri requestUri, TContent content, string CorrelationId = null, Dictionary headers = null); - Task PostAsync(Uri requestUri, TContent content, string CorrelationId = null, Dictionary headers = null); - Task DeleteAsync(Uri requestUri, string CorrelationId = null, Dictionary headers = null); - Task PutAsync(Uri requestUri, TContent content, string CorrelationId = null, Dictionary headers = null); - Task PutAsync(Uri requestUri, TContent content, string CorrelationId = null, Dictionary headers = null); - - Task PostAsync(Uri requestUri, HttpContent content, string CorrelationId = null, Dictionary headers = null); - Task PostAsync(Uri requestUri, HttpContent content, string CorrelationId = null, Dictionary headers = null); - Task PutAsync(Uri requestUri, HttpContent content, string CorrelationId = null, Dictionary headers = null); - Task PutAsync(Uri requestUri, HttpContent content, string CorrelationId = null, Dictionary headers = null); - } -} \ No newline at end of file diff --git a/Infrastructure/Properties/AssemblyInfo.cs b/Infrastructure/Properties/AssemblyInfo.cs deleted file mode 100644 index 00b172df6b..0000000000 --- a/Infrastructure/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Infrastructure")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Infrastructure")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("9f4b5c92-3535-4d4c-b1e4-37beb1ae5c42")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Infrastructure/Security/Fr8HMACService.cs b/Infrastructure/Security/Fr8HMACService.cs deleted file mode 100644 index 35d9735889..0000000000 --- a/Infrastructure/Security/Fr8HMACService.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Net; -using System.Net.Http; -using System.Net.Http.Formatting; -using System.Security.Cryptography; -using System.Text; -using System.Threading.Tasks; -using Fr8Infrastructure.Interfaces; -using StructureMap; - -namespace Fr8Infrastructure.Security -{ - public class Fr8HMACService : IHMACService - { - private readonly MediaTypeFormatter _formatter; - private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); - - public Fr8HMACService() - { - _formatter = ObjectFactory.GetInstance(); - } - - private async Task GetHMACHash(Uri requestUri, string userId, string terminalId, string terminalSecret, string timeStamp, string nonce, string contentBase64String) - { - string url = WebUtility.UrlEncode(requestUri.ToString().ToLowerInvariant()); - //Formulate the keys used in plain format as a concatenated string. - string authenticationKeyString = string.Format("{0}{1}{2}{3}{4}{5}", terminalId, url, timeStamp, nonce, contentBase64String, userId); - - - var secretKeyBase64ByteArray = Encoding.ASCII.GetBytes(terminalSecret);//Convert.FromBase64String(terminalSecret); - - using (var hmac = new HMACSHA512(secretKeyBase64ByteArray)) - { - byte[] authenticationKeyBytes = Encoding.UTF8.GetBytes(authenticationKeyString); - byte[] authenticationHash = hmac.ComputeHash(authenticationKeyBytes); - return Convert.ToBase64String(authenticationHash); - } - } - - - public async Task CalculateHMACHash(Uri requestUri, string userId, string terminalId, string terminalSecret, string timeStamp, string nonce) - { - return await CalculateHMACHash(requestUri, userId, terminalId, terminalSecret, timeStamp, nonce, await GetContentBase64String(null)); - } - - public async Task CalculateHMACHash(Uri requestUri, string userId, string terminalId, string terminalSecret, string timeStamp, string nonce, T content) - { - return await CalculateHMACHash(requestUri, userId, terminalId, terminalSecret, timeStamp, nonce, await GetContentBase64String(new ObjectContent(typeof(T), content, _formatter))); - } - - public async Task CalculateHMACHash(Uri requestUri, string userId, string terminalId, string terminalSecret, string timeStamp, string nonce, HttpContent content) - { - return await CalculateHMACHash(requestUri, userId, terminalId, terminalSecret, timeStamp, nonce, await GetContentBase64String(content)); - } - - private async Task CalculateHMACHash(Uri requestUri, string userId, string terminalId, string terminalSecret, string timeStamp, string nonce, string contentBase64String) - { - return await GetHMACHash(requestUri, userId, terminalId, terminalSecret, timeStamp, nonce, contentBase64String); - } - - public static long GetCurrentUnixTimestampSeconds() - { - return (long)(DateTime.UtcNow - UnixEpoch).TotalSeconds; - } - - private async Task> GetHMACHeader(string hash, string userId, string terminalId, string timeStamp, string nonce) - { - var mergedData = string.Format("{0}:{1}:{2}:{3}:{4}", terminalId, hash, nonce, timeStamp, userId); - return new Dictionary() - { - {System.Net.HttpRequestHeader.Authorization.ToString(), string.Format("hmac {0}", mergedData)} - }; - } - - public async Task> GenerateHMACHeader(Uri requestUri, string terminalId, string terminalSecret, string userId, HttpContent content) - { - var timeStamp = GetCurrentUnixTimestampSeconds().ToString(CultureInfo.InvariantCulture); - var nonce = Guid.NewGuid().ToString(); - var hash = await CalculateHMACHash(requestUri, userId, terminalId, terminalSecret, timeStamp, nonce, content); - return await GetHMACHeader(hash, userId, terminalId, timeStamp, nonce); - } - - public async Task> GenerateHMACHeader(Uri requestUri, string terminalId, string terminalSecret, string userId, T content) - { - var timeStamp = GetCurrentUnixTimestampSeconds().ToString(CultureInfo.InvariantCulture); - var nonce = Guid.NewGuid().ToString(); - var hash = await CalculateHMACHash(requestUri, userId, terminalId, terminalSecret, timeStamp, nonce, content); - return await GetHMACHeader(hash, userId, terminalId, timeStamp, nonce); - } - - public async Task> GenerateHMACHeader(Uri requestUri, string terminalId, string terminalSecret, string userId) - { - var timeStamp = GetCurrentUnixTimestampSeconds().ToString(CultureInfo.InvariantCulture); - var nonce = Guid.NewGuid().ToString(); - var hash = await CalculateHMACHash(requestUri, userId, terminalId, terminalSecret, timeStamp, nonce); - return await GetHMACHeader(hash, userId, terminalId, timeStamp, nonce); - } - - private async Task GetContentBase64String(HttpContent httpContent) - { - byte[] content; - if (httpContent != null) - { - content = await httpContent.ReadAsByteArrayAsync(); - } - else - { - content = new byte[] { }; - } - - byte[] contentMd5Hash; - using (var md5 = MD5.Create()) - { - contentMd5Hash = md5.ComputeHash(content); - } - return Convert.ToBase64String(contentMd5Hash); - } - } -} diff --git a/Infrastructure/Security/HMACAuthenticator.cs b/Infrastructure/Security/HMACAuthenticator.cs deleted file mode 100644 index 3391f8ecbf..0000000000 --- a/Infrastructure/Security/HMACAuthenticator.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Net.Http; -using System.Runtime.Caching; -using System.Threading.Tasks; -using Fr8Infrastructure.Interfaces; -using StructureMap; - -namespace Fr8Infrastructure.Security -{ - public class HMACAuthenticator : IHMACAuthenticator - { - private const int MaxAllowedLatency = 60; - private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); - private readonly IHMACService _hmacService; - public HMACAuthenticator() - { - _hmacService = ObjectFactory.GetInstance(); - } - - public void ExtractTokenParts(HttpRequestMessage request, out string terminalId, out string userId) - { - terminalId = null; - userId = null; - var tokenParts = ExtractTokenParts(request); - if (tokenParts == null) - { - return; - } - terminalId = tokenParts[0]; - userId = tokenParts[4]; - } - - private string[] ExtractTokenParts(HttpRequestMessage request) - { - if (request.Headers.Authorization == null || !request.Headers.Authorization.Scheme.Equals("hmac", StringComparison.OrdinalIgnoreCase) - || string.IsNullOrEmpty(request.Headers.Authorization.Parameter)) - { - return null; - } - - string tokenString = request.Headers.Authorization.Parameter; - string[] authenticationParameters = tokenString.Split(new[] { ':' }); - - if (authenticationParameters.Length != 5) - { - return null; - } - - return authenticationParameters; - } - - public async Task IsValidRequest(HttpRequestMessage request, string terminalSecret) - { - var tokenParts = ExtractTokenParts(request); - if (tokenParts == null) - { - return false; - } - - var terminalId = tokenParts[0]; - var authToken = tokenParts[1]; - var nonce = tokenParts[2]; - var requestTime = tokenParts[3]; - var userId = tokenParts[4]; - - //Check for ReplayRequests starts here - //Check if the nonce is already used - if (MemoryCache.Default.Contains(nonce)) - { - return false; - } - - long requestTimeLong; - if (!long.TryParse(requestTime, out requestTimeLong)) - { - return false; - } - - //Check if the maximum allowed request time gap is exceeded, - if ((DateTime.UtcNow - DateTimeFromUnixTimestampSeconds(requestTimeLong)).TotalSeconds > MaxAllowedLatency) - { - return false; - } - - //Add the nonce to the cache - MemoryCache.Default.Add(nonce, requestTime, DateTimeOffset.UtcNow.AddSeconds(MaxAllowedLatency)); - - //Check for ReplayRequests ends here - - if (string.IsNullOrEmpty(terminalSecret)) - { - return false; - } - - var calculatedHash = await _hmacService.CalculateHMACHash(request.RequestUri, userId, terminalId, terminalSecret, requestTime, nonce, request.Content); - if (!authToken.Equals(calculatedHash, StringComparison.OrdinalIgnoreCase)) - { - return false; - } - - - return true; - } - - private static DateTime DateTimeFromUnixTimestampSeconds(long seconds) - { - return UnixEpoch.AddSeconds(seconds); - } - } -} diff --git a/Infrastructure/Security/fr8HMACAuthenticateAttribute.cs b/Infrastructure/Security/fr8HMACAuthenticateAttribute.cs deleted file mode 100644 index 8c9cb0e1ec..0000000000 --- a/Infrastructure/Security/fr8HMACAuthenticateAttribute.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System; -using System.Net; -using System.Net.Http; -using System.Net.Http.Headers; -using System.Threading; -using System.Threading.Tasks; -using System.Web.Http; -using System.Web.Http.Filters; -using Fr8Infrastructure.Interfaces; -using StructureMap; - -namespace Fr8Infrastructure.Security -{ - public abstract class fr8HMACAuthenticateAttribute : Attribute, IAuthenticationFilter - { - - private readonly IHMACAuthenticator _hmacAuthenticator; - - protected fr8HMACAuthenticateAttribute() - { - _hmacAuthenticator = ObjectFactory.GetInstance(); - } - - public bool AllowMultiple - { - get - { - return false; - } - } - - /// - /// These 3 functions are abstract or virtual - /// because this class can be used by both terminals and hub - /// they can implement their custom versions for these - /// - /// - /// - protected abstract Task GetTerminalSecret(string terminalId); - - protected abstract Task CheckPermission(string terminalId, string userId); - - protected virtual void Success(HttpAuthenticationContext context, string terminalId, string userId) - { - return; - } - - public async Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken) - { - var request = context.Request; - - string terminalId,userId = null; - - _hmacAuthenticator.ExtractTokenParts(request, out terminalId, out userId); - var terminalSecret = await GetTerminalSecret(terminalId); - var isValid = await _hmacAuthenticator.IsValidRequest(request, terminalSecret); - - if (!isValid) - { - return; - } - - isValid = await CheckPermission(terminalId, userId); - if (!isValid) - { - return; - } - - Success(context, terminalId, userId); - } - - public Task ChallengeAsync(HttpAuthenticationChallengeContext context, CancellationToken cancellationToken) - { - context.Result = new ResultWithChallenge(context.Result); - return Task.FromResult(0); - } - - - protected class ResultWithChallenge : IHttpActionResult - { - private readonly IHttpActionResult next; - - public ResultWithChallenge(IHttpActionResult next) - { - this.next = next; - } - - public async Task ExecuteAsync(CancellationToken cancellationToken) - { - var response = await next.ExecuteAsync(cancellationToken); - - if (response.StatusCode == HttpStatusCode.Unauthorized) - { - response.Headers.WwwAuthenticate.Add(new AuthenticationHeaderValue("hmac")); - } - - return response; - } - } - } -} \ No newline at end of file diff --git a/Infrastructure/StructureMap/StructureMapBootStrapper.cs b/Infrastructure/StructureMap/StructureMapBootStrapper.cs deleted file mode 100644 index bc4a3e95ba..0000000000 --- a/Infrastructure/StructureMap/StructureMapBootStrapper.cs +++ /dev/null @@ -1,78 +0,0 @@ -using System.Net.Http; -using System.Net.Http.Formatting; -using Fr8Infrastructure.Communication; -using Fr8Infrastructure.Interfaces; -using Fr8Infrastructure.Security; -using Moq; -using StructureMap; -using StructureMap.Configuration.DSL; -using ExtternalStructureMap = StructureMap; - -namespace Fr8Infrastructure.StructureMap -{ - public class StructureMapBootStrapper - { - public enum DependencyType - { - TEST = 0, - LIVE = 1 - } - - public static ExtternalStructureMap.IContainer ConfigureDependencies(DependencyType type) - { - - switch (type) - { - case DependencyType.TEST: - ObjectFactory.Initialize(x => x.AddRegistry()); - break; - case DependencyType.LIVE: - ObjectFactory.Initialize(x => x.AddRegistry()); - break; - } - return ObjectFactory.Container; - } - - public static void LiveConfiguration(ConfigurationExpression configuration) - { - configuration.AddRegistry(); - } - - public static void TestConfiguration(ConfigurationExpression configuration) - { - configuration.AddRegistry(); - } - - public class LiveMode : Registry - { - public LiveMode() - { - For().Use(); - For().Use(); - For().Use(); - For().Singleton().Use().SelectConstructor(() => new RestfulServiceClient()); - } - } - - public class TestMode : Registry - { - public TestMode() - { - For().Use(); - - var restfulServiceClientMock = new Mock(MockBehavior.Default); - For().Use(restfulServiceClientMock.Object).Singleton(); - - var fr8HMACAuthenticator = new Mock(); - fr8HMACAuthenticator.Setup(x => x.IsValidRequest(It.IsAny(), It.IsAny())).ReturnsAsync(true); - var outTerminalId = "testTerminal"; - var outUserId = "testUser"; - fr8HMACAuthenticator.Setup(s => s.ExtractTokenParts(It.IsAny(), out outTerminalId, out outUserId)); - For().Use(fr8HMACAuthenticator.Object); - - var fr8HMACService = new Mock(); - For().Use(fr8HMACService.Object); - } - } - } -} \ No newline at end of file diff --git a/Infrastructure/app.config b/Infrastructure/app.config deleted file mode 100644 index 8f7aefe21b..0000000000 --- a/Infrastructure/app.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/Infrastructure/packages.config b/Infrastructure/packages.config deleted file mode 100644 index f17182b2c8..0000000000 --- a/Infrastructure/packages.config +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Logs/CurrentLog.txt b/Logs/CurrentLog.txt deleted file mode 100644 index 8d85b107f0..0000000000 --- a/Logs/CurrentLog.txt +++ /dev/null @@ -1,678 +0,0 @@ -2015-10-21 11:04:39,563 [1] WARN - Dockyard starting... -2015-10-21 11:05:10,666 [8] ERROR - Critical internal error occured. URL accessed: http://localhost:30643/Dashbord -System.Web.HttpException (0x80004005): The controller for path '/Dashbord' was not found or does not implement IController. - at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) - at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) - at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) - at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) - at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) - at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) - at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() - at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) -2015-10-21 11:05:30,222 [16] ERROR - Error register plugins action template: - - - The following errors occurred while attempting to load the app.<br> - The OwinStartup attribute discovered in assembly 'pluginSlack' referencing startup type 'pluginSlack.Startup' conflicts with the attribute in assembly 'terminalSlack' referencing startup type 'terminalSlack.Startup' because they have the same FriendlyName ''. Remove or rename one of the attributes, or reference the desired type directly.<br>To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.<br>To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config. - - - - - - -

    Server Error in '/' Application.

    - -

    The following errors occurred while attempting to load the app.
    - The OwinStartup attribute discovered in assembly 'pluginSlack' referencing startup type 'pluginSlack.Startup' conflicts with the attribute in assembly 'terminalSlack' referencing startup type 'terminalSlack.Startup' because they have the same FriendlyName ''. Remove or rename one of the attributes, or reference the desired type directly.
    To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
    To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.

    - - - - Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. - -

    - - Exception Details: System.EntryPointNotFoundException: The following errors occurred while attempting to load the app.
    - The OwinStartup attribute discovered in assembly 'pluginSlack' referencing startup type 'pluginSlack.Startup' conflicts with the attribute in assembly 'terminalSlack' referencing startup type 'terminalSlack.Startup' because they have the same FriendlyName ''. Remove or rename one of the attributes, or reference the desired type directly.
    To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
    To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.

    - - Source Error:

    - - - - - -
    - - -An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. - -
    - -
    - - Stack Trace:

    - - - - - -
    -
    -
    -[EntryPointNotFoundException: The following errors occurred while attempting to load the app.
    - - The OwinStartup attribute discovered in assembly 'pluginSlack' referencing startup type 'pluginSlack.Startup' conflicts with the attribute in assembly 'terminalSlack' referencing startup type 'terminalSlack.Startup' because they have the same FriendlyName ''. Remove or rename one of the attributes, or reference the desired type directly.
    -To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
    -To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.]
    -   Microsoft.Owin.Host.SystemWeb.OwinBuilder.GetAppStartup() +764
    -   Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint() +103
    -   System.Threading.LazyInitializer.EnsureInitializedCore(T& target, Boolean& initialized, Object& syncLock, Func`1 valueFactory) +115
    -   System.Threading.LazyInitializer.EnsureInitialized(T& target, Boolean& initialized, Object& syncLock, Func`1 valueFactory) +72
    -   Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init(HttpApplication context) +104
    -   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +534
    -   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172
    -   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +352
    -   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296
    -
    -[HttpException (0x80004005): The following errors occurred while attempting to load the app.
    - - The OwinStartup attribute discovered in assembly 'pluginSlack' referencing startup type 'pluginSlack.Startup' conflicts with the attribute in assembly 'terminalSlack' referencing startup type 'terminalSlack.Startup' because they have the same FriendlyName ''. Remove or rename one of the attributes, or reference the desired type directly.
    -To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
    -To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.]
    -   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9920756
    -   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
    -   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +261
    -
    - -
    - -
    - -
    - - Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.81.0 - -
    - - - - -2015-10-21 11:05:33,166 [15] ERROR - Error register plugins action template: - - - Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) - - - - - - -

    Server Error in '/' Application.

    - -

    Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

    - - - - Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. - -

    - - Exception Details: System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

    - - Source Error:

    - - - - - -
    - - -An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. - -
    - -
    - - Assembly Load Trace: The following information can be helpful to determine why the assembly 'Newtonsoft.Json' could not be loaded.

    - - - - - -
    -
    -
    -WRN: Assembly binding logging is turned OFF.
    -To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
    -Note: There is some performance penalty associated with assembly bind failure logging.
    -To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
    -
    - -
    - -
    - - Stack Trace:

    - - - - - -
    -
    -
    -[FileLoadException: Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
    -
    -[FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
    -   System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
    -   System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +36
    -   System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +152
    -   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +77
    -   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +21
    -   System.Reflection.Assembly.Load(String assemblyString) +28
    -   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +38
    -
    -[ConfigurationErrorsException: Could not load file or assembly 'Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
    -   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +738
    -   System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +217
    -   System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +130
    -   System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +170
    -   System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +92
    -   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +290
    -   System.Web.Compilation.BuildManager.ExecutePreAppStart() +157
    -   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +531
    -
    -[HttpException (0x80004005): Could not load file or assembly 'Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
    -   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9920756
    -   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
    -   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +261
    -
    - -
    - -
    - -
    - - Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.81.0 - -
    - - - - -2015-10-21 11:05:39,379 [14] ERROR - Error register plugins action template: - - -IIS 10.0 Detailed Error - 404.0 - Not Found - - - - -
    -
    -

    HTTP Error 404.0 - Not Found

    -

    Разыскиваемый вами ресурс был удален, было изменено его имя или он временно недоступен.

    -
    -
    -

    Наиболее вероятные причины:

    -
    • Указанный каталог или файл не существует на данном веб-сервере.
    • URL-адрес содержит орфографическую ошибку.
    • Специальный фильтр или модуль, такой как URLScan, ограничивает доступ к файлу.
    -
    -
    -
    -

    Что можно предпринять:

    -
    • Создайте содержимое на веб-сервере.
    • Проверьте URL-адрес веб-браузера.
    • Чтобы получить дополнительные сведения об этой ошибке, проверьте журнал трассировки для невыполненных запросов и определите, какой модуль вызывает SetStatus. Чтобы получить дополнительные сведения, щелкните здесь.
    -
    -
    - -
    -

    Detailed Error Information:

    -
    - - - - - - -
    Module   IIS Web Core
    Notification   MapRequestHandler
    Handler   StaticFile
    Error Code   0x80070002
    -
    -
    - - - - - - -
    Requested URL   http://localhost:47011/plugins/discover
    Physical Path   C:\workdir\dockyard\pluginExcel\plugins\discover
    Logon Method   Анонимная
    Logon User   Анонимная
    Каталог трассировки запросов   C:\Users\ignusin\Documents\IISExpress\TraceLogFiles\PLUGINEXCEL
    -
    -
    -
    -
    - -
    -

    More Information:

    - Эта ошибка означает, что данный файл или каталог не существует на этом сервере. Создайте нужный файл или каталог и вновь направьте запрос. -

    View more information »

    - -
    -
    -
    - - - -2015-10-21 11:05:39,943 [15] INFO - 9 activity templates were registrated -2015-10-21 11:12:23,740 [1] WARN - Dockyard starting... -2015-10-21 11:12:52,254 [10] ERROR - Error register plugins action template: - - - Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) - - - - - - -

    Server Error in '/' Application.

    - -

    Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

    - - - - Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. - -

    - - Exception Details: System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

    - - Source Error:

    - - - - - -
    - - -An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. - -
    - -
    - - Assembly Load Trace: The following information can be helpful to determine why the assembly 'Newtonsoft.Json' could not be loaded.

    - - - - - -
    -
    -
    -WRN: Assembly binding logging is turned OFF.
    -To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
    -Note: There is some performance penalty associated with assembly bind failure logging.
    -To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
    -
    - -
    - -
    - - Stack Trace:

    - - - - - -
    -
    -
    -[FileLoadException: Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
    -
    -[FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
    -   System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
    -   System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +36
    -   System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +152
    -   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +77
    -   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +21
    -   System.Reflection.Assembly.Load(String assemblyString) +28
    -   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +38
    -
    -[ConfigurationErrorsException: Could not load file or assembly 'Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
    -   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +738
    -   System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +217
    -   System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +130
    -   System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +170
    -   System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +92
    -   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +290
    -   System.Web.Compilation.BuildManager.ExecutePreAppStart() +157
    -   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +531
    -
    -[HttpException (0x80004005): Could not load file or assembly 'Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
    -   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9920756
    -   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
    -   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +261
    -
    - -
    - -
    - -
    - - Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.81.0 - -
    - - - - -2015-10-21 11:12:57,838 [10] ERROR - Error register plugins action template: - - -IIS 10.0 Detailed Error - 404.0 - Not Found - - - - -
    -
    -

    HTTP Error 404.0 - Not Found

    -

    Разыскиваемый вами ресурс был удален, было изменено его имя или он временно недоступен.

    -
    -
    -

    Наиболее вероятные причины:

    -
    • Указанный каталог или файл не существует на данном веб-сервере.
    • URL-адрес содержит орфографическую ошибку.
    • Специальный фильтр или модуль, такой как URLScan, ограничивает доступ к файлу.
    -
    -
    -
    -

    Что можно предпринять:

    -
    • Создайте содержимое на веб-сервере.
    • Проверьте URL-адрес веб-браузера.
    • Чтобы получить дополнительные сведения об этой ошибке, проверьте журнал трассировки для невыполненных запросов и определите, какой модуль вызывает SetStatus. Чтобы получить дополнительные сведения, щелкните здесь.
    -
    -
    - -
    -

    Detailed Error Information:

    -
    - - - - - - -
    Module   IIS Web Core
    Notification   MapRequestHandler
    Handler   StaticFile
    Error Code   0x80070002
    -
    -
    - - - - - - -
    Requested URL   http://localhost:47011/plugins/discover
    Physical Path   C:\workdir\dockyard\pluginExcel\plugins\discover
    Logon Method   Анонимная
    Logon User   Анонимная
    Каталог трассировки запросов   C:\Users\ignusin\Documents\IISExpress\TraceLogFiles\PLUGINEXCEL
    -
    -
    -
    -
    - -
    -

    More Information:

    - Эта ошибка означает, что данный файл или каталог не существует на этом сервере. Создайте нужный файл или каталог и вновь направьте запрос. -

    View more information »

    - -
    -
    -
    - - - -2015-10-21 11:13:05,893 [15] INFO - 11 activity templates were registrated -2015-10-21 11:14:56,343 [22] ERROR - Critical internal error occured. URL accessed: http://localhost:30643/ExternalAuth/AuthSuccess?dockyard_plugin=pluginSlack&version=1&code=7518126694.12908331907.7283c26466&state=6086c0ba-8c11-4ce2-acdb-29538e648aff -System.ApplicationException: Could not find plugin. - at Web.Controllers.ExternalAuthController.d__3.MoveNext() in c:\workdir\dockyard\Controllers\ExternalAuthController.cs:line 47 ---- End of stack trace from previous location where exception was thrown --- - at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) - at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) - at System.Runtime.CompilerServices.TaskAwaiter.GetResult() - at System.Threading.Tasks.TaskHelpersExtensions.ThrowIfFaulted(Task task) - at System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass37.b__36(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() - at System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, Object tag) - at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3f() - at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass48.b__41() - at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass33.b__32(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() - at System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, Object tag) - at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.b__1c() - at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() - at System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, Object tag) - at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) - at System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() - at System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, Object tag) - at System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) - at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) - at System.Web.Mvc.Controller.b__15(IAsyncResult asyncResult, Controller controller) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() - at System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, Object tag) - at System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) - at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) - at System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) - at System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult, ProcessRequestState innerState) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) - at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() - at System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, Object tag) - at System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) - at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) - at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) - at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() - at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) -2015-10-21 11:15:53,532 [9] INFO - Event Process Node Created generated with CustomerId = a629be58-6b8b-4803-857c-cc07f9c2513c, ObjectId = 0 and Data = Container Execution ID :0, EmailAddress: alex@edelstein.org 3. -2015-10-21 11:15:53,609 [9] INFO - Event Action Started generated with CustomerId = a629be58-6b8b-4803-857c-cc07f9c2513c, ObjectId = 7 and Data = Process Execution ID :7, EmailAddress: alex@edelstein.org 3. -2015-10-21 11:15:53,727 [21] INFO - Event Process Requested generated with CustomerId = a629be58-6b8b-4803-857c-cc07f9c2513c, ObjectId = 3 and Data = Process Access ID :3, EmailAddress: alex@edelstein.org 3. -2015-10-21 11:15:53,898 [8] INFO - Event Action Dispatched generated with CustomerId = a629be58-6b8b-4803-857c-cc07f9c2513c, ObjectId = 7 and Data = Process Execution ID :7, EmailAddress: alex@edelstein.org 3. -2015-10-21 11:15:53,959 [8] INFO - Event Action Started generated with CustomerId = a629be58-6b8b-4803-857c-cc07f9c2513c, ObjectId = 8 and Data = Process Execution ID :8, EmailAddress: alex@edelstein.org 3. -2015-10-21 11:15:54,034 [21] INFO - Event Process Requested generated with CustomerId = a629be58-6b8b-4803-857c-cc07f9c2513c, ObjectId = 3 and Data = Process Access ID :3, EmailAddress: alex@edelstein.org 3. -2015-10-21 11:15:54,953 [21] INFO - Event Action Dispatched generated with CustomerId = a629be58-6b8b-4803-857c-cc07f9c2513c, ObjectId = 8 and Data = Process Execution ID :8, EmailAddress: alex@edelstein.org 3. diff --git a/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll b/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll deleted file mode 100644 index 4d638b3dfe..0000000000 Binary files a/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll and /dev/null differ diff --git a/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml b/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml deleted file mode 100644 index 1a49351180..0000000000 --- a/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - Microsoft.CodeDom.Providers.DotNetCompilerPlatform - - - - - Provides access to instances of the .NET Compiler Platform C# code generator and code compiler. - - - - - Default Constructor - - - - - Gets an instance of the .NET Compiler Platform C# code compiler. - - An instance of the .NET Compiler Platform C# code compiler - - - - Provides access to instances of the .NET Compiler Platform VB code generator and code compiler. - - - - - Default Constructor - - - - - Gets an instance of the .NET Compiler Platform VB code compiler. - - An instance of the .NET Compiler Platform VB code compiler - - - diff --git a/NuGet.exe b/NuGet.exe deleted file mode 100644 index 9f8781de0d..0000000000 Binary files a/NuGet.exe and /dev/null differ diff --git a/Packages.dgml b/Packages.dgml deleted file mode 100644 index 8dc779aa5c..0000000000 --- a/Packages.dgml +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Playground/App.config b/Playground/App.config deleted file mode 100644 index 8e602f62f4..0000000000 --- a/Playground/App.config +++ /dev/null @@ -1,195 +0,0 @@ - - - - - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Playground/Playground.csproj b/Playground/Playground.csproj deleted file mode 100644 index 7364bb95cd..0000000000 --- a/Playground/Playground.csproj +++ /dev/null @@ -1,98 +0,0 @@ - - - - - Debug - AnyCPU - {A8F63C89-FD17-492F-A022-69D31B94510E} - Exe - Properties - Playground - Playground - v4.5 - 512 - ..\ - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll - - - False - ..\packages\Microsoft.AspNet.Identity.Core.2.0.0\lib\net45\Microsoft.AspNet.Identity.Core.dll - - - ..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.0\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll - - - False - ..\packages\SendGrid.SmtpApi.1.1.3\lib\net40\SendGrid.SmtpApi.dll - - - False - ..\packages\Sendgrid.5.0.0\lib\SendGridMail.dll - - - False - ..\packages\structuremap.3.0.3.116\lib\net40\StructureMap.dll - - - - - - - - - - - - - - - - {B15EA73E-E0D0-4604-BCFC-DDAFB67F872D} - Daemons - - - {990241ea-6cf0-4026-b57c-a9031463c7c0} - Data - - - {9891496c-8512-4708-925a-ee9d0f9199d4} - KwasantCore - - - {D6C86CFF-37C0-49BE-9F77-4F876CE6A793} - Utilities - - - - - - diff --git a/Playground/Program.cs b/Playground/Program.cs deleted file mode 100644 index 41b0be92c9..0000000000 --- a/Playground/Program.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Net.Mail; -using Data.Entities; -using Data.Infrastructure; -using Data.Interfaces; -using Data.Repositories; -using KwasantCore.Managers.APIManagers.Packagers.SendGrid; -using KwasantCore.Services; -using KwasantCore.StructureMap; -using KwasantICS.DDay.iCal.Serialization.iCalendar.Serializers; -using SendGrid; -using StructureMap; - -namespace Playground -{ - public class Program - { - /// - /// This is a sandbox for devs to use. Useful for directly calling some library without needing to launch the main application - /// - /// - private static void Main(string[] args) - { - StructureMapBootStrapper.ConfigureDependencies(StructureMapBootStrapper.DependencyType.LIVE); //set to either "test" or "dev" - KwasantDbContext db = new KwasantDbContext(); - db.Database.Initialize(true); - - var evDO = new EventDO(); - evDO.CreatedBy = new UserDO { EmailAddress = new EmailAddressDO { Name = "Alex Edelstein" } }; - - evDO.Description = @"Meeting with Paul Maeder, Campaign co-chair for the School of Engineering and Applied Sciences."; - evDO.Attendees.Add(new AttendeeDO { Name = "Alex Edelstein", EmailAddress = new EmailAddressDO("alex@edelstein.org") }); - evDO.Attendees.Add(new AttendeeDO { Name = "Dieterich, Joshua Ethan", EmailAddress = new EmailAddressDO("joshua_dieterich@harvard.edu") }); - evDO.Attendees.Add(new AttendeeDO { Name = "Outbound Archive", EmailAddress = new EmailAddressDO("kwasantoutbound@gmail.com") }); - evDO.Attendees.Add(new AttendeeDO { Name = "'Alexed15@gmail.com'", EmailAddress = new EmailAddressDO("alexed15@gmail.com") }); - evDO.StartDate = new DateTimeOffset(2014, 12, 09, 16, 0, 0, 0, TimeSpan.FromHours(-8)); - evDO.EndDate = evDO.StartDate.AddHours(1); - evDO.Location = "Harvard"; - evDO.Summary = "Harvard Meeting with Paul Maeder"; - - var cal = Event.GenerateICSCalendarStructure(evDO); - - iCalendarSerializer serializer = new iCalendarSerializer(cal); - string fileToAttach = serializer.Serialize(cal); - - } - } -} diff --git a/Playground/Properties/AssemblyInfo.cs b/Playground/Properties/AssemblyInfo.cs deleted file mode 100644 index e928f4eac4..0000000000 --- a/Playground/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Playground")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Playground")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("7025d7fa-51fa-4ecf-9026-420eab5b300b")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Playground/packages.config b/Playground/packages.config deleted file mode 100644 index 31eccf092d..0000000000 --- a/Playground/packages.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 8cd0b804de..0000000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -![Fr8 Logo](https://github.com/Fr8org/Fr8Core/blob/master/Docs/img/Fr8Logo.png) - -Read our documentation for insights in to how Fr8 works: [documentation](https://github.com/Fr8org/Fr8Core/blob/master/Docs/Home.md). diff --git a/Fr8Infrastructure.NET/.gitattributes b/SDK/Fr8Infrastructure.NET/.gitattributes similarity index 100% rename from Fr8Infrastructure.NET/.gitattributes rename to SDK/Fr8Infrastructure.NET/.gitattributes diff --git a/Fr8Infrastructure.NET/.gitignore b/SDK/Fr8Infrastructure.NET/.gitignore similarity index 100% rename from Fr8Infrastructure.NET/.gitignore rename to SDK/Fr8Infrastructure.NET/.gitignore diff --git a/Fr8Infrastructure.NET/.nuget/NuGet.Config b/SDK/Fr8Infrastructure.NET/.nuget/NuGet.Config similarity index 100% rename from Fr8Infrastructure.NET/.nuget/NuGet.Config rename to SDK/Fr8Infrastructure.NET/.nuget/NuGet.Config diff --git a/Fr8Infrastructure.NET/.nuget/NuGet.targets b/SDK/Fr8Infrastructure.NET/.nuget/NuGet.targets similarity index 100% rename from Fr8Infrastructure.NET/.nuget/NuGet.targets rename to SDK/Fr8Infrastructure.NET/.nuget/NuGet.targets diff --git a/Fr8Infrastructure.NET/Communication/RestfulServiceClient.cs b/SDK/Fr8Infrastructure.NET/Communication/RestfulServiceClient.cs similarity index 100% rename from Fr8Infrastructure.NET/Communication/RestfulServiceClient.cs rename to SDK/Fr8Infrastructure.NET/Communication/RestfulServiceClient.cs diff --git a/Fr8Infrastructure.NET/Communication/RestfulServiceClientFactory.cs b/SDK/Fr8Infrastructure.NET/Communication/RestfulServiceClientFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Communication/RestfulServiceClientFactory.cs rename to SDK/Fr8Infrastructure.NET/Communication/RestfulServiceClientFactory.cs diff --git a/Fr8Infrastructure.NET/Communication/RestfulServiceException.cs b/SDK/Fr8Infrastructure.NET/Communication/RestfulServiceException.cs similarity index 100% rename from Fr8Infrastructure.NET/Communication/RestfulServiceException.cs rename to SDK/Fr8Infrastructure.NET/Communication/RestfulServiceException.cs diff --git a/Fr8Infrastructure.NET/Data/Constants/ActivityDirection.cs b/SDK/Fr8Infrastructure.NET/Data/Constants/ActivityDirection.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Constants/ActivityDirection.cs rename to SDK/Fr8Infrastructure.NET/Data/Constants/ActivityDirection.cs diff --git a/Fr8Infrastructure.NET/Data/Constants/ActivityErrorCode.cs b/SDK/Fr8Infrastructure.NET/Data/Constants/ActivityErrorCode.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Constants/ActivityErrorCode.cs rename to SDK/Fr8Infrastructure.NET/Data/Constants/ActivityErrorCode.cs diff --git a/Fr8Infrastructure.NET/Data/Constants/ActivityExecutionMode.cs b/SDK/Fr8Infrastructure.NET/Data/Constants/ActivityExecutionMode.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Constants/ActivityExecutionMode.cs rename to SDK/Fr8Infrastructure.NET/Data/Constants/ActivityExecutionMode.cs diff --git a/Fr8Infrastructure.NET/Data/Constants/ActivityResponse.cs b/SDK/Fr8Infrastructure.NET/Data/Constants/ActivityResponse.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Constants/ActivityResponse.cs rename to SDK/Fr8Infrastructure.NET/Data/Constants/ActivityResponse.cs diff --git a/Fr8Infrastructure.NET/Data/Constants/FieldValidationResult.cs b/SDK/Fr8Infrastructure.NET/Data/Constants/FieldValidationResult.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Constants/FieldValidationResult.cs rename to SDK/Fr8Infrastructure.NET/Data/Constants/FieldValidationResult.cs diff --git a/Fr8Infrastructure.NET/Data/Constants/ManifestIdEnum.cs b/SDK/Fr8Infrastructure.NET/Data/Constants/ManifestIdEnum.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Constants/ManifestIdEnum.cs rename to SDK/Fr8Infrastructure.NET/Data/Constants/ManifestIdEnum.cs diff --git a/Fr8Infrastructure.NET/Data/Constants/NotificationType.cs b/SDK/Fr8Infrastructure.NET/Data/Constants/NotificationType.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Constants/NotificationType.cs rename to SDK/Fr8Infrastructure.NET/Data/Constants/NotificationType.cs diff --git a/Fr8Infrastructure.NET/Data/Constants/Tags.cs b/SDK/Fr8Infrastructure.NET/Data/Constants/Tags.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Constants/Tags.cs rename to SDK/Fr8Infrastructure.NET/Data/Constants/Tags.cs diff --git a/Fr8Infrastructure.NET/Data/Control/Control.cs b/SDK/Fr8Infrastructure.NET/Data/Control/Control.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Control/Control.cs rename to SDK/Fr8Infrastructure.NET/Data/Control/Control.cs diff --git a/Fr8Infrastructure.NET/Data/Control/ControlExtensions.cs b/SDK/Fr8Infrastructure.NET/Data/Control/ControlExtensions.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Control/ControlExtensions.cs rename to SDK/Fr8Infrastructure.NET/Data/Control/ControlExtensions.cs diff --git a/Fr8Infrastructure.NET/Data/Convertors/JsonNet/ActivityTemplateActivityConverter.cs b/SDK/Fr8Infrastructure.NET/Data/Convertors/JsonNet/ActivityTemplateActivityConverter.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Convertors/JsonNet/ActivityTemplateActivityConverter.cs rename to SDK/Fr8Infrastructure.NET/Data/Convertors/JsonNet/ActivityTemplateActivityConverter.cs diff --git a/Fr8Infrastructure.NET/Data/Convertors/JsonNet/AvailabilityConverter.cs b/SDK/Fr8Infrastructure.NET/Data/Convertors/JsonNet/AvailabilityConverter.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Convertors/JsonNet/AvailabilityConverter.cs rename to SDK/Fr8Infrastructure.NET/Data/Convertors/JsonNet/AvailabilityConverter.cs diff --git a/Fr8Infrastructure.NET/Data/Convertors/JsonNet/CreateTimeConverter.cs b/SDK/Fr8Infrastructure.NET/Data/Convertors/JsonNet/CreateTimeConverter.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Convertors/JsonNet/CreateTimeConverter.cs rename to SDK/Fr8Infrastructure.NET/Data/Convertors/JsonNet/CreateTimeConverter.cs diff --git a/Fr8Infrastructure.NET/Data/Convertors/JsonNet/TerminalActivityTemplateConverter.cs b/SDK/Fr8Infrastructure.NET/Data/Convertors/JsonNet/TerminalActivityTemplateConverter.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Convertors/JsonNet/TerminalActivityTemplateConverter.cs rename to SDK/Fr8Infrastructure.NET/Data/Convertors/JsonNet/TerminalActivityTemplateConverter.cs diff --git a/Fr8Infrastructure.NET/Data/Convertors/StringToCrateStorageDTOConverter.cs b/SDK/Fr8Infrastructure.NET/Data/Convertors/StringToCrateStorageDTOConverter.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Convertors/StringToCrateStorageDTOConverter.cs rename to SDK/Fr8Infrastructure.NET/Data/Convertors/StringToCrateStorageDTOConverter.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/Crate.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/Crate.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/Crate.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/Crate.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/CrateManifestAttribute.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/CrateManifestAttribute.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/CrateManifestAttribute.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/CrateManifestAttribute.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/CrateManifestType.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/CrateManifestType.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/CrateManifestType.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/CrateManifestType.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/CrateManifestTypeDescriptionAttribute.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/CrateManifestTypeDescriptionAttribute.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/CrateManifestTypeDescriptionAttribute.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/CrateManifestTypeDescriptionAttribute.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/CrateStorage.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/CrateStorage.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/CrateStorage.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/CrateStorage.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/CrateStorageExtensions.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/CrateStorageExtensions.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/CrateStorageExtensions.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/CrateStorageExtensions.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/CrateStorageSerializer.DefaultSerializer.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/CrateStorageSerializer.DefaultSerializer.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/CrateStorageSerializer.DefaultSerializer.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/CrateStorageSerializer.DefaultSerializer.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/CrateStorageSerializer.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/CrateStorageSerializer.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/CrateStorageSerializer.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/CrateStorageSerializer.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/CrateT.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/CrateT.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/CrateT.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/CrateT.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/DenySerializationConverter.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/DenySerializationConverter.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/DenySerializationConverter.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/DenySerializationConverter.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/Helpers/EventReportCrateFactory.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/Helpers/EventReportCrateFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/Helpers/EventReportCrateFactory.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/Helpers/EventReportCrateFactory.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/Helpers/LoggingDataCrateFactory.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/Helpers/LoggingDataCrateFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/Helpers/LoggingDataCrateFactory.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/Helpers/LoggingDataCrateFactory.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/ICrateStorage.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/ICrateStorage.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/ICrateStorage.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/ICrateStorage.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/ICrateStorageSerializer.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/ICrateStorageSerializer.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/ICrateStorageSerializer.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/ICrateStorageSerializer.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/IManifestSerializer.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/IManifestSerializer.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/IManifestSerializer.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/IManifestSerializer.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/ManifestDiscovery.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/ManifestDiscovery.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/ManifestDiscovery.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/ManifestDiscovery.cs diff --git a/Fr8Infrastructure.NET/Data/Crates/ManifestTypeCache.cs b/SDK/Fr8Infrastructure.NET/Data/Crates/ManifestTypeCache.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Crates/ManifestTypeCache.cs rename to SDK/Fr8Infrastructure.NET/Data/Crates/ManifestTypeCache.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivateActivitiesDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivateActivitiesDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivateActivitiesDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivateActivitiesDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategoryDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategoryDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategoryDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategoryDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDataPackageDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDataPackageDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDataPackageDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDataPackageDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityNameDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityNameDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityNameDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityNameDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityNameListDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityNameListDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityNameListDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityNameListDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityPayloadDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityPayloadDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityPayloadDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityPayloadDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityProcessResultDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityProcessResultDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityProcessResultDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityProcessResultDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityResponseDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityResponseDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityResponseDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityResponseDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateCategoryDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateCategoryDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateCategoryDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateCategoryDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateSummaryDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateSummaryDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateSummaryDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateSummaryDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTypeListDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTypeListDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTypeListDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTypeListDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/AdvisoryMessageDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/AdvisoryMessageDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/AdvisoryMessageDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/AdvisoryMessageDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/AlarmDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/AlarmDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/AlarmDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/AlarmDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/AuthenticateResponse.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/AuthenticateResponse.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/AuthenticateResponse.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/AuthenticateResponse.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/AuthenticationTokenDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/AuthenticationTokenDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/AuthenticationTokenDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/AuthenticationTokenDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/AuthorizationTokenDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/AuthorizationTokenDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/AuthorizationTokenDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/AuthorizationTokenDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ComponentActivitiesDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ComponentActivitiesDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ComponentActivitiesDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ComponentActivitiesDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ContainerDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ContainerDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ContainerDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ContainerDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ControlDefinitionDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ControlDefinitionDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ControlDefinitionDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ControlDefinitionDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ControlDefinitionDTOConverter.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ControlDefinitionDTOConverter.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ControlDefinitionDTOConverter.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ControlDefinitionDTOConverter.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/CrateDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/CrateDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/CrateDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/CrateDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/CrateDescriptionDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/CrateDescriptionDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/CrateDescriptionDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/CrateDescriptionDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/CrateStorageDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/CrateStorageDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/CrateStorageDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/CrateStorageDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/CredentialsDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/CredentialsDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/CredentialsDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/CredentialsDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/DetailedMessageDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/DetailedMessageDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/DetailedMessageDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/DetailedMessageDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/DocuSignEnvelopeDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/DocuSignEnvelopeDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/DocuSignEnvelopeDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/DocuSignEnvelopeDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/DocumentationResponseDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/DocumentationResponseDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/DocumentationResponseDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/DocumentationResponseDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/EmailAddressDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/EmailAddressDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/EmailAddressDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/EmailAddressDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/EmailDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/EmailDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/EmailDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/EmailDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ErrorDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ErrorDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ErrorDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ErrorDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/EventLoggingDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/EventLoggingDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/EventLoggingDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/EventLoggingDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalAuthUrlDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalAuthUrlDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalAuthUrlDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalAuthUrlDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalAuthenticationDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalAuthenticationDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalAuthenticationDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalAuthenticationDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalEventDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalEventDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalEventDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalEventDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalObjectHandleDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalObjectHandleDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalObjectHandleDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ExternalObjectHandleDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/FieldDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FieldDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/FieldDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FieldDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/FieldType.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FieldType.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/FieldType.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FieldType.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/FieldValidationDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FieldValidationDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/FieldValidationDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FieldValidationDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/FileDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FileDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/FileDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FileDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/FileDescriptionDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FileDescriptionDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/FileDescriptionDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FileDescriptionDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/FilterConditionDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FilterConditionDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/FilterConditionDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FilterConditionDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/FilterDataDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FilterDataDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/FilterDataDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FilterDataDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/FinancialLineDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FinancialLineDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/FinancialLineDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/FinancialLineDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/Fr8DataDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/Fr8DataDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/Fr8DataDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/Fr8DataDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/Helpers/ActivityResponseHelper.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/Helpers/ActivityResponseHelper.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/Helpers/ActivityResponseHelper.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/Helpers/ActivityResponseHelper.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/HistoryItemDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/HistoryItemDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/HistoryItemDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/HistoryItemDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/IncomingCratesDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/IncomingCratesDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/IncomingCratesDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/IncomingCratesDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/KeyValueDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/KeyValueDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/KeyValueDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/KeyValueDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/LogItemDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/LogItemDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/LogItemDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/LogItemDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/LoggingDataCM.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/LoggingDataCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/LoggingDataCM.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/LoggingDataCM.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ManifestDescriptionDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ManifestDescriptionDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ManifestDescriptionDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ManifestDescriptionDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ManifestRegistryParams .cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ManifestRegistryParams .cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ManifestRegistryParams .cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ManifestRegistryParams .cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ManufacturerDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ManufacturerDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ManufacturerDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ManufacturerDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/NotificationMessageDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/NotificationMessageDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/NotificationMessageDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/NotificationMessageDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/OrganizationDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/OrganizationDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/OrganizationDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/OrganizationDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PageDefinitionDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PageDefinitionDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PageDefinitionDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PageDefinitionDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PayloadDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PayloadDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PayloadDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PayloadDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PermissionDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PermissionDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PermissionDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PermissionDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PhoneNumberCredentialsDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PhoneNumberCredentialsDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PhoneNumberCredentialsDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PhoneNumberCredentialsDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/CreatePlanDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/CreatePlanDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/CreatePlanDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/CreatePlanDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchItemDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchItemDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchItemDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchItemDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchRequestDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchRequestDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchRequestDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchRequestDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchResultDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchResultDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchResultDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanDirectory/SearchResultDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanFullDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanFullDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PlanFullDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanFullDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanNoChildrenDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanNoChildrenDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PlanNoChildrenDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanNoChildrenDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanVisibilityDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanVisibilityDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PlanVisibilityDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PlanVisibilityDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PollingDataDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PollingDataDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PollingDataDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PollingDataDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ProfileDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ProfileDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ProfileDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ProfileDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/PublishPlanTemplateDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PublishPlanTemplateDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/PublishPlanTemplateDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/PublishPlanTemplateDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/QueryDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/QueryDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/QueryDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/QueryDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/RecipientDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/RecipientDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/RecipientDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/RecipientDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/SlackPayloadDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/SlackPayloadDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/SlackPayloadDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/SlackPayloadDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/SolutionPageDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/SolutionPageDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/SolutionPageDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/SolutionPageDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/StandardAccountingTransactionDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/StandardAccountingTransactionDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/StandardAccountingTransactionDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/StandardAccountingTransactionDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/SubPlanDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/SubPlanDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/SubPlanDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/SubPlanDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDiscoveryDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDiscoveryDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDiscoveryDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDiscoveryDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalSummaryDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalSummaryDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalSummaryDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalSummaryDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/TokenResponseDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/TokenResponseDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/TokenResponseDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/TokenResponseDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/UrlResponseDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/UrlResponseDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/UrlResponseDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/UrlResponseDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/UserDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/UserDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/UserDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/UserDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ValidationErrorsDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ValidationErrorsDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ValidationErrorsDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ValidationErrorsDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ValidationResultDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ValidationResultDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/ValidationResultDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/ValidationResultDTO.cs diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/WebServiceActivitySetDTO.cs b/SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/WebServiceActivitySetDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/DataTransferObjects/WebServiceActivitySetDTO.cs rename to SDK/Fr8Infrastructure.NET/Data/DataTransferObjects/WebServiceActivitySetDTO.cs diff --git a/Fr8Infrastructure.NET/Data/Helpers/FieldMemberAccessor.cs b/SDK/Fr8Infrastructure.NET/Data/Helpers/FieldMemberAccessor.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Helpers/FieldMemberAccessor.cs rename to SDK/Fr8Infrastructure.NET/Data/Helpers/FieldMemberAccessor.cs diff --git a/Fr8Infrastructure.NET/Data/Helpers/Fr8ApiHelper.cs b/SDK/Fr8Infrastructure.NET/Data/Helpers/Fr8ApiHelper.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Helpers/Fr8ApiHelper.cs rename to SDK/Fr8Infrastructure.NET/Data/Helpers/Fr8ApiHelper.cs diff --git a/Fr8Infrastructure.NET/Data/Helpers/Fr8ReflectionHelper.cs b/SDK/Fr8Infrastructure.NET/Data/Helpers/Fr8ReflectionHelper.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Helpers/Fr8ReflectionHelper.cs rename to SDK/Fr8Infrastructure.NET/Data/Helpers/Fr8ReflectionHelper.cs diff --git a/Fr8Infrastructure.NET/Data/Helpers/IMemberAccessor.cs b/SDK/Fr8Infrastructure.NET/Data/Helpers/IMemberAccessor.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Helpers/IMemberAccessor.cs rename to SDK/Fr8Infrastructure.NET/Data/Helpers/IMemberAccessor.cs diff --git a/Fr8Infrastructure.NET/Data/Helpers/IndexerMemeberAccessor.cs b/SDK/Fr8Infrastructure.NET/Data/Helpers/IndexerMemeberAccessor.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Helpers/IndexerMemeberAccessor.cs rename to SDK/Fr8Infrastructure.NET/Data/Helpers/IndexerMemeberAccessor.cs diff --git a/Fr8Infrastructure.NET/Data/Helpers/PropertyMemberAccessor.cs b/SDK/Fr8Infrastructure.NET/Data/Helpers/PropertyMemberAccessor.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Helpers/PropertyMemberAccessor.cs rename to SDK/Fr8Infrastructure.NET/Data/Helpers/PropertyMemberAccessor.cs diff --git a/Fr8Infrastructure.NET/Data/Managers/CrateManager.StorageUpdater.cs b/SDK/Fr8Infrastructure.NET/Data/Managers/CrateManager.StorageUpdater.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Managers/CrateManager.StorageUpdater.cs rename to SDK/Fr8Infrastructure.NET/Data/Managers/CrateManager.StorageUpdater.cs diff --git a/Fr8Infrastructure.NET/Data/Managers/CrateManager.cs b/SDK/Fr8Infrastructure.NET/Data/Managers/CrateManager.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Managers/CrateManager.cs rename to SDK/Fr8Infrastructure.NET/Data/Managers/CrateManager.cs diff --git a/Fr8Infrastructure.NET/Data/Managers/CrateMangerExtensions.cs b/SDK/Fr8Infrastructure.NET/Data/Managers/CrateMangerExtensions.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Managers/CrateMangerExtensions.cs rename to SDK/Fr8Infrastructure.NET/Data/Managers/CrateMangerExtensions.cs diff --git a/Fr8Infrastructure.NET/Data/Managers/ICrateManager.cs b/SDK/Fr8Infrastructure.NET/Data/Managers/ICrateManager.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Managers/ICrateManager.cs rename to SDK/Fr8Infrastructure.NET/Data/Managers/ICrateManager.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/AdvisoryMessagesCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/AdvisoryMessagesCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/AdvisoryMessagesCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/AdvisoryMessagesCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/AsanaTaskCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/AsanaTaskCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/AsanaTaskCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/AsanaTaskCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/AsanaTaskListCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/AsanaTaskListCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/AsanaTaskListCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/AsanaTaskListCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/AtlassianIssueEventCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/AtlassianIssueEventCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/AtlassianIssueEventCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/AtlassianIssueEventCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/ChartOfAccountsCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/ChartOfAccountsCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/ChartOfAccountsCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/ChartOfAccountsCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/CrateDescriptionCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/CrateDescriptionCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/CrateDescriptionCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/CrateDescriptionCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/CrateManifestTypes.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/CrateManifestTypes.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/CrateManifestTypes.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/CrateManifestTypes.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM_v2.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM_v2.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM_v2.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM_v2.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM_v3.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM_v3.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM_v3.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignEnvelopeCM_v3.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/DocuSignEventCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignEventCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/DocuSignEventCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignEventCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/DocuSignRecipientCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignRecipientCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/DocuSignRecipientCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignRecipientCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/DocuSignTemplateCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignTemplateCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/DocuSignTemplateCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/DocuSignTemplateCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/EventReportCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/EventReportCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/EventReportCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/EventReportCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/EventSubscriptionCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/EventSubscriptionCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/EventSubscriptionCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/EventSubscriptionCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/ExternalObjectHandlesCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/ExternalObjectHandlesCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/ExternalObjectHandlesCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/ExternalObjectHandlesCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/FacebookUserEventCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/FacebookUserEventCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/FacebookUserEventCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/FacebookUserEventCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/FieldDescriptionsCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/FieldDescriptionsCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/FieldDescriptionsCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/FieldDescriptionsCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/Helpers/StandardTableDataCMTools.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/Helpers/StandardTableDataCMTools.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/Helpers/StandardTableDataCMTools.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/Helpers/StandardTableDataCMTools.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/HubSubscriptionCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/HubSubscriptionCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/HubSubscriptionCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/HubSubscriptionCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/InstagramUserEventCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/InstagramUserEventCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/InstagramUserEventCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/InstagramUserEventCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/KeyValueListCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/KeyValueListCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/KeyValueListCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/KeyValueListCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/Manifest.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/Manifest.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/Manifest.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/Manifest.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/ManifestDescriptionCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/ManifestDescriptionCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/ManifestDescriptionCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/ManifestDescriptionCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/ManifestFieldAttribute.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/ManifestFieldAttribute.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/ManifestFieldAttribute.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/ManifestFieldAttribute.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/MtPrimaryKeyAttribute.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/MtPrimaryKeyAttribute.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/MtPrimaryKeyAttribute.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/MtPrimaryKeyAttribute.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.CallStack.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.CallStack.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.CallStack.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.CallStack.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.CallStackConverter.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.CallStackConverter.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.CallStackConverter.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.CallStackConverter.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.InternalStates.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.InternalStates.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.InternalStates.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.InternalStates.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/OperationalStateCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/PlanTemplateCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/PlanTemplateCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/PlanTemplateCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/PlanTemplateCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/SalesforceEventCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/SalesforceEventCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/SalesforceEventCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/SalesforceEventCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardAccountingTransactionCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardAccountingTransactionCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardAccountingTransactionCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardAccountingTransactionCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardAuthenticationCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardAuthenticationCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardAuthenticationCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardAuthenticationCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardBusinessFactCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardBusinessFactCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardBusinessFactCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardBusinessFactCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardConfigurationControlsCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardConfigurationControlsCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardConfigurationControlsCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardConfigurationControlsCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardEmailMessageCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardEmailMessageCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardEmailMessageCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardEmailMessageCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardFileDescriptionCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFileDescriptionCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardFileDescriptionCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFileDescriptionCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardFileListCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFileListCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardFileListCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFileListCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardFr8ContainersCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFr8ContainersCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardFr8ContainersCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFr8ContainersCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardFr8HubsCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFr8HubsCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardFr8HubsCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFr8HubsCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardFr8PlansCM .cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFr8PlansCM .cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardFr8PlansCM .cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFr8PlansCM .cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardFr8TerminalCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFr8TerminalCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardFr8TerminalCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardFr8TerminalCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardLoggingCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardLoggingCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardLoggingCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardLoggingCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardParsingRecordCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardParsingRecordCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardParsingRecordCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardParsingRecordCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardPayloadDataCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardPayloadDataCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardPayloadDataCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardPayloadDataCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardQueryCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardQueryCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardQueryCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardQueryCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardRoutingDirectiveCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardRoutingDirectiveCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardRoutingDirectiveCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardRoutingDirectiveCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardSecurityCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardSecurityCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardSecurityCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardSecurityCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StandardTableDataCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StandardTableDataCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StandardTableDataCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StandardTableDataCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/StatXItemCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/StatXItemCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/StatXItemCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/StatXItemCM.cs diff --git a/Fr8Infrastructure.NET/Data/Manifests/ValidationResultsCM.cs b/SDK/Fr8Infrastructure.NET/Data/Manifests/ValidationResultsCM.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/Manifests/ValidationResultsCM.cs rename to SDK/Fr8Infrastructure.NET/Data/Manifests/ValidationResultsCM.cs diff --git a/Fr8Infrastructure.NET/Data/States/ActivityType.cs b/SDK/Fr8Infrastructure.NET/Data/States/ActivityType.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/States/ActivityType.cs rename to SDK/Fr8Infrastructure.NET/Data/States/ActivityType.cs diff --git a/Fr8Infrastructure.NET/Data/States/AuthenticationType.cs b/SDK/Fr8Infrastructure.NET/Data/States/AuthenticationType.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/States/AuthenticationType.cs rename to SDK/Fr8Infrastructure.NET/Data/States/AuthenticationType.cs diff --git a/Fr8Infrastructure.NET/Data/States/AvailabilityType.cs b/SDK/Fr8Infrastructure.NET/Data/States/AvailabilityType.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/States/AvailabilityType.cs rename to SDK/Fr8Infrastructure.NET/Data/States/AvailabilityType.cs diff --git a/Fr8Infrastructure.NET/Data/States/CrateDirection.cs b/SDK/Fr8Infrastructure.NET/Data/States/CrateDirection.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/States/CrateDirection.cs rename to SDK/Fr8Infrastructure.NET/Data/States/CrateDirection.cs diff --git a/Fr8Infrastructure.NET/Data/States/PlanTemplateStatus.cs b/SDK/Fr8Infrastructure.NET/Data/States/PlanTemplateStatus.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/States/PlanTemplateStatus.cs rename to SDK/Fr8Infrastructure.NET/Data/States/PlanTemplateStatus.cs diff --git a/Fr8Infrastructure.NET/Data/States/PlanVisibility.cs b/SDK/Fr8Infrastructure.NET/Data/States/PlanVisibility.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/States/PlanVisibility.cs rename to SDK/Fr8Infrastructure.NET/Data/States/PlanVisibility.cs diff --git a/Fr8Infrastructure.NET/Data/States/TerminalStatus.cs b/SDK/Fr8Infrastructure.NET/Data/States/TerminalStatus.cs similarity index 100% rename from Fr8Infrastructure.NET/Data/States/TerminalStatus.cs rename to SDK/Fr8Infrastructure.NET/Data/States/TerminalStatus.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/DocumentFilters/AddDefaultValuesDocumentFilter.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/DocumentFilters/AddDefaultValuesDocumentFilter.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/DocumentFilters/AddDefaultValuesDocumentFilter.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/DocumentFilters/AddDefaultValuesDocumentFilter.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/DocumentFilters/RemoveDuplicatesDocumentFilter.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/DocumentFilters/RemoveDuplicatesDocumentFilter.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/DocumentFilters/RemoveDuplicatesDocumentFilter.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/DocumentFilters/RemoveDuplicatesDocumentFilter.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/OperationFilters/RemoveParameterModelNameOperationFilter.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/OperationFilters/RemoveParameterModelNameOperationFilter.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/OperationFilters/RemoveParameterModelNameOperationFilter.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/OperationFilters/RemoveParameterModelNameOperationFilter.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivitySampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivitySampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivitySampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivitySampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivityTemplateSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivityTemplateSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivityTemplateSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivityTemplateSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivityTemplateSummarySampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivityTemplateSummarySampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivityTemplateSummarySampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ActivityTemplateSummarySampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenGrantSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenGrantSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenGrantSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenGrantSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenTerminalSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenTerminalSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenTerminalSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthenticationTokenTerminalSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthorizationTokenSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthorizationTokenSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthorizationTokenSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/AuthorizationTokenSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ContainerSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ContainerSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ContainerSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ContainerSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateDescriptionSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateDescriptionSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateDescriptionSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateDescriptionSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateSampeFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateSampeFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateSampeFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateSampeFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateStorageSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateStorageSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateStorageSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CrateStorageSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CredentialsSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CredentialsSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CredentialsSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/CredentialsSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/DetailedMessageSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/DetailedMessageSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/DetailedMessageSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/DetailedMessageSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/DocumentationResponseSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/DocumentationResponseSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/DocumentationResponseSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/DocumentationResponseSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ErrorSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ErrorSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ErrorSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ErrorSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FactSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FactSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FactSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FactSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FieldSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FieldSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FieldSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FieldSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FileSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FileSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FileSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FileSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FilterConditionSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FilterConditionSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FilterConditionSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FilterConditionSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/Fr8DataSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/Fr8DataSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/Fr8DataSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/Fr8DataSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FullSubplanSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FullSubplanSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FullSubplanSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/FullSubplanSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/HistoryResultSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/HistoryResultSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/HistoryResultSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/HistoryResultSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ISwaggerSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ISwaggerSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ISwaggerSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ISwaggerSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/IncidentSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/IncidentSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/IncidentSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/IncidentSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/IncomingCratesSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/IncomingCratesSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/IncomingCratesSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/IncomingCratesSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ManifestDescriptionSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ManifestDescriptionSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ManifestDescriptionSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ManifestDescriptionSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/OrganizationSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/OrganizationSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/OrganizationSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/OrganizationSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PageDefinitionSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PageDefinitionSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PageDefinitionSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PageDefinitionSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PayloadSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PayloadSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PayloadSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PayloadSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PhoneNumberCredentialsSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PhoneNumberCredentialsSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PhoneNumberCredentialsSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PhoneNumberCredentialsSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PhoneNumberVerificationSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PhoneNumberVerificationSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PhoneNumberVerificationSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PhoneNumberVerificationSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanEmptySampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanEmptySampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanEmptySampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanEmptySampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanQuerySampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanQuerySampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanQuerySampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanQuerySampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanResultSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanResultSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanResultSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanResultSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PlanSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PollingDataSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PollingDataSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PollingDataSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/PollingDataSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ProfileSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ProfileSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ProfileSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ProfileSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/QuerySampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/QuerySampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/QuerySampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/QuerySampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ResponseMessageSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ResponseMessageSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ResponseMessageSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ResponseMessageSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/SubplanSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/SubplanSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/SubplanSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/SubplanSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalNotificationSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalNotificationSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalNotificationSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalNotificationSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalSummarySampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalSummarySampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalSummarySampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TerminalSummarySampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TokenResponseSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TokenResponseSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TokenResponseSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/TokenResponseSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/UrlResponseSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/UrlResponseSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/UrlResponseSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/UrlResponseSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/UserSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/UserSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/UserSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/UserSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ValidationErrorsSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ValidationErrorsSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ValidationErrorsSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ValidationErrorsSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ValidationResultSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ValidationResultSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ValidationResultSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/ValidationResultSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/WebServiceActivitySetSampleFactory.cs b/SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/WebServiceActivitySetSampleFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Documentation/Swagger/SampleData/WebServiceActivitySetSampleFactory.cs rename to SDK/Fr8Infrastructure.NET/Documentation/Swagger/SampleData/WebServiceActivitySetSampleFactory.cs diff --git a/Fr8Infrastructure.NET/Exceptions/MissingObjectException.cs b/SDK/Fr8Infrastructure.NET/Exceptions/MissingObjectException.cs similarity index 100% rename from Fr8Infrastructure.NET/Exceptions/MissingObjectException.cs rename to SDK/Fr8Infrastructure.NET/Exceptions/MissingObjectException.cs diff --git a/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj b/SDK/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj similarity index 91% rename from Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj rename to SDK/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj index d054e49a4a..8e84e32c95 100644 --- a/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj +++ b/SDK/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj @@ -42,55 +42,55 @@ - ..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll + ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll True - ..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\packages\PusherServer.3.0.0\lib\net35\PusherServer.dll + ..\..\packages\PusherServer.3.0.0\lib\net35\PusherServer.dll True - ..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll True - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll True - ..\packages\Swashbuckle.Core.5.3.2\lib\net40\Swashbuckle.Core.dll + ..\..\packages\Swashbuckle.Core.5.3.2\lib\net40\Swashbuckle.Core.dll True @@ -99,26 +99,26 @@ - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.30506.0\lib\net40\System.Web.Http.WebHost.dll + ..\..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.30506.0\lib\net40\System.Web.Http.WebHost.dll True @@ -128,11 +128,11 @@ - ..\packages\WebActivatorEx.2.0\lib\net40\WebActivatorEx.dll + ..\..\packages\WebActivatorEx.2.0\lib\net40\WebActivatorEx.dll True - ..\packages\YamlDotNet.3.8.0\lib\net35\YamlDotNet.dll + ..\..\packages\YamlDotNet.3.8.0\lib\net35\YamlDotNet.dll True @@ -490,9 +490,9 @@ - + - - + + \ No newline at end of file diff --git a/Fr8Infrastructure.NET/Fr8Infrastructure.NET.nuspec b/SDK/Fr8Infrastructure.NET/Fr8Infrastructure.NET.nuspec similarity index 100% rename from Fr8Infrastructure.NET/Fr8Infrastructure.NET.nuspec rename to SDK/Fr8Infrastructure.NET/Fr8Infrastructure.NET.nuspec diff --git a/Fr8Infrastructure.NET/Interfaces/ICsvReader.cs b/SDK/Fr8Infrastructure.NET/Interfaces/ICsvReader.cs similarity index 100% rename from Fr8Infrastructure.NET/Interfaces/ICsvReader.cs rename to SDK/Fr8Infrastructure.NET/Interfaces/ICsvReader.cs diff --git a/Fr8Infrastructure.NET/Interfaces/IHMACAuthenticator.cs b/SDK/Fr8Infrastructure.NET/Interfaces/IHMACAuthenticator.cs similarity index 100% rename from Fr8Infrastructure.NET/Interfaces/IHMACAuthenticator.cs rename to SDK/Fr8Infrastructure.NET/Interfaces/IHMACAuthenticator.cs diff --git a/Fr8Infrastructure.NET/Interfaces/IHMACService.cs b/SDK/Fr8Infrastructure.NET/Interfaces/IHMACService.cs similarity index 100% rename from Fr8Infrastructure.NET/Interfaces/IHMACService.cs rename to SDK/Fr8Infrastructure.NET/Interfaces/IHMACService.cs diff --git a/Fr8Infrastructure.NET/Interfaces/IPusherNotifier.cs b/SDK/Fr8Infrastructure.NET/Interfaces/IPusherNotifier.cs similarity index 100% rename from Fr8Infrastructure.NET/Interfaces/IPusherNotifier.cs rename to SDK/Fr8Infrastructure.NET/Interfaces/IPusherNotifier.cs diff --git a/Fr8Infrastructure.NET/Interfaces/IRequestSignature.cs b/SDK/Fr8Infrastructure.NET/Interfaces/IRequestSignature.cs similarity index 100% rename from Fr8Infrastructure.NET/Interfaces/IRequestSignature.cs rename to SDK/Fr8Infrastructure.NET/Interfaces/IRequestSignature.cs diff --git a/Fr8Infrastructure.NET/Interfaces/IRestfulServiceClient.cs b/SDK/Fr8Infrastructure.NET/Interfaces/IRestfulServiceClient.cs similarity index 100% rename from Fr8Infrastructure.NET/Interfaces/IRestfulServiceClient.cs rename to SDK/Fr8Infrastructure.NET/Interfaces/IRestfulServiceClient.cs diff --git a/Fr8Infrastructure.NET/Interfaces/IRestfulServiceClientFactory.cs b/SDK/Fr8Infrastructure.NET/Interfaces/IRestfulServiceClientFactory.cs similarity index 100% rename from Fr8Infrastructure.NET/Interfaces/IRestfulServiceClientFactory.cs rename to SDK/Fr8Infrastructure.NET/Interfaces/IRestfulServiceClientFactory.cs diff --git a/Tests/Fr8.Testing/LICENSE b/SDK/Fr8Infrastructure.NET/LICENSE similarity index 100% rename from Tests/Fr8.Testing/LICENSE rename to SDK/Fr8Infrastructure.NET/LICENSE diff --git a/Fr8Infrastructure.NET/PhoneNumberVerificationDTO.cs b/SDK/Fr8Infrastructure.NET/PhoneNumberVerificationDTO.cs similarity index 100% rename from Fr8Infrastructure.NET/PhoneNumberVerificationDTO.cs rename to SDK/Fr8Infrastructure.NET/PhoneNumberVerificationDTO.cs diff --git a/Fr8Infrastructure.NET/Properties/AssemblyInfo.cs b/SDK/Fr8Infrastructure.NET/Properties/AssemblyInfo.cs similarity index 100% rename from Fr8Infrastructure.NET/Properties/AssemblyInfo.cs rename to SDK/Fr8Infrastructure.NET/Properties/AssemblyInfo.cs diff --git a/Fr8Infrastructure.NET/Properties/Resources.Designer.cs b/SDK/Fr8Infrastructure.NET/Properties/Resources.Designer.cs similarity index 100% rename from Fr8Infrastructure.NET/Properties/Resources.Designer.cs rename to SDK/Fr8Infrastructure.NET/Properties/Resources.Designer.cs diff --git a/Fr8Infrastructure.NET/Properties/Resources.resx b/SDK/Fr8Infrastructure.NET/Properties/Resources.resx similarity index 100% rename from Fr8Infrastructure.NET/Properties/Resources.resx rename to SDK/Fr8Infrastructure.NET/Properties/Resources.resx diff --git a/Fr8Infrastructure.NET/Security/Fr8HMACService.cs b/SDK/Fr8Infrastructure.NET/Security/Fr8HMACService.cs similarity index 100% rename from Fr8Infrastructure.NET/Security/Fr8HMACService.cs rename to SDK/Fr8Infrastructure.NET/Security/Fr8HMACService.cs diff --git a/Fr8Infrastructure.NET/Security/HMACAuthenticator.cs b/SDK/Fr8Infrastructure.NET/Security/HMACAuthenticator.cs similarity index 100% rename from Fr8Infrastructure.NET/Security/HMACAuthenticator.cs rename to SDK/Fr8Infrastructure.NET/Security/HMACAuthenticator.cs diff --git a/Fr8Infrastructure.NET/Security/fr8HMACAuthenticateAttribute.cs b/SDK/Fr8Infrastructure.NET/Security/fr8HMACAuthenticateAttribute.cs similarity index 100% rename from Fr8Infrastructure.NET/Security/fr8HMACAuthenticateAttribute.cs rename to SDK/Fr8Infrastructure.NET/Security/fr8HMACAuthenticateAttribute.cs diff --git a/Fr8Infrastructure.NET/StructureMap/StructureMapBootStrapper.cs b/SDK/Fr8Infrastructure.NET/StructureMap/StructureMapBootStrapper.cs similarity index 100% rename from Fr8Infrastructure.NET/StructureMap/StructureMapBootStrapper.cs rename to SDK/Fr8Infrastructure.NET/StructureMap/StructureMapBootStrapper.cs diff --git a/Fr8Infrastructure.NET/Utilities/AsyncMultiLock.LockScope.cs b/SDK/Fr8Infrastructure.NET/Utilities/AsyncMultiLock.LockScope.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/AsyncMultiLock.LockScope.cs rename to SDK/Fr8Infrastructure.NET/Utilities/AsyncMultiLock.LockScope.cs diff --git a/Fr8Infrastructure.NET/Utilities/AsyncMultiLock.cs b/SDK/Fr8Infrastructure.NET/Utilities/AsyncMultiLock.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/AsyncMultiLock.cs rename to SDK/Fr8Infrastructure.NET/Utilities/AsyncMultiLock.cs diff --git a/Fr8Infrastructure.NET/Utilities/AutoMapper/JTokenToStringConverter.cs b/SDK/Fr8Infrastructure.NET/Utilities/AutoMapper/JTokenToStringConverter.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/AutoMapper/JTokenToStringConverter.cs rename to SDK/Fr8Infrastructure.NET/Utilities/AutoMapper/JTokenToStringConverter.cs diff --git a/Fr8Infrastructure.NET/Utilities/AutoMapper/StringToJTokenConverter.cs b/SDK/Fr8Infrastructure.NET/Utilities/AutoMapper/StringToJTokenConverter.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/AutoMapper/StringToJTokenConverter.cs rename to SDK/Fr8Infrastructure.NET/Utilities/AutoMapper/StringToJTokenConverter.cs diff --git a/Fr8Infrastructure.NET/Utilities/ConfigRepository.cs b/SDK/Fr8Infrastructure.NET/Utilities/ConfigRepository.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/ConfigRepository.cs rename to SDK/Fr8Infrastructure.NET/Utilities/ConfigRepository.cs diff --git a/Fr8Infrastructure.NET/Utilities/Configuration/AzureApplicationSettings.cs b/SDK/Fr8Infrastructure.NET/Utilities/Configuration/AzureApplicationSettings.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Configuration/AzureApplicationSettings.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Configuration/AzureApplicationSettings.cs diff --git a/Fr8Infrastructure.NET/Utilities/Configuration/CloudConfigurationManager.cs b/SDK/Fr8Infrastructure.NET/Utilities/Configuration/CloudConfigurationManager.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Configuration/CloudConfigurationManager.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Configuration/CloudConfigurationManager.cs diff --git a/Fr8Infrastructure.NET/Utilities/Configuration/ConfigurationManagerApplicationSettings.cs b/SDK/Fr8Infrastructure.NET/Utilities/Configuration/ConfigurationManagerApplicationSettings.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Configuration/ConfigurationManagerApplicationSettings.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Configuration/ConfigurationManagerApplicationSettings.cs diff --git a/Fr8Infrastructure.NET/Utilities/Configuration/IApplicationSettings.cs b/SDK/Fr8Infrastructure.NET/Utilities/Configuration/IApplicationSettings.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Configuration/IApplicationSettings.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Configuration/IApplicationSettings.cs diff --git a/Fr8Infrastructure.NET/Utilities/Configuration/NativeMethods.cs b/SDK/Fr8Infrastructure.NET/Utilities/Configuration/NativeMethods.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Configuration/NativeMethods.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Configuration/NativeMethods.cs diff --git a/Fr8Infrastructure.NET/Utilities/CsvReader.cs b/SDK/Fr8Infrastructure.NET/Utilities/CsvReader.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/CsvReader.cs rename to SDK/Fr8Infrastructure.NET/Utilities/CsvReader.cs diff --git a/Fr8Infrastructure.NET/Utilities/DateUtility.cs b/SDK/Fr8Infrastructure.NET/Utilities/DateUtility.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/DateUtility.cs rename to SDK/Fr8Infrastructure.NET/Utilities/DateUtility.cs diff --git a/Fr8Infrastructure.NET/Utilities/Encryption.cs b/SDK/Fr8Infrastructure.NET/Utilities/Encryption.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Encryption.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Encryption.cs diff --git a/Fr8Infrastructure.NET/Utilities/Enumerations.cs b/SDK/Fr8Infrastructure.NET/Utilities/Enumerations.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Enumerations.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Enumerations.cs diff --git a/Fr8Infrastructure.NET/Utilities/ExceptionExtesion.cs b/SDK/Fr8Infrastructure.NET/Utilities/ExceptionExtesion.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/ExceptionExtesion.cs rename to SDK/Fr8Infrastructure.NET/Utilities/ExceptionExtesion.cs diff --git a/Fr8Infrastructure.NET/Utilities/ExceptionHandling.cs b/SDK/Fr8Infrastructure.NET/Utilities/ExceptionHandling.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/ExceptionHandling.cs rename to SDK/Fr8Infrastructure.NET/Utilities/ExceptionHandling.cs diff --git a/Fr8Infrastructure.NET/Utilities/Extensions.cs b/SDK/Fr8Infrastructure.NET/Utilities/Extensions.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Extensions.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Extensions.cs diff --git a/Fr8Infrastructure.NET/Utilities/FilterUtility.cs b/SDK/Fr8Infrastructure.NET/Utilities/FilterUtility.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/FilterUtility.cs rename to SDK/Fr8Infrastructure.NET/Utilities/FilterUtility.cs diff --git a/Fr8Infrastructure.NET/Utilities/JsonPackager.cs b/SDK/Fr8Infrastructure.NET/Utilities/JsonPackager.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/JsonPackager.cs rename to SDK/Fr8Infrastructure.NET/Utilities/JsonPackager.cs diff --git a/Fr8Infrastructure.NET/Utilities/JsonSettings.cs b/SDK/Fr8Infrastructure.NET/Utilities/JsonSettings.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/JsonSettings.cs rename to SDK/Fr8Infrastructure.NET/Utilities/JsonSettings.cs diff --git a/Fr8Infrastructure.NET/Utilities/Logging/Fr8PatternLayout.cs b/SDK/Fr8Infrastructure.NET/Utilities/Logging/Fr8PatternLayout.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Logging/Fr8PatternLayout.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Logging/Fr8PatternLayout.cs diff --git a/Fr8Infrastructure.NET/Utilities/Logging/Logger.cs b/SDK/Fr8Infrastructure.NET/Utilities/Logging/Logger.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Logging/Logger.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Logging/Logger.cs diff --git a/Fr8Infrastructure.NET/Utilities/Logging/RemoteSyslogAppender.cs b/SDK/Fr8Infrastructure.NET/Utilities/Logging/RemoteSyslogAppender.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Logging/RemoteSyslogAppender.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Logging/RemoteSyslogAppender.cs diff --git a/Fr8Infrastructure.NET/Utilities/MappingEngineExtensions.cs b/SDK/Fr8Infrastructure.NET/Utilities/MappingEngineExtensions.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/MappingEngineExtensions.cs rename to SDK/Fr8Infrastructure.NET/Utilities/MappingEngineExtensions.cs diff --git a/Fr8Infrastructure.NET/Utilities/MemoryCache.cs b/SDK/Fr8Infrastructure.NET/Utilities/MemoryCache.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/MemoryCache.cs rename to SDK/Fr8Infrastructure.NET/Utilities/MemoryCache.cs diff --git a/Fr8Infrastructure.NET/Utilities/MiscUtils.cs b/SDK/Fr8Infrastructure.NET/Utilities/MiscUtils.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/MiscUtils.cs rename to SDK/Fr8Infrastructure.NET/Utilities/MiscUtils.cs diff --git a/Fr8Infrastructure.NET/Utilities/MockedConfigRepository.cs b/SDK/Fr8Infrastructure.NET/Utilities/MockedConfigRepository.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/MockedConfigRepository.cs rename to SDK/Fr8Infrastructure.NET/Utilities/MockedConfigRepository.cs diff --git a/Fr8Infrastructure.NET/Utilities/ParsedEmailAddress.cs b/SDK/Fr8Infrastructure.NET/Utilities/ParsedEmailAddress.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/ParsedEmailAddress.cs rename to SDK/Fr8Infrastructure.NET/Utilities/ParsedEmailAddress.cs diff --git a/Fr8Infrastructure.NET/Utilities/PersistableIntCollection.cs b/SDK/Fr8Infrastructure.NET/Utilities/PersistableIntCollection.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/PersistableIntCollection.cs rename to SDK/Fr8Infrastructure.NET/Utilities/PersistableIntCollection.cs diff --git a/Fr8Infrastructure.NET/Utilities/PusherNotifier.cs b/SDK/Fr8Infrastructure.NET/Utilities/PusherNotifier.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/PusherNotifier.cs rename to SDK/Fr8Infrastructure.NET/Utilities/PusherNotifier.cs diff --git a/Fr8Infrastructure.NET/Utilities/ReflectionHelper.cs b/SDK/Fr8Infrastructure.NET/Utilities/ReflectionHelper.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/ReflectionHelper.cs rename to SDK/Fr8Infrastructure.NET/Utilities/ReflectionHelper.cs diff --git a/Fr8Infrastructure.NET/Utilities/RegexUtilities.cs b/SDK/Fr8Infrastructure.NET/Utilities/RegexUtilities.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/RegexUtilities.cs rename to SDK/Fr8Infrastructure.NET/Utilities/RegexUtilities.cs diff --git a/Fr8Infrastructure.NET/Utilities/Serializers/Json/JsonSerializer.cs b/SDK/Fr8Infrastructure.NET/Utilities/Serializers/Json/JsonSerializer.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Serializers/Json/JsonSerializer.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Serializers/Json/JsonSerializer.cs diff --git a/Fr8Infrastructure.NET/Utilities/Server.cs b/SDK/Fr8Infrastructure.NET/Utilities/Server.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/Server.cs rename to SDK/Fr8Infrastructure.NET/Utilities/Server.cs diff --git a/Fr8Infrastructure.NET/Utilities/StopwordsRemover.cs b/SDK/Fr8Infrastructure.NET/Utilities/StopwordsRemover.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/StopwordsRemover.cs rename to SDK/Fr8Infrastructure.NET/Utilities/StopwordsRemover.cs diff --git a/Fr8Infrastructure.NET/Utilities/UAParser/UAParser.cs b/SDK/Fr8Infrastructure.NET/Utilities/UAParser/UAParser.cs similarity index 100% rename from Fr8Infrastructure.NET/Utilities/UAParser/UAParser.cs rename to SDK/Fr8Infrastructure.NET/Utilities/UAParser/UAParser.cs diff --git a/Fr8Infrastructure.NET/Utilities/regexes.yaml b/SDK/Fr8Infrastructure.NET/Utilities/regexes.yaml similarity index 100% rename from Fr8Infrastructure.NET/Utilities/regexes.yaml rename to SDK/Fr8Infrastructure.NET/Utilities/regexes.yaml diff --git a/Fr8Infrastructure.NET/app.config b/SDK/Fr8Infrastructure.NET/app.config similarity index 100% rename from Fr8Infrastructure.NET/app.config rename to SDK/Fr8Infrastructure.NET/app.config diff --git a/Fr8Infrastructure.NET/packages.config b/SDK/Fr8Infrastructure.NET/packages.config similarity index 100% rename from Fr8Infrastructure.NET/packages.config rename to SDK/Fr8Infrastructure.NET/packages.config diff --git a/Fr8TerminalBase.NET/BaseClasses/BaseConfiguration.cs b/SDK/Fr8TerminalBase.NET/BaseClasses/BaseConfiguration.cs similarity index 100% rename from Fr8TerminalBase.NET/BaseClasses/BaseConfiguration.cs rename to SDK/Fr8TerminalBase.NET/BaseClasses/BaseConfiguration.cs diff --git a/Fr8TerminalBase.NET/BaseClasses/BaseTerminalWebApiConfig.cs b/SDK/Fr8TerminalBase.NET/BaseClasses/BaseTerminalWebApiConfig.cs similarity index 100% rename from Fr8TerminalBase.NET/BaseClasses/BaseTerminalWebApiConfig.cs rename to SDK/Fr8TerminalBase.NET/BaseClasses/BaseTerminalWebApiConfig.cs diff --git a/Fr8TerminalBase.NET/BaseClasses/DefaultActivityController.cs b/SDK/Fr8TerminalBase.NET/BaseClasses/DefaultActivityController.cs similarity index 100% rename from Fr8TerminalBase.NET/BaseClasses/DefaultActivityController.cs rename to SDK/Fr8TerminalBase.NET/BaseClasses/DefaultActivityController.cs diff --git a/Fr8TerminalBase.NET/BaseClasses/DefaultTerminalController.cs b/SDK/Fr8TerminalBase.NET/BaseClasses/DefaultTerminalController.cs similarity index 100% rename from Fr8TerminalBase.NET/BaseClasses/DefaultTerminalController.cs rename to SDK/Fr8TerminalBase.NET/BaseClasses/DefaultTerminalController.cs diff --git a/Fr8TerminalBase.NET/BaseClasses/ExplicitTerminalActivity.cs b/SDK/Fr8TerminalBase.NET/BaseClasses/ExplicitTerminalActivity.cs similarity index 100% rename from Fr8TerminalBase.NET/BaseClasses/ExplicitTerminalActivity.cs rename to SDK/Fr8TerminalBase.NET/BaseClasses/ExplicitTerminalActivity.cs diff --git a/Fr8TerminalBase.NET/BaseClasses/OAuthApiIntegrationBase.cs b/SDK/Fr8TerminalBase.NET/BaseClasses/OAuthApiIntegrationBase.cs similarity index 100% rename from Fr8TerminalBase.NET/BaseClasses/OAuthApiIntegrationBase.cs rename to SDK/Fr8TerminalBase.NET/BaseClasses/OAuthApiIntegrationBase.cs diff --git a/Fr8TerminalBase.NET/BaseClasses/TerminalActivity.cs b/SDK/Fr8TerminalBase.NET/BaseClasses/TerminalActivity.cs similarity index 100% rename from Fr8TerminalBase.NET/BaseClasses/TerminalActivity.cs rename to SDK/Fr8TerminalBase.NET/BaseClasses/TerminalActivity.cs diff --git a/Fr8TerminalBase.NET/BaseClasses/TerminalActivityBase.cs b/SDK/Fr8TerminalBase.NET/BaseClasses/TerminalActivityBase.cs similarity index 100% rename from Fr8TerminalBase.NET/BaseClasses/TerminalActivityBase.cs rename to SDK/Fr8TerminalBase.NET/BaseClasses/TerminalActivityBase.cs diff --git a/Fr8TerminalBase.NET/Errors/ActivityExecutionException.cs b/SDK/Fr8TerminalBase.NET/Errors/ActivityExecutionException.cs similarity index 100% rename from Fr8TerminalBase.NET/Errors/ActivityExecutionException.cs rename to SDK/Fr8TerminalBase.NET/Errors/ActivityExecutionException.cs diff --git a/Fr8TerminalBase.NET/Errors/AuthorizationTokenExpiredOrInvalidException.cs b/SDK/Fr8TerminalBase.NET/Errors/AuthorizationTokenExpiredOrInvalidException.cs similarity index 100% rename from Fr8TerminalBase.NET/Errors/AuthorizationTokenExpiredOrInvalidException.cs rename to SDK/Fr8TerminalBase.NET/Errors/AuthorizationTokenExpiredOrInvalidException.cs diff --git a/Fr8TerminalBase.NET/Errors/TerminalCodedException.cs b/SDK/Fr8TerminalBase.NET/Errors/TerminalCodedException.cs similarity index 100% rename from Fr8TerminalBase.NET/Errors/TerminalCodedException.cs rename to SDK/Fr8TerminalBase.NET/Errors/TerminalCodedException.cs diff --git a/Fr8TerminalBase.NET/Errors/TerminalErrorCode.cs b/SDK/Fr8TerminalBase.NET/Errors/TerminalErrorCode.cs similarity index 100% rename from Fr8TerminalBase.NET/Errors/TerminalErrorCode.cs rename to SDK/Fr8TerminalBase.NET/Errors/TerminalErrorCode.cs diff --git a/Fr8TerminalBase.NET/Filters/WebApiExceptionFilterAttribute.cs b/SDK/Fr8TerminalBase.NET/Filters/WebApiExceptionFilterAttribute.cs similarity index 100% rename from Fr8TerminalBase.NET/Filters/WebApiExceptionFilterAttribute.cs rename to SDK/Fr8TerminalBase.NET/Filters/WebApiExceptionFilterAttribute.cs diff --git a/Fr8TerminalBase.NET/Fr8TerminalBase.NET.csproj b/SDK/Fr8TerminalBase.NET/Fr8TerminalBase.NET.csproj similarity index 90% rename from Fr8TerminalBase.NET/Fr8TerminalBase.NET.csproj rename to SDK/Fr8TerminalBase.NET/Fr8TerminalBase.NET.csproj index 0ca4ff7823..372e3b32c4 100644 --- a/Fr8TerminalBase.NET/Fr8TerminalBase.NET.csproj +++ b/SDK/Fr8TerminalBase.NET/Fr8TerminalBase.NET.csproj @@ -42,47 +42,47 @@ - ..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll True - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll True - ..\packages\Swashbuckle.Core.5.3.2\lib\net40\Swashbuckle.Core.dll + ..\..\packages\Swashbuckle.Core.5.3.2\lib\net40\Swashbuckle.Core.dll True - ..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True diff --git a/Fr8TerminalBase.NET/Fr8TerminalSDK.Dev.nuspec b/SDK/Fr8TerminalBase.NET/Fr8TerminalSDK.Dev.nuspec similarity index 100% rename from Fr8TerminalBase.NET/Fr8TerminalSDK.Dev.nuspec rename to SDK/Fr8TerminalBase.NET/Fr8TerminalSDK.Dev.nuspec diff --git a/Fr8TerminalBase.NET/Fr8TerminalSDK.Release.nuspec b/SDK/Fr8TerminalBase.NET/Fr8TerminalSDK.Release.nuspec similarity index 100% rename from Fr8TerminalBase.NET/Fr8TerminalSDK.Release.nuspec rename to SDK/Fr8TerminalBase.NET/Fr8TerminalSDK.Release.nuspec diff --git a/Fr8TerminalBase.NET/Helpers/ActivityConfigurator.cs b/SDK/Fr8TerminalBase.NET/Helpers/ActivityConfigurator.cs similarity index 100% rename from Fr8TerminalBase.NET/Helpers/ActivityConfigurator.cs rename to SDK/Fr8TerminalBase.NET/Helpers/ActivityConfigurator.cs diff --git a/Fr8TerminalBase.NET/Helpers/ActivityHelper.cs b/SDK/Fr8TerminalBase.NET/Helpers/ActivityHelper.cs similarity index 100% rename from Fr8TerminalBase.NET/Helpers/ActivityHelper.cs rename to SDK/Fr8TerminalBase.NET/Helpers/ActivityHelper.cs diff --git a/Fr8TerminalBase.NET/Helpers/ApiIntegrationHelper.cs b/SDK/Fr8TerminalBase.NET/Helpers/ApiIntegrationHelper.cs similarity index 100% rename from Fr8TerminalBase.NET/Helpers/ApiIntegrationHelper.cs rename to SDK/Fr8TerminalBase.NET/Helpers/ApiIntegrationHelper.cs diff --git a/Fr8TerminalBase.NET/Helpers/FilterConditionHelper.cs b/SDK/Fr8TerminalBase.NET/Helpers/FilterConditionHelper.cs similarity index 100% rename from Fr8TerminalBase.NET/Helpers/FilterConditionHelper.cs rename to SDK/Fr8TerminalBase.NET/Helpers/FilterConditionHelper.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/AutoMapperBootstrapper.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/AutoMapperBootstrapper.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/AutoMapperBootstrapper.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/AutoMapperBootstrapper.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/Behaviors/BaseControlMappingBehavior.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/BaseControlMappingBehavior.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/Behaviors/BaseControlMappingBehavior.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/BaseControlMappingBehavior.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/Behaviors/CheckBoxMappingBehavior.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/CheckBoxMappingBehavior.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/Behaviors/CheckBoxMappingBehavior.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/CheckBoxMappingBehavior.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/Behaviors/DropDownListMappingBehavior.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/DropDownListMappingBehavior.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/Behaviors/DropDownListMappingBehavior.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/DropDownListMappingBehavior.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/Behaviors/RadioButtonGroupMappingBehavior.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/RadioButtonGroupMappingBehavior.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/Behaviors/RadioButtonGroupMappingBehavior.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/RadioButtonGroupMappingBehavior.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/Behaviors/ReconfigurationListBehavior.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/ReconfigurationListBehavior.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/Behaviors/ReconfigurationListBehavior.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/ReconfigurationListBehavior.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/Behaviors/TextSourceMappingBehavior.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/TextSourceMappingBehavior.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/Behaviors/TextSourceMappingBehavior.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/Behaviors/TextSourceMappingBehavior.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/DynamicControlsAttribute.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/DynamicControlsAttribute.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/DynamicControlsAttribute.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/DynamicControlsAttribute.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/EnhancedValidationManager.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/EnhancedValidationManager.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/EnhancedValidationManager.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/EnhancedValidationManager.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/HubAuthenticationHeaderSignature.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/HubAuthenticationHeaderSignature.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/HubAuthenticationHeaderSignature.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/HubAuthenticationHeaderSignature.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/JsonParser.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/JsonParser.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/JsonParser.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/JsonParser.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/States/ConfigurationRequestType.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/States/ConfigurationRequestType.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/States/ConfigurationRequestType.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/States/ConfigurationRequestType.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/TerminalBootstrapper.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/TerminalBootstrapper.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/TerminalBootstrapper.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/TerminalBootstrapper.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/ValidationExtensions.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/ValidationExtensions.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/ValidationExtensions.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/ValidationExtensions.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/ValidationManager.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/ValidationManager.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/ValidationManager.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/ValidationManager.cs diff --git a/Fr8TerminalBase.NET/Infrastructure/fr8TerminalHMACAuthenticateAttribute.cs b/SDK/Fr8TerminalBase.NET/Infrastructure/fr8TerminalHMACAuthenticateAttribute.cs similarity index 100% rename from Fr8TerminalBase.NET/Infrastructure/fr8TerminalHMACAuthenticateAttribute.cs rename to SDK/Fr8TerminalBase.NET/Infrastructure/fr8TerminalHMACAuthenticateAttribute.cs diff --git a/Fr8TerminalBase.NET/Interfaces/IActivity.cs b/SDK/Fr8TerminalBase.NET/Interfaces/IActivity.cs similarity index 100% rename from Fr8TerminalBase.NET/Interfaces/IActivity.cs rename to SDK/Fr8TerminalBase.NET/Interfaces/IActivity.cs diff --git a/Fr8TerminalBase.NET/Interfaces/IActivityFactory.cs b/SDK/Fr8TerminalBase.NET/Interfaces/IActivityFactory.cs similarity index 100% rename from Fr8TerminalBase.NET/Interfaces/IActivityFactory.cs rename to SDK/Fr8TerminalBase.NET/Interfaces/IActivityFactory.cs diff --git a/Fr8TerminalBase.NET/Interfaces/IHubCommunicator.cs b/SDK/Fr8TerminalBase.NET/Interfaces/IHubCommunicator.cs similarity index 100% rename from Fr8TerminalBase.NET/Interfaces/IHubCommunicator.cs rename to SDK/Fr8TerminalBase.NET/Interfaces/IHubCommunicator.cs diff --git a/Fr8TerminalBase.NET/Interfaces/IOAuthApiIntegration.cs b/SDK/Fr8TerminalBase.NET/Interfaces/IOAuthApiIntegration.cs similarity index 100% rename from Fr8TerminalBase.NET/Interfaces/IOAuthApiIntegration.cs rename to SDK/Fr8TerminalBase.NET/Interfaces/IOAuthApiIntegration.cs diff --git a/Tests/HealthMonitor.HubLauncher/LICENSE b/SDK/Fr8TerminalBase.NET/LICENSE similarity index 100% rename from Tests/HealthMonitor.HubLauncher/LICENSE rename to SDK/Fr8TerminalBase.NET/LICENSE diff --git a/Fr8TerminalBase.NET/Models/ActivityContext.cs b/SDK/Fr8TerminalBase.NET/Models/ActivityContext.cs similarity index 100% rename from Fr8TerminalBase.NET/Models/ActivityContext.cs rename to SDK/Fr8TerminalBase.NET/Models/ActivityContext.cs diff --git a/Fr8TerminalBase.NET/Models/ActivityPayload.cs b/SDK/Fr8TerminalBase.NET/Models/ActivityPayload.cs similarity index 100% rename from Fr8TerminalBase.NET/Models/ActivityPayload.cs rename to SDK/Fr8TerminalBase.NET/Models/ActivityPayload.cs diff --git a/Fr8TerminalBase.NET/Models/ActivityRegistrationKey.cs b/SDK/Fr8TerminalBase.NET/Models/ActivityRegistrationKey.cs similarity index 100% rename from Fr8TerminalBase.NET/Models/ActivityRegistrationKey.cs rename to SDK/Fr8TerminalBase.NET/Models/ActivityRegistrationKey.cs diff --git a/Fr8TerminalBase.NET/Models/AuthorizationToken.cs b/SDK/Fr8TerminalBase.NET/Models/AuthorizationToken.cs similarity index 100% rename from Fr8TerminalBase.NET/Models/AuthorizationToken.cs rename to SDK/Fr8TerminalBase.NET/Models/AuthorizationToken.cs diff --git a/Fr8TerminalBase.NET/Models/ContainerExecutionContext.cs b/SDK/Fr8TerminalBase.NET/Models/ContainerExecutionContext.cs similarity index 100% rename from Fr8TerminalBase.NET/Models/ContainerExecutionContext.cs rename to SDK/Fr8TerminalBase.NET/Models/ContainerExecutionContext.cs diff --git a/Fr8TerminalBase.NET/Properties/AssemblyInfo.cs b/SDK/Fr8TerminalBase.NET/Properties/AssemblyInfo.cs similarity index 100% rename from Fr8TerminalBase.NET/Properties/AssemblyInfo.cs rename to SDK/Fr8TerminalBase.NET/Properties/AssemblyInfo.cs diff --git a/Fr8TerminalBase.NET/Services/ActivityExecutor.cs b/SDK/Fr8TerminalBase.NET/Services/ActivityExecutor.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/ActivityExecutor.cs rename to SDK/Fr8TerminalBase.NET/Services/ActivityExecutor.cs diff --git a/Fr8TerminalBase.NET/Services/ActivityStore.cs b/SDK/Fr8TerminalBase.NET/Services/ActivityStore.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/ActivityStore.cs rename to SDK/Fr8TerminalBase.NET/Services/ActivityStore.cs diff --git a/Fr8TerminalBase.NET/Services/CrateSignaller.cs b/SDK/Fr8TerminalBase.NET/Services/CrateSignaller.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/CrateSignaller.cs rename to SDK/Fr8TerminalBase.NET/Services/CrateSignaller.cs diff --git a/Fr8TerminalBase.NET/Services/DataHubCommunicatorBase.cs b/SDK/Fr8TerminalBase.NET/Services/DataHubCommunicatorBase.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/DataHubCommunicatorBase.cs rename to SDK/Fr8TerminalBase.NET/Services/DataHubCommunicatorBase.cs diff --git a/Fr8TerminalBase.NET/Services/DefaultActivityFactory.cs b/SDK/Fr8TerminalBase.NET/Services/DefaultActivityFactory.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/DefaultActivityFactory.cs rename to SDK/Fr8TerminalBase.NET/Services/DefaultActivityFactory.cs diff --git a/Fr8TerminalBase.NET/Services/DefaultHubCommunicator.cs b/SDK/Fr8TerminalBase.NET/Services/DefaultHubCommunicator.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/DefaultHubCommunicator.cs rename to SDK/Fr8TerminalBase.NET/Services/DefaultHubCommunicator.cs diff --git a/Fr8TerminalBase.NET/Services/DummyHubCommunicator.cs b/SDK/Fr8TerminalBase.NET/Services/DummyHubCommunicator.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/DummyHubCommunicator.cs rename to SDK/Fr8TerminalBase.NET/Services/DummyHubCommunicator.cs diff --git a/Fr8TerminalBase.NET/Services/HubCommunicatorExtensions.cs b/SDK/Fr8TerminalBase.NET/Services/HubCommunicatorExtensions.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/HubCommunicatorExtensions.cs rename to SDK/Fr8TerminalBase.NET/Services/HubCommunicatorExtensions.cs diff --git a/Fr8TerminalBase.NET/Services/HubDiscoveryService.cs b/SDK/Fr8TerminalBase.NET/Services/HubDiscoveryService.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/HubDiscoveryService.cs rename to SDK/Fr8TerminalBase.NET/Services/HubDiscoveryService.cs diff --git a/Fr8TerminalBase.NET/Services/HubEventReporter.cs b/SDK/Fr8TerminalBase.NET/Services/HubEventReporter.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/HubEventReporter.cs rename to SDK/Fr8TerminalBase.NET/Services/HubEventReporter.cs diff --git a/Fr8TerminalBase.NET/Services/HubLoggerExtensions.cs b/SDK/Fr8TerminalBase.NET/Services/HubLoggerExtensions.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/HubLoggerExtensions.cs rename to SDK/Fr8TerminalBase.NET/Services/HubLoggerExtensions.cs diff --git a/Fr8TerminalBase.NET/Services/HubLoggerService.cs b/SDK/Fr8TerminalBase.NET/Services/HubLoggerService.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/HubLoggerService.cs rename to SDK/Fr8TerminalBase.NET/Services/HubLoggerService.cs diff --git a/Fr8TerminalBase.NET/Services/IActivityExecutor.cs b/SDK/Fr8TerminalBase.NET/Services/IActivityExecutor.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/IActivityExecutor.cs rename to SDK/Fr8TerminalBase.NET/Services/IActivityExecutor.cs diff --git a/Fr8TerminalBase.NET/Services/IActivityStore.cs b/SDK/Fr8TerminalBase.NET/Services/IActivityStore.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/IActivityStore.cs rename to SDK/Fr8TerminalBase.NET/Services/IActivityStore.cs diff --git a/Fr8TerminalBase.NET/Services/IHubDiscoveryService.cs b/SDK/Fr8TerminalBase.NET/Services/IHubDiscoveryService.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/IHubDiscoveryService.cs rename to SDK/Fr8TerminalBase.NET/Services/IHubDiscoveryService.cs diff --git a/Fr8TerminalBase.NET/Services/IHubEventReporter.cs b/SDK/Fr8TerminalBase.NET/Services/IHubEventReporter.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/IHubEventReporter.cs rename to SDK/Fr8TerminalBase.NET/Services/IHubEventReporter.cs diff --git a/Fr8TerminalBase.NET/Services/IHubLoggerService.cs b/SDK/Fr8TerminalBase.NET/Services/IHubLoggerService.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/IHubLoggerService.cs rename to SDK/Fr8TerminalBase.NET/Services/IHubLoggerService.cs diff --git a/Fr8TerminalBase.NET/Services/IPushNotificationService.cs b/SDK/Fr8TerminalBase.NET/Services/IPushNotificationService.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/IPushNotificationService.cs rename to SDK/Fr8TerminalBase.NET/Services/IPushNotificationService.cs diff --git a/Fr8TerminalBase.NET/Services/IRetryPolicy.cs b/SDK/Fr8TerminalBase.NET/Services/IRetryPolicy.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/IRetryPolicy.cs rename to SDK/Fr8TerminalBase.NET/Services/IRetryPolicy.cs diff --git a/Fr8TerminalBase.NET/Services/PlanService.cs b/SDK/Fr8TerminalBase.NET/Services/PlanService.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/PlanService.cs rename to SDK/Fr8TerminalBase.NET/Services/PlanService.cs diff --git a/Fr8TerminalBase.NET/Services/PushNotificationService.cs b/SDK/Fr8TerminalBase.NET/Services/PushNotificationService.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/PushNotificationService.cs rename to SDK/Fr8TerminalBase.NET/Services/PushNotificationService.cs diff --git a/Fr8TerminalBase.NET/Services/TestMonitoringHubCommunicator.cs b/SDK/Fr8TerminalBase.NET/Services/TestMonitoringHubCommunicator.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/TestMonitoringHubCommunicator.cs rename to SDK/Fr8TerminalBase.NET/Services/TestMonitoringHubCommunicator.cs diff --git a/Fr8TerminalBase.NET/Services/UiBuilder.cs b/SDK/Fr8TerminalBase.NET/Services/UiBuilder.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/UiBuilder.cs rename to SDK/Fr8TerminalBase.NET/Services/UiBuilder.cs diff --git a/Fr8TerminalBase.NET/Services/UpstreamQueryManager.cs b/SDK/Fr8TerminalBase.NET/Services/UpstreamQueryManager.cs similarity index 100% rename from Fr8TerminalBase.NET/Services/UpstreamQueryManager.cs rename to SDK/Fr8TerminalBase.NET/Services/UpstreamQueryManager.cs diff --git a/Fr8TerminalBase.NET/app.config b/SDK/Fr8TerminalBase.NET/app.config similarity index 100% rename from Fr8TerminalBase.NET/app.config rename to SDK/Fr8TerminalBase.NET/app.config diff --git a/Fr8TerminalBase.NET/packages.config b/SDK/Fr8TerminalBase.NET/packages.config similarity index 100% rename from Fr8TerminalBase.NET/packages.config rename to SDK/Fr8TerminalBase.NET/packages.config diff --git a/Services/PlanDirectory/Infrastructure/PlanTemplateDetailsGenerator.cs b/Services/PlanDirectory/Infrastructure/PlanTemplateDetailsGenerator.cs deleted file mode 100644 index 972fe1baaf..0000000000 --- a/Services/PlanDirectory/Infrastructure/PlanTemplateDetailsGenerator.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Web; -using Fr8.Infrastructure.Data.DataTransferObjects; -using PlanDirectory.Interfaces; -using PlanDirectory.Templates; - -namespace PlanDirectory.Infrastructure -{ - public class PlanTemplateDetailsGenerator : IPlanTemplateDetailsGenerator - { - private readonly ITemplateGenerator _templateGenerator; - - public PlanTemplateDetailsGenerator(ITemplateGenerator templateGenerator) - { - if (templateGenerator == null) - throw new ArgumentNullException(nameof(templateGenerator)); - - _templateGenerator = templateGenerator; - } - - public async Task Generate(PublishPlanTemplateDTO publishPlanTemplateDto) - { - var pageName = publishPlanTemplateDto.Name + ".html"; - await _templateGenerator.Generate(new PlanTemplateDetailsTemplate(), pageName, new Dictionary - { - ["planTemplate"] = publishPlanTemplateDto - }); - } - } -} \ No newline at end of file diff --git a/Services/PlanDirectory/Interfaces/IPlanTemplateDetailsGenerator.cs b/Services/PlanDirectory/Interfaces/IPlanTemplateDetailsGenerator.cs deleted file mode 100644 index 6f32a61dc2..0000000000 --- a/Services/PlanDirectory/Interfaces/IPlanTemplateDetailsGenerator.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Threading.Tasks; -using Fr8.Infrastructure.Data.DataTransferObjects; - -namespace PlanDirectory.Interfaces -{ - public interface IPlanTemplateDetailsGenerator - { - Task Generate(PublishPlanTemplateDTO publishPlanTemplateDto); - } -} \ No newline at end of file diff --git a/Services/PlanDirectory/Templates/PlanCategoryTemplate.cs b/Services/PlanDirectory/Templates/PlanCategoryTemplate.cs deleted file mode 100644 index 0b977bb213..0000000000 --- a/Services/PlanDirectory/Templates/PlanCategoryTemplate.cs +++ /dev/null @@ -1,535 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 14.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ - -namespace HubWeb.Templates -{ - /// - /// Class to produce the template output - /// - - #line 1 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "14.0.0.0")] - public partial class PlanCategoryTemplate : PlanCategoryTemplateBase - { -#line hidden - /// - /// Create the template output - /// - public virtual string TransformText() - { - this.Write(@" - - - - - - - - - - - - - - - -
    -
    -
    - -
    -

    Plan Directory - "); - - #line 27 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(Name)); - - #line default - #line hidden - this.Write("

    \r\n
    \r\n\t\t\t"); - - #line 29 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - int i = 0; - foreach (var tag in Tags) - { - - #line default - #line hidden - this.Write("\t\t\t\t\t\r\n\t\t\t\t"); - - #line 33 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - if (i < Tags.Count - 1) - { - - #line default - #line hidden - this.Write("\t\t\t\t\r\n\t\t\t\t"); - - #line 36 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - i++; - } - - #line default - #line hidden - this.Write(" \r\n\t\t"); - - #line 38 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - } - - #line default - #line hidden - this.Write(@"
    -
    -

    Plan Definition Description

    -

    Related Plans

    - - - - - - - - - - - "); - - #line 53 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - int number = 1; - foreach (var plan in RelatedPlans) - { - - #line default - #line hidden - this.Write(" \r\n \r\n \r\n \r\n \r\n \r\n " + - " "); - - #line 62 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - } - - #line default - #line hidden - this.Write(" \r\n \r\n
    #Plan NamePlan DescriptionAction
    "); - - #line 57 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(number++)); - - #line default - #line hidden - this.Write(""); - - #line 58 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(plan.Item1)); - - #line default - #line hidden - this.Write(""); - - #line 59 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(plan.Item2)); - - #line default - #line hidden - this.Write("
    \r\n
    \r\n\r\n\r\n"); - return this.GenerationEnvironment.ToString(); - } - - #line 1 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" - -private string _NameField; - -/// -/// Access the Name parameter of the template. -/// -private string Name -{ - get - { - return this._NameField; - } -} - -private global::System.Collections.Generic.IDictionary _TagsField; - -/// -/// Access the Tags parameter of the template. -/// -private global::System.Collections.Generic.IDictionary Tags -{ - get - { - return this._TagsField; - } -} - -private global::System.Collections.Generic.IList> _RelatedPlansField; - -/// -/// Access the RelatedPlans parameter of the template. -/// -private global::System.Collections.Generic.IList> RelatedPlans -{ - get - { - return this._RelatedPlansField; - } -} - - -/// -/// Initialize the template -/// -public virtual void Initialize() -{ - if ((this.Errors.HasErrors == false)) - { -bool NameValueAcquired = false; -if (this.Session.ContainsKey("Name")) -{ - this._NameField = ((string)(this.Session["Name"])); - NameValueAcquired = true; -} -if ((NameValueAcquired == false)) -{ - object data = global::System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("Name"); - if ((data != null)) - { - this._NameField = ((string)(data)); - } -} -bool TagsValueAcquired = false; -if (this.Session.ContainsKey("Tags")) -{ - this._TagsField = ((global::System.Collections.Generic.IDictionary)(this.Session["Tags"])); - TagsValueAcquired = true; -} -if ((TagsValueAcquired == false)) -{ - object data = global::System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("Tags"); - if ((data != null)) - { - this._TagsField = ((global::System.Collections.Generic.IDictionary)(data)); - } -} -bool RelatedPlansValueAcquired = false; -if (this.Session.ContainsKey("RelatedPlans")) -{ - this._RelatedPlansField = ((global::System.Collections.Generic.IList>)(this.Session["RelatedPlans"])); - RelatedPlansValueAcquired = true; -} -if ((RelatedPlansValueAcquired == false)) -{ - object data = global::System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("RelatedPlans"); - if ((data != null)) - { - this._RelatedPlansField = ((global::System.Collections.Generic.IList>)(data)); - } -} - - - } -} - - - - #line default - #line hidden - } - - #line default - #line hidden - #region Base class - /// - /// Base class for this transformation - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "14.0.0.0")] - public class PlanCategoryTemplateBase - { - #region Fields - private global::System.Text.StringBuilder generationEnvironmentField; - private global::System.CodeDom.Compiler.CompilerErrorCollection errorsField; - private global::System.Collections.Generic.List indentLengthsField; - private string currentIndentField = ""; - private bool endsWithNewline; - private global::System.Collections.Generic.IDictionary sessionField; - #endregion - #region Properties - /// - /// The string builder that generation-time code is using to assemble generated output - /// - protected System.Text.StringBuilder GenerationEnvironment - { - get - { - if ((this.generationEnvironmentField == null)) - { - this.generationEnvironmentField = new global::System.Text.StringBuilder(); - } - return this.generationEnvironmentField; - } - set - { - this.generationEnvironmentField = value; - } - } - /// - /// The error collection for the generation process - /// - public System.CodeDom.Compiler.CompilerErrorCollection Errors - { - get - { - if ((this.errorsField == null)) - { - this.errorsField = new global::System.CodeDom.Compiler.CompilerErrorCollection(); - } - return this.errorsField; - } - } - /// - /// A list of the lengths of each indent that was added with PushIndent - /// - private System.Collections.Generic.List indentLengths - { - get - { - if ((this.indentLengthsField == null)) - { - this.indentLengthsField = new global::System.Collections.Generic.List(); - } - return this.indentLengthsField; - } - } - /// - /// Gets the current indent we use when adding lines to the output - /// - public string CurrentIndent - { - get - { - return this.currentIndentField; - } - } - /// - /// Current transformation session - /// - public virtual global::System.Collections.Generic.IDictionary Session - { - get - { - return this.sessionField; - } - set - { - this.sessionField = value; - } - } - #endregion - #region Transform-time helpers - /// - /// Write text directly into the generated output - /// - public void Write(string textToAppend) - { - if (string.IsNullOrEmpty(textToAppend)) - { - return; - } - // If we're starting off, or if the previous text ended with a newline, - // we have to append the current indent first. - if (((this.GenerationEnvironment.Length == 0) - || this.endsWithNewline)) - { - this.GenerationEnvironment.Append(this.currentIndentField); - this.endsWithNewline = false; - } - // Check if the current text ends with a newline - if (textToAppend.EndsWith(global::System.Environment.NewLine, global::System.StringComparison.CurrentCulture)) - { - this.endsWithNewline = true; - } - // This is an optimization. If the current indent is "", then we don't have to do any - // of the more complex stuff further down. - if ((this.currentIndentField.Length == 0)) - { - this.GenerationEnvironment.Append(textToAppend); - return; - } - // Everywhere there is a newline in the text, add an indent after it - textToAppend = textToAppend.Replace(global::System.Environment.NewLine, (global::System.Environment.NewLine + this.currentIndentField)); - // If the text ends with a newline, then we should strip off the indent added at the very end - // because the appropriate indent will be added when the next time Write() is called - if (this.endsWithNewline) - { - this.GenerationEnvironment.Append(textToAppend, 0, (textToAppend.Length - this.currentIndentField.Length)); - } - else - { - this.GenerationEnvironment.Append(textToAppend); - } - } - /// - /// Write text directly into the generated output - /// - public void WriteLine(string textToAppend) - { - this.Write(textToAppend); - this.GenerationEnvironment.AppendLine(); - this.endsWithNewline = true; - } - /// - /// Write formatted text directly into the generated output - /// - public void Write(string format, params object[] args) - { - this.Write(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); - } - /// - /// Write formatted text directly into the generated output - /// - public void WriteLine(string format, params object[] args) - { - this.WriteLine(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); - } - /// - /// Raise an error - /// - public void Error(string message) - { - System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); - error.ErrorText = message; - this.Errors.Add(error); - } - /// - /// Raise a warning - /// - public void Warning(string message) - { - System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); - error.ErrorText = message; - error.IsWarning = true; - this.Errors.Add(error); - } - /// - /// Increase the indent - /// - public void PushIndent(string indent) - { - if ((indent == null)) - { - throw new global::System.ArgumentNullException("indent"); - } - this.currentIndentField = (this.currentIndentField + indent); - this.indentLengths.Add(indent.Length); - } - /// - /// Remove the last indent that was added with PushIndent - /// - public string PopIndent() - { - string returnValue = ""; - if ((this.indentLengths.Count > 0)) - { - int indentLength = this.indentLengths[(this.indentLengths.Count - 1)]; - this.indentLengths.RemoveAt((this.indentLengths.Count - 1)); - if ((indentLength > 0)) - { - returnValue = this.currentIndentField.Substring((this.currentIndentField.Length - indentLength)); - this.currentIndentField = this.currentIndentField.Remove((this.currentIndentField.Length - indentLength)); - } - } - return returnValue; - } - /// - /// Remove any indentation - /// - public void ClearIndent() - { - this.indentLengths.Clear(); - this.currentIndentField = ""; - } - #endregion - #region ToString Helpers - /// - /// Utility class to produce culture-oriented representation of an object as a string. - /// - public class ToStringInstanceHelper - { - private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture; - /// - /// Gets or sets format provider to be used by ToStringWithCulture method. - /// - public System.IFormatProvider FormatProvider - { - get - { - return this.formatProviderField ; - } - set - { - if ((value != null)) - { - this.formatProviderField = value; - } - } - } - /// - /// This is called from the compile/run appdomain to convert objects within an expression block to a string - /// - public string ToStringWithCulture(object objectToConvert) - { - if ((objectToConvert == null)) - { - throw new global::System.ArgumentNullException("objectToConvert"); - } - System.Type t = objectToConvert.GetType(); - System.Reflection.MethodInfo method = t.GetMethod("ToString", new System.Type[] { - typeof(System.IFormatProvider)}); - if ((method == null)) - { - return objectToConvert.ToString(); - } - else - { - return ((string)(method.Invoke(objectToConvert, new object[] { - this.formatProviderField }))); - } - } - } - private ToStringInstanceHelper toStringHelperField = new ToStringInstanceHelper(); - /// - /// Helper to produce culture-oriented representation of an object as a string - /// - public ToStringInstanceHelper ToStringHelper - { - get - { - return this.toStringHelperField; - } - } - #endregion - } - #endregion -} diff --git a/Services/PlanDirectory/Templates/PlanCategoryTemplate.tt b/Services/PlanDirectory/Templates/PlanCategoryTemplate.tt deleted file mode 100644 index 45ef789a69..0000000000 --- a/Services/PlanDirectory/Templates/PlanCategoryTemplate.tt +++ /dev/null @@ -1,68 +0,0 @@ -<#@ template language="C#" #> -<#@ parameter name="Name" type="System.String" #> -<#@ parameter name="Tags" type="System.Collections.Generic.IDictionary" #> -<#@ parameter name="RelatedPlans" type="System.Collections.Generic.IList>" #> - - - - - - - - - - - - - - - - -
    - -
    - -
    -

    Plan Directory - <#=Name#>

    -
    - <# int i = 0; - foreach (var tag in Tags) - { #> - - <# if (i < Tags.Count - 1) - { #> - - <# i++; - } #> - <# } #> -
    -
    -

    Plan Definition Description

    -

    Related Plans

    - - - - - - - - - - - <# int number = 1; - foreach (var plan in RelatedPlans) - {#> - - - - - - - <# } #> - - -
    #Plan NamePlan DescriptionAction
    <#=number++#><#=plan.Item1#><#=plan.Item2#>Create
    -
    - - diff --git a/Services/PlanDirectory/Templates/PlanTemplateDetailsTemplate.cs b/Services/PlanDirectory/Templates/PlanTemplateDetailsTemplate.cs deleted file mode 100644 index d1a08d8b79..0000000000 --- a/Services/PlanDirectory/Templates/PlanTemplateDetailsTemplate.cs +++ /dev/null @@ -1,568 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 14.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -namespace PlanDirectory.Templates -{ - using PlanDirectory.ViewModels; - using System; - - /// - /// Class to produce the template output - /// - - #line 1 "d:\Dev\Fr8Core\Services\PlanDirectory\Templates\PlanTemplateDetailsTemplate.tt" - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "14.0.0.0")] - public partial class PlanTemplateDetailsTemplate : PlanTemplateDetailsTemplateBase - { -#line hidden - /// - /// Create the template output - /// - public virtual string TransformText() - { - this.Write(@" - - - - - - - - - - - - - - - - - Fr8 - Plan Template Details - - "); - - #line 24 "d:\Dev\Fr8Core\Services\PlanDirectory\Templates\PlanTemplateDetailsTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(planTemplate.Name)); - - #line default - #line hidden - this.Write(@" - - - - - -
    - -
    -
    -
    - - -
    -
    -

    - "); - - #line 116 "d:\Dev\Fr8Core\Services\PlanDirectory\Templates\PlanTemplateDetailsTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(DateTime.Now.Year)); - - #line default - #line hidden - this.Write(" © The Fr8 Company. All Rights Reserved.

    \r\n
    \r\n
    \r\n " + - "\r\n\r\n"); - return this.GenerationEnvironment.ToString(); - } - - #line 1 "d:\Dev\Fr8Core\Services\PlanDirectory\Templates\PlanTemplateDetailsTemplate.tt" - -private global::Fr8.Infrastructure.Data.DataTransferObjects.PublishPlanTemplateDTO _planTemplateField; - -/// -/// Access the planTemplate parameter of the template. -/// -private global::Fr8.Infrastructure.Data.DataTransferObjects.PublishPlanTemplateDTO planTemplate -{ - get - { - return this._planTemplateField; - } -} - - -/// -/// Initialize the template -/// -public virtual void Initialize() -{ - if ((this.Errors.HasErrors == false)) - { -bool planTemplateValueAcquired = false; -if (this.Session.ContainsKey("planTemplate")) -{ - this._planTemplateField = ((global::Fr8.Infrastructure.Data.DataTransferObjects.PublishPlanTemplateDTO)(this.Session["planTemplate"])); - planTemplateValueAcquired = true; -} -if ((planTemplateValueAcquired == false)) -{ - object data = global::System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("planTemplate"); - if ((data != null)) - { - this._planTemplateField = ((global::Fr8.Infrastructure.Data.DataTransferObjects.PublishPlanTemplateDTO)(data)); - } -} - - - } -} - - - - #line default - #line hidden - } - - #line default - #line hidden - #region Base class - /// - /// Base class for this transformation - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "14.0.0.0")] - public class PlanTemplateDetailsTemplateBase - { - #region Fields - private global::System.Text.StringBuilder generationEnvironmentField; - private global::System.CodeDom.Compiler.CompilerErrorCollection errorsField; - private global::System.Collections.Generic.List indentLengthsField; - private string currentIndentField = ""; - private bool endsWithNewline; - private global::System.Collections.Generic.IDictionary sessionField; - #endregion - #region Properties - /// - /// The string builder that generation-time code is using to assemble generated output - /// - protected System.Text.StringBuilder GenerationEnvironment - { - get - { - if ((this.generationEnvironmentField == null)) - { - this.generationEnvironmentField = new global::System.Text.StringBuilder(); - } - return this.generationEnvironmentField; - } - set - { - this.generationEnvironmentField = value; - } - } - /// - /// The error collection for the generation process - /// - public System.CodeDom.Compiler.CompilerErrorCollection Errors - { - get - { - if ((this.errorsField == null)) - { - this.errorsField = new global::System.CodeDom.Compiler.CompilerErrorCollection(); - } - return this.errorsField; - } - } - /// - /// A list of the lengths of each indent that was added with PushIndent - /// - private System.Collections.Generic.List indentLengths - { - get - { - if ((this.indentLengthsField == null)) - { - this.indentLengthsField = new global::System.Collections.Generic.List(); - } - return this.indentLengthsField; - } - } - /// - /// Gets the current indent we use when adding lines to the output - /// - public string CurrentIndent - { - get - { - return this.currentIndentField; - } - } - /// - /// Current transformation session - /// - public virtual global::System.Collections.Generic.IDictionary Session - { - get - { - return this.sessionField; - } - set - { - this.sessionField = value; - } - } - #endregion - #region Transform-time helpers - /// - /// Write text directly into the generated output - /// - public void Write(string textToAppend) - { - if (string.IsNullOrEmpty(textToAppend)) - { - return; - } - // If we're starting off, or if the previous text ended with a newline, - // we have to append the current indent first. - if (((this.GenerationEnvironment.Length == 0) - || this.endsWithNewline)) - { - this.GenerationEnvironment.Append(this.currentIndentField); - this.endsWithNewline = false; - } - // Check if the current text ends with a newline - if (textToAppend.EndsWith(global::System.Environment.NewLine, global::System.StringComparison.CurrentCulture)) - { - this.endsWithNewline = true; - } - // This is an optimization. If the current indent is "", then we don't have to do any - // of the more complex stuff further down. - if ((this.currentIndentField.Length == 0)) - { - this.GenerationEnvironment.Append(textToAppend); - return; - } - // Everywhere there is a newline in the text, add an indent after it - textToAppend = textToAppend.Replace(global::System.Environment.NewLine, (global::System.Environment.NewLine + this.currentIndentField)); - // If the text ends with a newline, then we should strip off the indent added at the very end - // because the appropriate indent will be added when the next time Write() is called - if (this.endsWithNewline) - { - this.GenerationEnvironment.Append(textToAppend, 0, (textToAppend.Length - this.currentIndentField.Length)); - } - else - { - this.GenerationEnvironment.Append(textToAppend); - } - } - /// - /// Write text directly into the generated output - /// - public void WriteLine(string textToAppend) - { - this.Write(textToAppend); - this.GenerationEnvironment.AppendLine(); - this.endsWithNewline = true; - } - /// - /// Write formatted text directly into the generated output - /// - public void Write(string format, params object[] args) - { - this.Write(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); - } - /// - /// Write formatted text directly into the generated output - /// - public void WriteLine(string format, params object[] args) - { - this.WriteLine(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); - } - /// - /// Raise an error - /// - public void Error(string message) - { - System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); - error.ErrorText = message; - this.Errors.Add(error); - } - /// - /// Raise a warning - /// - public void Warning(string message) - { - System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); - error.ErrorText = message; - error.IsWarning = true; - this.Errors.Add(error); - } - /// - /// Increase the indent - /// - public void PushIndent(string indent) - { - if ((indent == null)) - { - throw new global::System.ArgumentNullException("indent"); - } - this.currentIndentField = (this.currentIndentField + indent); - this.indentLengths.Add(indent.Length); - } - /// - /// Remove the last indent that was added with PushIndent - /// - public string PopIndent() - { - string returnValue = ""; - if ((this.indentLengths.Count > 0)) - { - int indentLength = this.indentLengths[(this.indentLengths.Count - 1)]; - this.indentLengths.RemoveAt((this.indentLengths.Count - 1)); - if ((indentLength > 0)) - { - returnValue = this.currentIndentField.Substring((this.currentIndentField.Length - indentLength)); - this.currentIndentField = this.currentIndentField.Remove((this.currentIndentField.Length - indentLength)); - } - } - return returnValue; - } - /// - /// Remove any indentation - /// - public void ClearIndent() - { - this.indentLengths.Clear(); - this.currentIndentField = ""; - } - #endregion - #region ToString Helpers - /// - /// Utility class to produce culture-oriented representation of an object as a string. - /// - public class ToStringInstanceHelper - { - private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture; - /// - /// Gets or sets format provider to be used by ToStringWithCulture method. - /// - public System.IFormatProvider FormatProvider - { - get - { - return this.formatProviderField ; - } - set - { - if ((value != null)) - { - this.formatProviderField = value; - } - } - } - /// - /// This is called from the compile/run appdomain to convert objects within an expression block to a string - /// - public string ToStringWithCulture(object objectToConvert) - { - if ((objectToConvert == null)) - { - throw new global::System.ArgumentNullException("objectToConvert"); - } - System.Type t = objectToConvert.GetType(); - System.Reflection.MethodInfo method = t.GetMethod("ToString", new System.Type[] { - typeof(System.IFormatProvider)}); - if ((method == null)) - { - return objectToConvert.ToString(); - } - else - { - return ((string)(method.Invoke(objectToConvert, new object[] { - this.formatProviderField }))); - } - } - } - private ToStringInstanceHelper toStringHelperField = new ToStringInstanceHelper(); - /// - /// Helper to produce culture-oriented representation of an object as a string - /// - public ToStringInstanceHelper ToStringHelper - { - get - { - return this.toStringHelperField; - } - } - #endregion - } - #endregion -} diff --git a/Services/PlanDirectory/Templates/PlanTemplateDetailsTemplate.tt b/Services/PlanDirectory/Templates/PlanTemplateDetailsTemplate.tt deleted file mode 100644 index e250157531..0000000000 --- a/Services/PlanDirectory/Templates/PlanTemplateDetailsTemplate.tt +++ /dev/null @@ -1,120 +0,0 @@ -<#@ template language="C#" #> -<#@ assembly name="$(SolutionDir)\bin\Fr8Infrastructure.NET.dll" #> -<#@ assembly name="$(ProjectDir)\bin\PlanDirectory.dll" #> -<#@ import namespace="PlanDirectory.ViewModels" #> -<#@ parameter name="planTemplate" type="Fr8.Infrastructure.Data.DataTransferObjects.PublishPlanTemplateDTO" #> - - - - - - - - - - - - - - - - - - Fr8 - Plan Template Details - - <#=planTemplate.Name#> - - - - - -
    - - -
    -
    -
    -
    - -
    -
    -

    Details - <#=planTemplate.Name#>

    -
    -
    -
    - -
    -
    - -
    -
    Name:
    {{planTemplate.Name}} -
    -
    -
    Created by:
    {{planTemplate.Owner}} -
    -
    -
    Description:
    -
    {{planTemplate.Description}}
    -
    -
    -
    -
    -
    -
    - -
    - -
    -
    - -
    -
    - - diff --git a/Templates/ManifestDescriptionTemplate.cs b/Templates/ManifestDescriptionTemplate.cs deleted file mode 100644 index ba81f3e4a6..0000000000 --- a/Templates/ManifestDescriptionTemplate.cs +++ /dev/null @@ -1,456 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 14.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ - -using Newtonsoft.Json; - -namespace HubWeb.Templates -{ - /// - /// Class to produce the template output - /// - - #line 1 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "14.0.0.0")] - public partial class ManifestDescriptionTemplate : ManifestDescriptionTemplateBase - { -#line hidden - /// - /// Create the template output - /// - public virtual string TransformText() - { - - #line 6 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" -var manifestName = Manifests[0].Name; - - #line default - #line hidden - this.Write(@" - - - - - - - - - - - - Fr8 - "); - - #line 19 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(manifestName)); - - #line default - #line hidden - this.Write("\r\n \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n " + - "
    \r\n
    \r\n
    \r\n

    Manifest - <" + - "em>"); - - #line 29 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(manifestName)); - - #line default - #line hidden - this.Write("

    \r\n\t\t"); - - #line 30 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" -foreach (var manifest in Manifests) - { - - #line default - #line hidden - this.Write("
    \r\n
    \r\n <" + - "hr />\r\n
    \r\n
    \r\n
    \r\n " + - "
    \r\n

    V"); - - #line 39 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(manifest.Version)); - - #line default - #line hidden - this.Write(" Registered By "); - - #line 39 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(manifest.RegisteredBy)); - - #line default - #line hidden - this.Write("

    \r\n
    \r\n
    \r\n
    \r\n " + - "
    \r\n

    \r\n "); - - #line 45 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(manifest.Description)); - - #line default - #line hidden - this.Write("\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Sample J" + - "SON\r\n
    \r\n
    \r\n\t\t"); - - #line 54 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" - - var resultJson = manifest.SampleJSON; - try - { - resultJson = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(manifest.SampleJSON), Formatting.Indented); - } - catch - { - //If we can't format manifest JSON we leave it as-is - } - - - #line default - #line hidden - this.Write("
    \r\n
    \r\n <" + - "pre>\r\n"); - - #line 68 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" - this.Write(this.ToStringHelper.ToStringWithCulture(resultJson)); - - #line default - #line hidden - this.Write("\r\n \r\n
    \r\n
    \r\n\t\t"); - - #line 72 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" - } - - #line default - #line hidden - this.Write("
    \r\n\r\n\r\n"); - return this.GenerationEnvironment.ToString(); - } - - #line 1 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" - -private global::System.Collections.Generic.IList _ManifestsField; - -/// -/// Access the Manifests parameter of the template. -/// -private global::System.Collections.Generic.IList Manifests -{ - get - { - return this._ManifestsField; - } -} - - -/// -/// Initialize the template -/// -public virtual void Initialize() -{ - if ((this.Errors.HasErrors == false)) - { -bool ManifestsValueAcquired = false; -if (this.Session.ContainsKey("Manifests")) -{ - this._ManifestsField = ((global::System.Collections.Generic.IList)(this.Session["Manifests"])); - ManifestsValueAcquired = true; -} -if ((ManifestsValueAcquired == false)) -{ - object data = global::System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("Manifests"); - if ((data != null)) - { - this._ManifestsField = ((global::System.Collections.Generic.IList)(data)); - } -} - - - } -} - - - - #line default - #line hidden - } - - #line default - #line hidden - #region Base class - /// - /// Base class for this transformation - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "14.0.0.0")] - public class ManifestDescriptionTemplateBase - { - #region Fields - private global::System.Text.StringBuilder generationEnvironmentField; - private global::System.CodeDom.Compiler.CompilerErrorCollection errorsField; - private global::System.Collections.Generic.List indentLengthsField; - private string currentIndentField = ""; - private bool endsWithNewline; - private global::System.Collections.Generic.IDictionary sessionField; - #endregion - #region Properties - /// - /// The string builder that generation-time code is using to assemble generated output - /// - protected System.Text.StringBuilder GenerationEnvironment - { - get - { - if ((this.generationEnvironmentField == null)) - { - this.generationEnvironmentField = new global::System.Text.StringBuilder(); - } - return this.generationEnvironmentField; - } - set - { - this.generationEnvironmentField = value; - } - } - /// - /// The error collection for the generation process - /// - public System.CodeDom.Compiler.CompilerErrorCollection Errors - { - get - { - if ((this.errorsField == null)) - { - this.errorsField = new global::System.CodeDom.Compiler.CompilerErrorCollection(); - } - return this.errorsField; - } - } - /// - /// A list of the lengths of each indent that was added with PushIndent - /// - private System.Collections.Generic.List indentLengths - { - get - { - if ((this.indentLengthsField == null)) - { - this.indentLengthsField = new global::System.Collections.Generic.List(); - } - return this.indentLengthsField; - } - } - /// - /// Gets the current indent we use when adding lines to the output - /// - public string CurrentIndent - { - get - { - return this.currentIndentField; - } - } - /// - /// Current transformation session - /// - public virtual global::System.Collections.Generic.IDictionary Session - { - get - { - return this.sessionField; - } - set - { - this.sessionField = value; - } - } - #endregion - #region Transform-time helpers - /// - /// Write text directly into the generated output - /// - public void Write(string textToAppend) - { - if (string.IsNullOrEmpty(textToAppend)) - { - return; - } - // If we're starting off, or if the previous text ended with a newline, - // we have to append the current indent first. - if (((this.GenerationEnvironment.Length == 0) - || this.endsWithNewline)) - { - this.GenerationEnvironment.Append(this.currentIndentField); - this.endsWithNewline = false; - } - // Check if the current text ends with a newline - if (textToAppend.EndsWith(global::System.Environment.NewLine, global::System.StringComparison.CurrentCulture)) - { - this.endsWithNewline = true; - } - // This is an optimization. If the current indent is "", then we don't have to do any - // of the more complex stuff further down. - if ((this.currentIndentField.Length == 0)) - { - this.GenerationEnvironment.Append(textToAppend); - return; - } - // Everywhere there is a newline in the text, add an indent after it - textToAppend = textToAppend.Replace(global::System.Environment.NewLine, (global::System.Environment.NewLine + this.currentIndentField)); - // If the text ends with a newline, then we should strip off the indent added at the very end - // because the appropriate indent will be added when the next time Write() is called - if (this.endsWithNewline) - { - this.GenerationEnvironment.Append(textToAppend, 0, (textToAppend.Length - this.currentIndentField.Length)); - } - else - { - this.GenerationEnvironment.Append(textToAppend); - } - } - /// - /// Write text directly into the generated output - /// - public void WriteLine(string textToAppend) - { - this.Write(textToAppend); - this.GenerationEnvironment.AppendLine(); - this.endsWithNewline = true; - } - /// - /// Write formatted text directly into the generated output - /// - public void Write(string format, params object[] args) - { - this.Write(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); - } - /// - /// Write formatted text directly into the generated output - /// - public void WriteLine(string format, params object[] args) - { - this.WriteLine(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); - } - /// - /// Raise an error - /// - public void Error(string message) - { - System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); - error.ErrorText = message; - this.Errors.Add(error); - } - /// - /// Raise a warning - /// - public void Warning(string message) - { - System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); - error.ErrorText = message; - error.IsWarning = true; - this.Errors.Add(error); - } - /// - /// Increase the indent - /// - public void PushIndent(string indent) - { - if ((indent == null)) - { - throw new global::System.ArgumentNullException("indent"); - } - this.currentIndentField = (this.currentIndentField + indent); - this.indentLengths.Add(indent.Length); - } - /// - /// Remove the last indent that was added with PushIndent - /// - public string PopIndent() - { - string returnValue = ""; - if ((this.indentLengths.Count > 0)) - { - int indentLength = this.indentLengths[(this.indentLengths.Count - 1)]; - this.indentLengths.RemoveAt((this.indentLengths.Count - 1)); - if ((indentLength > 0)) - { - returnValue = this.currentIndentField.Substring((this.currentIndentField.Length - indentLength)); - this.currentIndentField = this.currentIndentField.Remove((this.currentIndentField.Length - indentLength)); - } - } - return returnValue; - } - /// - /// Remove any indentation - /// - public void ClearIndent() - { - this.indentLengths.Clear(); - this.currentIndentField = ""; - } - #endregion - #region ToString Helpers - /// - /// Utility class to produce culture-oriented representation of an object as a string. - /// - public class ToStringInstanceHelper - { - private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture; - /// - /// Gets or sets format provider to be used by ToStringWithCulture method. - /// - public System.IFormatProvider FormatProvider - { - get - { - return this.formatProviderField ; - } - set - { - if ((value != null)) - { - this.formatProviderField = value; - } - } - } - /// - /// This is called from the compile/run appdomain to convert objects within an expression block to a string - /// - public string ToStringWithCulture(object objectToConvert) - { - if ((objectToConvert == null)) - { - throw new global::System.ArgumentNullException("objectToConvert"); - } - System.Type t = objectToConvert.GetType(); - System.Reflection.MethodInfo method = t.GetMethod("ToString", new System.Type[] { - typeof(System.IFormatProvider)}); - if ((method == null)) - { - return objectToConvert.ToString(); - } - else - { - return ((string)(method.Invoke(objectToConvert, new object[] { - this.formatProviderField }))); - } - } - } - private ToStringInstanceHelper toStringHelperField = new ToStringInstanceHelper(); - /// - /// Helper to produce culture-oriented representation of an object as a string - /// - public ToStringInstanceHelper ToStringHelper - { - get - { - return this.toStringHelperField; - } - } - #endregion - } - #endregion -} diff --git a/terminalAsana/Activities/AsanaOAuthBaseActivity.cs b/Terminals/Asana/terminalAsana/Activities/AsanaOAuthBaseActivity.cs similarity index 100% rename from terminalAsana/Activities/AsanaOAuthBaseActivity.cs rename to Terminals/Asana/terminalAsana/Activities/AsanaOAuthBaseActivity.cs diff --git a/terminalAsana/Activities/Get_Tasks_v1.cs b/Terminals/Asana/terminalAsana/Activities/Get_Tasks_v1.cs similarity index 100% rename from terminalAsana/Activities/Get_Tasks_v1.cs rename to Terminals/Asana/terminalAsana/Activities/Get_Tasks_v1.cs diff --git a/terminalAsana/Activities/Post_Comment_v1.cs b/Terminals/Asana/terminalAsana/Activities/Post_Comment_v1.cs similarity index 100% rename from terminalAsana/Activities/Post_Comment_v1.cs rename to Terminals/Asana/terminalAsana/Activities/Post_Comment_v1.cs diff --git a/terminalAsana/App_Start/RouteConfig.cs b/Terminals/Asana/terminalAsana/App_Start/RouteConfig.cs similarity index 100% rename from terminalAsana/App_Start/RouteConfig.cs rename to Terminals/Asana/terminalAsana/App_Start/RouteConfig.cs diff --git a/terminalAsana/Asana/Entities/AsanaMembership.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaMembership.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaMembership.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaMembership.cs diff --git a/terminalAsana/Asana/Entities/AsanaOrganization.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaOrganization.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaOrganization.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaOrganization.cs diff --git a/terminalAsana/Asana/Entities/AsanaProject.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaProject.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaProject.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaProject.cs diff --git a/terminalAsana/Asana/Entities/AsanaProjectInsertion.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaProjectInsertion.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaProjectInsertion.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaProjectInsertion.cs diff --git a/terminalAsana/Asana/Entities/AsanaProjectQuery.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaProjectQuery.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaProjectQuery.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaProjectQuery.cs diff --git a/terminalAsana/Asana/Entities/AsanaProjectStatus.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaProjectStatus.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaProjectStatus.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaProjectStatus.cs diff --git a/terminalAsana/Asana/Entities/AsanaSection.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaSection.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaSection.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaSection.cs diff --git a/terminalAsana/Asana/Entities/AsanaStories.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaStories.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaStories.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaStories.cs diff --git a/terminalAsana/Asana/Entities/AsanaTag.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaTag.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaTag.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaTag.cs diff --git a/terminalAsana/Asana/Entities/AsanaTask.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaTask.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaTask.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaTask.cs diff --git a/terminalAsana/Asana/Entities/AsanaTaskQuery.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaTaskQuery.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaTaskQuery.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaTaskQuery.cs diff --git a/terminalAsana/Asana/Entities/AsanaUser.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaUser.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaUser.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaUser.cs diff --git a/terminalAsana/Asana/Entities/AsanaWorkspace.cs b/Terminals/Asana/terminalAsana/Asana/Entities/AsanaWorkspace.cs similarity index 100% rename from terminalAsana/Asana/Entities/AsanaWorkspace.cs rename to Terminals/Asana/terminalAsana/Asana/Entities/AsanaWorkspace.cs diff --git a/terminalAsana/Asana/OAuthToken.cs b/Terminals/Asana/terminalAsana/Asana/OAuthToken.cs similarity index 100% rename from terminalAsana/Asana/OAuthToken.cs rename to Terminals/Asana/terminalAsana/Asana/OAuthToken.cs diff --git a/terminalAsana/Asana/Projects.cs b/Terminals/Asana/terminalAsana/Asana/Projects.cs similarity index 100% rename from terminalAsana/Asana/Projects.cs rename to Terminals/Asana/terminalAsana/Asana/Projects.cs diff --git a/terminalAsana/Asana/Services/AsanaClient.cs b/Terminals/Asana/terminalAsana/Asana/Services/AsanaClient.cs similarity index 100% rename from terminalAsana/Asana/Services/AsanaClient.cs rename to Terminals/Asana/terminalAsana/Asana/Services/AsanaClient.cs diff --git a/terminalAsana/Asana/Services/AsanaCommunicatorService.cs b/Terminals/Asana/terminalAsana/Asana/Services/AsanaCommunicatorService.cs similarity index 100% rename from terminalAsana/Asana/Services/AsanaCommunicatorService.cs rename to Terminals/Asana/terminalAsana/Asana/Services/AsanaCommunicatorService.cs diff --git a/terminalAsana/Asana/Services/AsanaOAuthService.cs b/Terminals/Asana/terminalAsana/Asana/Services/AsanaOAuthService.cs similarity index 100% rename from terminalAsana/Asana/Services/AsanaOAuthService.cs rename to Terminals/Asana/terminalAsana/Asana/Services/AsanaOAuthService.cs diff --git a/terminalAsana/Asana/Services/AsanaParametersService.cs b/Terminals/Asana/terminalAsana/Asana/Services/AsanaParametersService.cs similarity index 100% rename from terminalAsana/Asana/Services/AsanaParametersService.cs rename to Terminals/Asana/terminalAsana/Asana/Services/AsanaParametersService.cs diff --git a/terminalAsana/Asana/Services/AsanaRefreshTokenEventArgs.cs b/Terminals/Asana/terminalAsana/Asana/Services/AsanaRefreshTokenEventArgs.cs similarity index 100% rename from terminalAsana/Asana/Services/AsanaRefreshTokenEventArgs.cs rename to Terminals/Asana/terminalAsana/Asana/Services/AsanaRefreshTokenEventArgs.cs diff --git a/terminalAsana/Asana/Stories.cs b/Terminals/Asana/terminalAsana/Asana/Stories.cs similarity index 100% rename from terminalAsana/Asana/Stories.cs rename to Terminals/Asana/terminalAsana/Asana/Stories.cs diff --git a/terminalAsana/Asana/Tasks.cs b/Terminals/Asana/terminalAsana/Asana/Tasks.cs similarity index 100% rename from terminalAsana/Asana/Tasks.cs rename to Terminals/Asana/terminalAsana/Asana/Tasks.cs diff --git a/terminalAsana/Asana/Users.cs b/Terminals/Asana/terminalAsana/Asana/Users.cs similarity index 100% rename from terminalAsana/Asana/Users.cs rename to Terminals/Asana/terminalAsana/Asana/Users.cs diff --git a/terminalAsana/Asana/WorkspaceSearchQuery.cs b/Terminals/Asana/terminalAsana/Asana/WorkspaceSearchQuery.cs similarity index 100% rename from terminalAsana/Asana/WorkspaceSearchQuery.cs rename to Terminals/Asana/terminalAsana/Asana/WorkspaceSearchQuery.cs diff --git a/terminalAsana/Asana/Workspaces.cs b/Terminals/Asana/terminalAsana/Asana/Workspaces.cs similarity index 100% rename from terminalAsana/Asana/Workspaces.cs rename to Terminals/Asana/terminalAsana/Asana/Workspaces.cs diff --git a/terminalAsana/Config/Settings.config.readme b/Terminals/Asana/terminalAsana/Config/Settings.config.readme similarity index 100% rename from terminalAsana/Config/Settings.config.readme rename to Terminals/Asana/terminalAsana/Config/Settings.config.readme diff --git a/terminalAsana/Config/log4net.terminals.Demo.config.readme b/Terminals/Asana/terminalAsana/Config/log4net.terminals.Demo.config.readme similarity index 100% rename from terminalAsana/Config/log4net.terminals.Demo.config.readme rename to Terminals/Asana/terminalAsana/Config/log4net.terminals.Demo.config.readme diff --git a/terminalAsana/Config/log4net.terminals.Dev.config.readme b/Terminals/Asana/terminalAsana/Config/log4net.terminals.Dev.config.readme similarity index 100% rename from terminalAsana/Config/log4net.terminals.Dev.config.readme rename to Terminals/Asana/terminalAsana/Config/log4net.terminals.Dev.config.readme diff --git a/terminalAsana/Config/log4net.terminals.Release.config.readme b/Terminals/Asana/terminalAsana/Config/log4net.terminals.Release.config.readme similarity index 100% rename from terminalAsana/Config/log4net.terminals.Release.config.readme rename to Terminals/Asana/terminalAsana/Config/log4net.terminals.Release.config.readme diff --git a/terminalAsana/Config/log4net.terminals.config.readme b/Terminals/Asana/terminalAsana/Config/log4net.terminals.config.readme similarity index 100% rename from terminalAsana/Config/log4net.terminals.config.readme rename to Terminals/Asana/terminalAsana/Config/log4net.terminals.config.readme diff --git a/terminalAsana/Config/terminalAsana/Settings.config.readme b/Terminals/Asana/terminalAsana/Config/terminalAsana/Settings.config.readme similarity index 100% rename from terminalAsana/Config/terminalAsana/Settings.config.readme rename to Terminals/Asana/terminalAsana/Config/terminalAsana/Settings.config.readme diff --git a/terminalAsana/Controllers/ActivityController.cs b/Terminals/Asana/terminalAsana/Controllers/ActivityController.cs similarity index 100% rename from terminalAsana/Controllers/ActivityController.cs rename to Terminals/Asana/terminalAsana/Controllers/ActivityController.cs diff --git a/terminalAsana/Controllers/AuthenticationController.cs b/Terminals/Asana/terminalAsana/Controllers/AuthenticationController.cs similarity index 100% rename from terminalAsana/Controllers/AuthenticationController.cs rename to Terminals/Asana/terminalAsana/Controllers/AuthenticationController.cs diff --git a/terminalAsana/Controllers/TerminalController.cs b/Terminals/Asana/terminalAsana/Controllers/TerminalController.cs similarity index 100% rename from terminalAsana/Controllers/TerminalController.cs rename to Terminals/Asana/terminalAsana/Controllers/TerminalController.cs diff --git a/terminalAsana/Global.asax b/Terminals/Asana/terminalAsana/Global.asax similarity index 100% rename from terminalAsana/Global.asax rename to Terminals/Asana/terminalAsana/Global.asax diff --git a/terminalAsana/Global.asax.cs b/Terminals/Asana/terminalAsana/Global.asax.cs similarity index 100% rename from terminalAsana/Global.asax.cs rename to Terminals/Asana/terminalAsana/Global.asax.cs diff --git a/terminalAsana/Interfaces/IAsanaCommunicator.cs b/Terminals/Asana/terminalAsana/Interfaces/IAsanaCommunicator.cs similarity index 100% rename from terminalAsana/Interfaces/IAsanaCommunicator.cs rename to Terminals/Asana/terminalAsana/Interfaces/IAsanaCommunicator.cs diff --git a/terminalAsana/Interfaces/IAsanaOAuth.cs b/Terminals/Asana/terminalAsana/Interfaces/IAsanaOAuth.cs similarity index 100% rename from terminalAsana/Interfaces/IAsanaOAuth.cs rename to Terminals/Asana/terminalAsana/Interfaces/IAsanaOAuth.cs diff --git a/terminalAsana/Interfaces/IAsanaParameters.cs b/Terminals/Asana/terminalAsana/Interfaces/IAsanaParameters.cs similarity index 100% rename from terminalAsana/Interfaces/IAsanaParameters.cs rename to Terminals/Asana/terminalAsana/Interfaces/IAsanaParameters.cs diff --git a/terminalAsana/Interfaces/IAsanaProjects.cs b/Terminals/Asana/terminalAsana/Interfaces/IAsanaProjects.cs similarity index 100% rename from terminalAsana/Interfaces/IAsanaProjects.cs rename to Terminals/Asana/terminalAsana/Interfaces/IAsanaProjects.cs diff --git a/terminalAsana/Interfaces/IAsanaRestClient.cs b/Terminals/Asana/terminalAsana/Interfaces/IAsanaRestClient.cs similarity index 100% rename from terminalAsana/Interfaces/IAsanaRestClient.cs rename to Terminals/Asana/terminalAsana/Interfaces/IAsanaRestClient.cs diff --git a/terminalAsana/Interfaces/IAsanaStories.cs b/Terminals/Asana/terminalAsana/Interfaces/IAsanaStories.cs similarity index 100% rename from terminalAsana/Interfaces/IAsanaStories.cs rename to Terminals/Asana/terminalAsana/Interfaces/IAsanaStories.cs diff --git a/terminalAsana/Interfaces/IAsanaTasks.cs b/Terminals/Asana/terminalAsana/Interfaces/IAsanaTasks.cs similarity index 100% rename from terminalAsana/Interfaces/IAsanaTasks.cs rename to Terminals/Asana/terminalAsana/Interfaces/IAsanaTasks.cs diff --git a/terminalAsana/Interfaces/IAsanaUsers.cs b/Terminals/Asana/terminalAsana/Interfaces/IAsanaUsers.cs similarity index 100% rename from terminalAsana/Interfaces/IAsanaUsers.cs rename to Terminals/Asana/terminalAsana/Interfaces/IAsanaUsers.cs diff --git a/terminalAsana/Interfaces/IAsanaWorkspaces.cs b/Terminals/Asana/terminalAsana/Interfaces/IAsanaWorkspaces.cs similarity index 100% rename from terminalAsana/Interfaces/IAsanaWorkspaces.cs rename to Terminals/Asana/terminalAsana/Interfaces/IAsanaWorkspaces.cs diff --git a/Tests/HealthMonitor/LICENSE b/Terminals/Asana/terminalAsana/LICENSE similarity index 100% rename from Tests/HealthMonitor/LICENSE rename to Terminals/Asana/terminalAsana/LICENSE diff --git a/terminalAsana/Properties/AssemblyInfo.cs b/Terminals/Asana/terminalAsana/Properties/AssemblyInfo.cs similarity index 100% rename from terminalAsana/Properties/AssemblyInfo.cs rename to Terminals/Asana/terminalAsana/Properties/AssemblyInfo.cs diff --git a/terminalAsana/SelfHostFactory.cs b/Terminals/Asana/terminalAsana/SelfHostFactory.cs similarity index 100% rename from terminalAsana/SelfHostFactory.cs rename to Terminals/Asana/terminalAsana/SelfHostFactory.cs diff --git a/terminalAsana/Startup.cs b/Terminals/Asana/terminalAsana/Startup.cs similarity index 100% rename from terminalAsana/Startup.cs rename to Terminals/Asana/terminalAsana/Startup.cs diff --git a/terminalAsana/TerminalAsanaBootstrapper.cs b/Terminals/Asana/terminalAsana/TerminalAsanaBootstrapper.cs similarity index 100% rename from terminalAsana/TerminalAsanaBootstrapper.cs rename to Terminals/Asana/terminalAsana/TerminalAsanaBootstrapper.cs diff --git a/terminalAsana/TerminalData.cs b/Terminals/Asana/terminalAsana/TerminalData.cs similarity index 100% rename from terminalAsana/TerminalData.cs rename to Terminals/Asana/terminalAsana/TerminalData.cs diff --git a/terminalAsana/Web.Debug.config b/Terminals/Asana/terminalAsana/Web.Debug.config similarity index 100% rename from terminalAsana/Web.Debug.config rename to Terminals/Asana/terminalAsana/Web.Debug.config diff --git a/terminalAsana/Web.Demo.config b/Terminals/Asana/terminalAsana/Web.Demo.config similarity index 100% rename from terminalAsana/Web.Demo.config rename to Terminals/Asana/terminalAsana/Web.Demo.config diff --git a/terminalAsana/Web.Dev.config b/Terminals/Asana/terminalAsana/Web.Dev.config similarity index 100% rename from terminalAsana/Web.Dev.config rename to Terminals/Asana/terminalAsana/Web.Dev.config diff --git a/terminalAsana/Web.Release.config b/Terminals/Asana/terminalAsana/Web.Release.config similarity index 100% rename from terminalAsana/Web.Release.config rename to Terminals/Asana/terminalAsana/Web.Release.config diff --git a/terminalAsana/Web.config b/Terminals/Asana/terminalAsana/Web.config similarity index 100% rename from terminalAsana/Web.config rename to Terminals/Asana/terminalAsana/Web.config diff --git a/terminalAsana/favicon.ico b/Terminals/Asana/terminalAsana/favicon.ico similarity index 100% rename from terminalAsana/favicon.ico rename to Terminals/Asana/terminalAsana/favicon.ico diff --git a/terminalAsana/index.html b/Terminals/Asana/terminalAsana/index.html similarity index 100% rename from terminalAsana/index.html rename to Terminals/Asana/terminalAsana/index.html diff --git a/terminalAsana/packages.config b/Terminals/Asana/terminalAsana/packages.config similarity index 100% rename from terminalAsana/packages.config rename to Terminals/Asana/terminalAsana/packages.config diff --git a/terminalAsana/terminalAsana.csproj b/Terminals/Asana/terminalAsana/terminalAsana.csproj similarity index 74% rename from terminalAsana/terminalAsana.csproj rename to Terminals/Asana/terminalAsana/terminalAsana.csproj index a56b3a0167..eb1a4e581a 100644 --- a/terminalAsana/terminalAsana.csproj +++ b/Terminals/Asana/terminalAsana/terminalAsana.csproj @@ -1,6 +1,6 @@  - + Debug @@ -61,75 +61,75 @@ - ..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll + ..\..\..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll True - ..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\packages\Microsoft.ApplicationInsights.Log4NetAppender.2.0.0\lib\net45\Microsoft.ApplicationInsights.Log4NetAppender.dll + ..\..\..\packages\Microsoft.ApplicationInsights.Log4NetAppender.2.0.0\lib\net45\Microsoft.ApplicationInsights.Log4NetAppender.dll True - ..\packages\Microsoft.Owin.Hosting.3.0.1\lib\net45\Microsoft.Owin.Hosting.dll + ..\..\..\packages\Microsoft.Owin.Hosting.3.0.1\lib\net45\Microsoft.Owin.Hosting.dll True - ..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll + ..\..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll True - ..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\packages\PusherServer.3.0.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.3.0.0\lib\net35\PusherServer.dll True - ..\packages\RestSharp.105.0.1\lib\net4\RestSharp.dll + ..\..\..\packages\RestSharp.105.0.1\lib\net4\RestSharp.dll True - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll True - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll True - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True @@ -145,47 +145,47 @@ True - ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll + ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - ..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll - ..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll - ..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll - ..\packages\WebActivatorEx.2.0.5\lib\net40\WebActivatorEx.dll + ..\..\..\packages\WebActivatorEx.2.0.5\lib\net40\WebActivatorEx.dll True - ..\packages\WebGrease.1.6.0\lib\WebGrease.dll + ..\..\..\packages\WebGrease.1.6.0\lib\WebGrease.dll True - ..\packages\YamlDotNet.3.8.0\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.8.0\lib\net35\YamlDotNet.dll True - ..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll - ..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll - ..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll + ..\..\..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll - ..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll @@ -268,11 +268,11 @@ - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET @@ -282,7 +282,7 @@ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\..\packages\SlowCheetah.2.5.15\tools\)) + $([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\..\..\..\packages\SlowCheetah.2.5.15\tools\)) true $([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\Properties\SlowCheetah\SlowCheetah.Transforms.targets )) $(SlowCheetah_NuGetImportPath) @@ -306,13 +306,13 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + - - + + @@ -345,5 +345,5 @@ - + \ No newline at end of file diff --git a/Tests/terminalAsanaTests/Fixtures/FixtureData - Parameters.cs b/Terminals/Asana/terminalAsanaTests/Fixtures/FixtureData - Parameters.cs similarity index 100% rename from Tests/terminalAsanaTests/Fixtures/FixtureData - Parameters.cs rename to Terminals/Asana/terminalAsanaTests/Fixtures/FixtureData - Parameters.cs diff --git a/Tests/terminalAsanaTests/Fixtures/FixtureData.cs b/Terminals/Asana/terminalAsanaTests/Fixtures/FixtureData.cs similarity index 100% rename from Tests/terminalAsanaTests/Fixtures/FixtureData.cs rename to Terminals/Asana/terminalAsanaTests/Fixtures/FixtureData.cs diff --git a/Tests/terminalAsanaTests/Integration/Get_Taks_v1_Tests.cs b/Terminals/Asana/terminalAsanaTests/Integration/Get_Taks_v1_Tests.cs similarity index 100% rename from Tests/terminalAsanaTests/Integration/Get_Taks_v1_Tests.cs rename to Terminals/Asana/terminalAsanaTests/Integration/Get_Taks_v1_Tests.cs diff --git a/Tests/terminalAsanaTests/Integration/Post_Comment_v1_Tests.cs b/Terminals/Asana/terminalAsanaTests/Integration/Post_Comment_v1_Tests.cs similarity index 100% rename from Tests/terminalAsanaTests/Integration/Post_Comment_v1_Tests.cs rename to Terminals/Asana/terminalAsanaTests/Integration/Post_Comment_v1_Tests.cs diff --git a/Tests/terminalAsanaTests/Integration/Terminal_Discover_v1_Tests.cs b/Terminals/Asana/terminalAsanaTests/Integration/Terminal_Discover_v1_Tests.cs similarity index 100% rename from Tests/terminalAsanaTests/Integration/Terminal_Discover_v1_Tests.cs rename to Terminals/Asana/terminalAsanaTests/Integration/Terminal_Discover_v1_Tests.cs diff --git a/Tests/HubTests/LICENSE b/Terminals/Asana/terminalAsanaTests/LICENSE similarity index 100% rename from Tests/HubTests/LICENSE rename to Terminals/Asana/terminalAsanaTests/LICENSE diff --git a/Tests/terminalAsanaTests/Properties/AssemblyInfo.cs b/Terminals/Asana/terminalAsanaTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalAsanaTests/Properties/AssemblyInfo.cs rename to Terminals/Asana/terminalAsanaTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalAsanaTests/Unit/AsanaCommunicatorServiceTests.cs b/Terminals/Asana/terminalAsanaTests/Unit/AsanaCommunicatorServiceTests.cs similarity index 100% rename from Tests/terminalAsanaTests/Unit/AsanaCommunicatorServiceTests.cs rename to Terminals/Asana/terminalAsanaTests/Unit/AsanaCommunicatorServiceTests.cs diff --git a/Tests/terminalAsanaTests/Unit/AsanaOAuthServiceTests.cs b/Terminals/Asana/terminalAsanaTests/Unit/AsanaOAuthServiceTests.cs similarity index 100% rename from Tests/terminalAsanaTests/Unit/AsanaOAuthServiceTests.cs rename to Terminals/Asana/terminalAsanaTests/Unit/AsanaOAuthServiceTests.cs diff --git a/Tests/terminalAsanaTests/Unit/BaseAsanaTest.cs b/Terminals/Asana/terminalAsanaTests/Unit/BaseAsanaTest.cs similarity index 100% rename from Tests/terminalAsanaTests/Unit/BaseAsanaTest.cs rename to Terminals/Asana/terminalAsanaTests/Unit/BaseAsanaTest.cs diff --git a/Tests/terminalAsanaTests/Unit/StoriesTests.cs b/Terminals/Asana/terminalAsanaTests/Unit/StoriesTests.cs similarity index 100% rename from Tests/terminalAsanaTests/Unit/StoriesTests.cs rename to Terminals/Asana/terminalAsanaTests/Unit/StoriesTests.cs diff --git a/Tests/terminalAsanaTests/Unit/TasksTests.cs b/Terminals/Asana/terminalAsanaTests/Unit/TasksTests.cs similarity index 100% rename from Tests/terminalAsanaTests/Unit/TasksTests.cs rename to Terminals/Asana/terminalAsanaTests/Unit/TasksTests.cs diff --git a/Tests/terminalAsanaTests/Unit/UsersTests.cs b/Terminals/Asana/terminalAsanaTests/Unit/UsersTests.cs similarity index 100% rename from Tests/terminalAsanaTests/Unit/UsersTests.cs rename to Terminals/Asana/terminalAsanaTests/Unit/UsersTests.cs diff --git a/Tests/terminalAsanaTests/Unit/WorkspacesTests.cs b/Terminals/Asana/terminalAsanaTests/Unit/WorkspacesTests.cs similarity index 100% rename from Tests/terminalAsanaTests/Unit/WorkspacesTests.cs rename to Terminals/Asana/terminalAsanaTests/Unit/WorkspacesTests.cs diff --git a/Tests/terminalAsanaTests/app.config b/Terminals/Asana/terminalAsanaTests/app.config similarity index 100% rename from Tests/terminalAsanaTests/app.config rename to Terminals/Asana/terminalAsanaTests/app.config diff --git a/Tests/terminalAsanaTests/packages.config b/Terminals/Asana/terminalAsanaTests/packages.config similarity index 100% rename from Tests/terminalAsanaTests/packages.config rename to Terminals/Asana/terminalAsanaTests/packages.config diff --git a/Tests/terminalAsanaTests/terminalAsanaTests.csproj b/Terminals/Asana/terminalAsanaTests/terminalAsanaTests.csproj similarity index 85% rename from Tests/terminalAsanaTests/terminalAsanaTests.csproj rename to Terminals/Asana/terminalAsanaTests/terminalAsanaTests.csproj index 401d60a47f..32276597a6 100644 --- a/Tests/terminalAsanaTests/terminalAsanaTests.csproj +++ b/Terminals/Asana/terminalAsanaTests/terminalAsanaTests.csproj @@ -37,32 +37,32 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll True - ..\..\packages\AutoFixture.3.47.8\lib\net40\Ploeh.AutoFixture.dll + ..\..\..\packages\AutoFixture.3.47.8\lib\net40\Ploeh.AutoFixture.dll True - ..\..\packages\AutoFixture.AutoMoq.3.47.8\lib\net40\Ploeh.AutoFixture.AutoMoq.dll + ..\..\..\packages\AutoFixture.AutoMoq.3.47.8\lib\net40\Ploeh.AutoFixture.AutoMoq.dll True - ..\..\packages\AutoFixture.NUnit3.3.47.8\lib\net40\Ploeh.AutoFixture.NUnit3.dll + ..\..\..\packages\AutoFixture.NUnit3.3.47.8\lib\net40\Ploeh.AutoFixture.NUnit3.dll True @@ -103,23 +103,19 @@ - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {0dcd9aae-f141-4fad-8e87-1c610f0582db} terminalAsana - - {4f56c030-d16b-4a51-82d0-3c23a47ab703} - Fr8.Testing.Integration.Tools - - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing diff --git a/terminalAtlassian/Activities/Get_Jira_Issue_v1.cs b/Terminals/Atlassian/terminalAtlassian/Activities/Get_Jira_Issue_v1.cs similarity index 100% rename from terminalAtlassian/Activities/Get_Jira_Issue_v1.cs rename to Terminals/Atlassian/terminalAtlassian/Activities/Get_Jira_Issue_v1.cs diff --git a/terminalAtlassian/Activities/Monitor_Jira_Changes_v1.cs b/Terminals/Atlassian/terminalAtlassian/Activities/Monitor_Jira_Changes_v1.cs similarity index 100% rename from terminalAtlassian/Activities/Monitor_Jira_Changes_v1.cs rename to Terminals/Atlassian/terminalAtlassian/Activities/Monitor_Jira_Changes_v1.cs diff --git a/terminalAtlassian/Activities/Save_Jira_Issue_v1.cs b/Terminals/Atlassian/terminalAtlassian/Activities/Save_Jira_Issue_v1.cs similarity index 100% rename from terminalAtlassian/Activities/Save_Jira_Issue_v1.cs rename to Terminals/Atlassian/terminalAtlassian/Activities/Save_Jira_Issue_v1.cs diff --git a/terminalAtlassian/App_Start/RoutesConfig.cs b/Terminals/Atlassian/terminalAtlassian/App_Start/RoutesConfig.cs similarity index 100% rename from terminalAtlassian/App_Start/RoutesConfig.cs rename to Terminals/Atlassian/terminalAtlassian/App_Start/RoutesConfig.cs diff --git a/terminalAtlassian/App_Start/SwaggerConfig.cs b/Terminals/Atlassian/terminalAtlassian/App_Start/SwaggerConfig.cs similarity index 100% rename from terminalAtlassian/App_Start/SwaggerConfig.cs rename to Terminals/Atlassian/terminalAtlassian/App_Start/SwaggerConfig.cs diff --git a/terminalAtlassian/Atlassian.Jira.dll b/Terminals/Atlassian/terminalAtlassian/Atlassian.Jira.dll similarity index 100% rename from terminalAtlassian/Atlassian.Jira.dll rename to Terminals/Atlassian/terminalAtlassian/Atlassian.Jira.dll diff --git a/terminalAtlassian/Config/log4net.terminals.Demo.config.readme b/Terminals/Atlassian/terminalAtlassian/Config/log4net.terminals.Demo.config.readme similarity index 100% rename from terminalAtlassian/Config/log4net.terminals.Demo.config.readme rename to Terminals/Atlassian/terminalAtlassian/Config/log4net.terminals.Demo.config.readme diff --git a/terminalAtlassian/Config/log4net.terminals.Dev.config.readme b/Terminals/Atlassian/terminalAtlassian/Config/log4net.terminals.Dev.config.readme similarity index 100% rename from terminalAtlassian/Config/log4net.terminals.Dev.config.readme rename to Terminals/Atlassian/terminalAtlassian/Config/log4net.terminals.Dev.config.readme diff --git a/terminalAtlassian/Config/log4net.terminals.Release.config.readme b/Terminals/Atlassian/terminalAtlassian/Config/log4net.terminals.Release.config.readme similarity index 100% rename from terminalAtlassian/Config/log4net.terminals.Release.config.readme rename to Terminals/Atlassian/terminalAtlassian/Config/log4net.terminals.Release.config.readme diff --git a/terminalAtlassian/Config/log4net.terminals.config.readme b/Terminals/Atlassian/terminalAtlassian/Config/log4net.terminals.config.readme similarity index 100% rename from terminalAtlassian/Config/log4net.terminals.config.readme rename to Terminals/Atlassian/terminalAtlassian/Config/log4net.terminals.config.readme diff --git a/terminalAtlassian/Controllers/ActivityController.cs b/Terminals/Atlassian/terminalAtlassian/Controllers/ActivityController.cs similarity index 100% rename from terminalAtlassian/Controllers/ActivityController.cs rename to Terminals/Atlassian/terminalAtlassian/Controllers/ActivityController.cs diff --git a/terminalAtlassian/Controllers/AuthenticationController.cs b/Terminals/Atlassian/terminalAtlassian/Controllers/AuthenticationController.cs similarity index 100% rename from terminalAtlassian/Controllers/AuthenticationController.cs rename to Terminals/Atlassian/terminalAtlassian/Controllers/AuthenticationController.cs diff --git a/terminalAtlassian/Controllers/EventController.cs b/Terminals/Atlassian/terminalAtlassian/Controllers/EventController.cs similarity index 100% rename from terminalAtlassian/Controllers/EventController.cs rename to Terminals/Atlassian/terminalAtlassian/Controllers/EventController.cs diff --git a/terminalAtlassian/Controllers/TerminalController.cs b/Terminals/Atlassian/terminalAtlassian/Controllers/TerminalController.cs similarity index 100% rename from terminalAtlassian/Controllers/TerminalController.cs rename to Terminals/Atlassian/terminalAtlassian/Controllers/TerminalController.cs diff --git a/terminalAtlassian/Global.asax b/Terminals/Atlassian/terminalAtlassian/Global.asax similarity index 100% rename from terminalAtlassian/Global.asax rename to Terminals/Atlassian/terminalAtlassian/Global.asax diff --git a/terminalAtlassian/Global.asax.cs b/Terminals/Atlassian/terminalAtlassian/Global.asax.cs similarity index 100% rename from terminalAtlassian/Global.asax.cs rename to Terminals/Atlassian/terminalAtlassian/Global.asax.cs diff --git a/terminalAtlassian/Helpers/Utils.cs b/Terminals/Atlassian/terminalAtlassian/Helpers/Utils.cs similarity index 100% rename from terminalAtlassian/Helpers/Utils.cs rename to Terminals/Atlassian/terminalAtlassian/Helpers/Utils.cs diff --git a/terminalAtlassian/Interfaces/IAtlassianEventManager.cs b/Terminals/Atlassian/terminalAtlassian/Interfaces/IAtlassianEventManager.cs similarity index 100% rename from terminalAtlassian/Interfaces/IAtlassianEventManager.cs rename to Terminals/Atlassian/terminalAtlassian/Interfaces/IAtlassianEventManager.cs diff --git a/terminalAtlassian/Interfaces/IAtlassianService.cs b/Terminals/Atlassian/terminalAtlassian/Interfaces/IAtlassianService.cs similarity index 100% rename from terminalAtlassian/Interfaces/IAtlassianService.cs rename to Terminals/Atlassian/terminalAtlassian/Interfaces/IAtlassianService.cs diff --git a/terminalAtlassian/Interfaces/IAtlassianSubscriptionManager.cs b/Terminals/Atlassian/terminalAtlassian/Interfaces/IAtlassianSubscriptionManager.cs similarity index 100% rename from terminalAtlassian/Interfaces/IAtlassianSubscriptionManager.cs rename to Terminals/Atlassian/terminalAtlassian/Interfaces/IAtlassianSubscriptionManager.cs diff --git a/terminalAtlassian/Interfaces/IssueInfo.cs b/Terminals/Atlassian/terminalAtlassian/Interfaces/IssueInfo.cs similarity index 100% rename from terminalAtlassian/Interfaces/IssueInfo.cs rename to Terminals/Atlassian/terminalAtlassian/Interfaces/IssueInfo.cs diff --git a/terminalAtlassian/Interfaces/UserInfo.cs b/Terminals/Atlassian/terminalAtlassian/Interfaces/UserInfo.cs similarity index 100% rename from terminalAtlassian/Interfaces/UserInfo.cs rename to Terminals/Atlassian/terminalAtlassian/Interfaces/UserInfo.cs diff --git a/Tests/PlanDirectoryTests/LICENSE b/Terminals/Atlassian/terminalAtlassian/LICENSE similarity index 100% rename from Tests/PlanDirectoryTests/LICENSE rename to Terminals/Atlassian/terminalAtlassian/LICENSE diff --git a/terminalAtlassian/Models/JiraIssueEvent.cs b/Terminals/Atlassian/terminalAtlassian/Models/JiraIssueEvent.cs similarity index 100% rename from terminalAtlassian/Models/JiraIssueEvent.cs rename to Terminals/Atlassian/terminalAtlassian/Models/JiraIssueEvent.cs diff --git a/terminalAtlassian/Models/JiraSubscriptionPost.cs b/Terminals/Atlassian/terminalAtlassian/Models/JiraSubscriptionPost.cs similarity index 100% rename from terminalAtlassian/Models/JiraSubscriptionPost.cs rename to Terminals/Atlassian/terminalAtlassian/Models/JiraSubscriptionPost.cs diff --git a/terminalAtlassian/Properties/AssemblyInfo.cs b/Terminals/Atlassian/terminalAtlassian/Properties/AssemblyInfo.cs similarity index 100% rename from terminalAtlassian/Properties/AssemblyInfo.cs rename to Terminals/Atlassian/terminalAtlassian/Properties/AssemblyInfo.cs diff --git a/terminalAtlassian/Properties/SlowCheetah/SlowCheetah.Transforms.targets b/Terminals/Atlassian/terminalAtlassian/Properties/SlowCheetah/SlowCheetah.Transforms.targets similarity index 100% rename from terminalAtlassian/Properties/SlowCheetah/SlowCheetah.Transforms.targets rename to Terminals/Atlassian/terminalAtlassian/Properties/SlowCheetah/SlowCheetah.Transforms.targets diff --git a/terminalAtlassian/SelfHostFactory.cs b/Terminals/Atlassian/terminalAtlassian/SelfHostFactory.cs similarity index 100% rename from terminalAtlassian/SelfHostFactory.cs rename to Terminals/Atlassian/terminalAtlassian/SelfHostFactory.cs diff --git a/terminalAtlassian/Service References/Application Insights/ConnectedService.json b/Terminals/Atlassian/terminalAtlassian/Service References/Application Insights/ConnectedService.json similarity index 100% rename from terminalAtlassian/Service References/Application Insights/ConnectedService.json rename to Terminals/Atlassian/terminalAtlassian/Service References/Application Insights/ConnectedService.json diff --git a/terminalAtlassian/Services/AtlassianEventManager.cs b/Terminals/Atlassian/terminalAtlassian/Services/AtlassianEventManager.cs similarity index 100% rename from terminalAtlassian/Services/AtlassianEventManager.cs rename to Terminals/Atlassian/terminalAtlassian/Services/AtlassianEventManager.cs diff --git a/terminalAtlassian/Services/AtlassianService.cs b/Terminals/Atlassian/terminalAtlassian/Services/AtlassianService.cs similarity index 100% rename from terminalAtlassian/Services/AtlassianService.cs rename to Terminals/Atlassian/terminalAtlassian/Services/AtlassianService.cs diff --git a/terminalAtlassian/Services/AtlassianSubscriptionManager.cs b/Terminals/Atlassian/terminalAtlassian/Services/AtlassianSubscriptionManager.cs similarity index 100% rename from terminalAtlassian/Services/AtlassianSubscriptionManager.cs rename to Terminals/Atlassian/terminalAtlassian/Services/AtlassianSubscriptionManager.cs diff --git a/terminalAtlassian/Startup.cs b/Terminals/Atlassian/terminalAtlassian/Startup.cs similarity index 100% rename from terminalAtlassian/Startup.cs rename to Terminals/Atlassian/terminalAtlassian/Startup.cs diff --git a/terminalAtlassian/StructureMapConfiguration.cs b/Terminals/Atlassian/terminalAtlassian/StructureMapConfiguration.cs similarity index 100% rename from terminalAtlassian/StructureMapConfiguration.cs rename to Terminals/Atlassian/terminalAtlassian/StructureMapConfiguration.cs diff --git a/terminalAtlassian/TerminalData.cs b/Terminals/Atlassian/terminalAtlassian/TerminalData.cs similarity index 100% rename from terminalAtlassian/TerminalData.cs rename to Terminals/Atlassian/terminalAtlassian/TerminalData.cs diff --git a/terminalAtlassian/Web.Debug.config b/Terminals/Atlassian/terminalAtlassian/Web.Debug.config similarity index 100% rename from terminalAtlassian/Web.Debug.config rename to Terminals/Atlassian/terminalAtlassian/Web.Debug.config diff --git a/terminalAtlassian/Web.Demo.config b/Terminals/Atlassian/terminalAtlassian/Web.Demo.config similarity index 100% rename from terminalAtlassian/Web.Demo.config rename to Terminals/Atlassian/terminalAtlassian/Web.Demo.config diff --git a/terminalAtlassian/Web.Dev.config b/Terminals/Atlassian/terminalAtlassian/Web.Dev.config similarity index 100% rename from terminalAtlassian/Web.Dev.config rename to Terminals/Atlassian/terminalAtlassian/Web.Dev.config diff --git a/terminalAtlassian/Web.Release.config b/Terminals/Atlassian/terminalAtlassian/Web.Release.config similarity index 100% rename from terminalAtlassian/Web.Release.config rename to Terminals/Atlassian/terminalAtlassian/Web.Release.config diff --git a/terminalAtlassian/Web.config b/Terminals/Atlassian/terminalAtlassian/Web.config similarity index 100% rename from terminalAtlassian/Web.config rename to Terminals/Atlassian/terminalAtlassian/Web.config diff --git a/terminalAtlassian/index.html b/Terminals/Atlassian/terminalAtlassian/index.html similarity index 100% rename from terminalAtlassian/index.html rename to Terminals/Atlassian/terminalAtlassian/index.html diff --git a/terminalAtlassian/packages.config b/Terminals/Atlassian/terminalAtlassian/packages.config similarity index 100% rename from terminalAtlassian/packages.config rename to Terminals/Atlassian/terminalAtlassian/packages.config diff --git a/terminalAtlassian/terminalAtlassian.csproj b/Terminals/Atlassian/terminalAtlassian/terminalAtlassian.csproj similarity index 76% rename from terminalAtlassian/terminalAtlassian.csproj rename to Terminals/Atlassian/terminalAtlassian/terminalAtlassian.csproj index fdca52d1bb..1d1acdc07c 100644 --- a/terminalAtlassian/terminalAtlassian.csproj +++ b/Terminals/Atlassian/terminalAtlassian/terminalAtlassian.csproj @@ -49,107 +49,107 @@ .\Atlassian.Jira.dll - ..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll + ..\..\..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll True - ..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll + ..\..\..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll True - ..\packages\Microsoft.ApplicationInsights.Web.2.0.0\lib\net45\Microsoft.AI.Web.dll + ..\..\..\packages\Microsoft.ApplicationInsights.Web.2.0.0\lib\net45\Microsoft.AI.Web.dll True - ..\packages\Microsoft.ApplicationInsights.WindowsServer.2.0.0\lib\net45\Microsoft.AI.WindowsServer.dll + ..\..\..\packages\Microsoft.ApplicationInsights.WindowsServer.2.0.0\lib\net45\Microsoft.AI.WindowsServer.dll True - ..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\packages\Microsoft.ApplicationInsights.Log4NetAppender.1.2.5\lib\net45\Microsoft.ApplicationInsights.Log4NetAppender.dll + ..\..\..\packages\Microsoft.ApplicationInsights.Log4NetAppender.1.2.5\lib\net45\Microsoft.ApplicationInsights.Log4NetAppender.dll True - ..\packages\Microsoft.ApplicationInsights.Web.TelemetryChannel.1.1.0\lib\net45\Microsoft.ApplicationInsights.Web.TelemetryChannel.dll + ..\..\..\packages\Microsoft.ApplicationInsights.Web.TelemetryChannel.1.1.0\lib\net45\Microsoft.ApplicationInsights.Web.TelemetryChannel.dll True - ..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\packages\Microsoft.Owin.Host.HttpListener.3.0.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll + ..\..\..\packages\Microsoft.Owin.Host.HttpListener.3.0.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll True - ..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll + ..\..\..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll True - ..\packages\Microsoft.Owin.Hosting.3.0.1\lib\net45\Microsoft.Owin.Hosting.dll + ..\..\..\packages\Microsoft.Owin.Hosting.3.0.1\lib\net45\Microsoft.Owin.Hosting.dll True - ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll + ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll True - ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll True - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll True - ..\packages\Swashbuckle.Core.5.3.2\lib\net40\Swashbuckle.Core.dll + ..\..\..\packages\Swashbuckle.Core.5.3.2\lib\net40\Swashbuckle.Core.dll True - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True @@ -159,39 +159,39 @@ - ..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll + ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll True - ..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll True - ..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True - ..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll + ..\..\..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll True - ..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll + ..\..\..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll True - ..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll + ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll True - ..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll + ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll True - ..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll + ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll True @@ -208,7 +208,7 @@ - ..\packages\WebActivatorEx.2.0\lib\net40\WebActivatorEx.dll + ..\..\..\packages\WebActivatorEx.2.0\lib\net40\WebActivatorEx.dll True @@ -313,7 +313,7 @@ MinimumRecommendedRules.ruleset - $([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\..\packages\SlowCheetah.2.5.15\tools\)) + $([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\..\..\..\packages\SlowCheetah.2.5.15\tools\)) true $([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\Properties\SlowCheetah\SlowCheetah.Transforms.targets )) $(SlowCheetah_NuGetImportPath) @@ -348,7 +348,7 @@ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + - - + + - + \ No newline at end of file diff --git a/Tests/terminalAtlassianTests/Fixtures/HealthMonitor_FixtureData.cs b/Terminals/Atlassian/terminalAtlassianTests/Fixtures/HealthMonitor_FixtureData.cs similarity index 100% rename from Tests/terminalAtlassianTests/Fixtures/HealthMonitor_FixtureData.cs rename to Terminals/Atlassian/terminalAtlassianTests/Fixtures/HealthMonitor_FixtureData.cs diff --git a/Tests/terminalAtlassianTests/Integration/Get_Jira_Issue_v1_Tests.cs b/Terminals/Atlassian/terminalAtlassianTests/Integration/Get_Jira_Issue_v1_Tests.cs similarity index 100% rename from Tests/terminalAtlassianTests/Integration/Get_Jira_Issue_v1_Tests.cs rename to Terminals/Atlassian/terminalAtlassianTests/Integration/Get_Jira_Issue_v1_Tests.cs diff --git a/Tests/terminalAtlassianTests/Integration/Monitor_Jira_Changes_v1_Tests.cs b/Terminals/Atlassian/terminalAtlassianTests/Integration/Monitor_Jira_Changes_v1_Tests.cs similarity index 100% rename from Tests/terminalAtlassianTests/Integration/Monitor_Jira_Changes_v1_Tests.cs rename to Terminals/Atlassian/terminalAtlassianTests/Integration/Monitor_Jira_Changes_v1_Tests.cs diff --git a/Tests/terminalAsanaTests/LICENSE b/Terminals/Atlassian/terminalAtlassianTests/LICENSE similarity index 100% rename from Tests/terminalAsanaTests/LICENSE rename to Terminals/Atlassian/terminalAtlassianTests/LICENSE diff --git a/Tests/terminalAtlassianTests/Properties/AssemblyInfo.cs b/Terminals/Atlassian/terminalAtlassianTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalAtlassianTests/Properties/AssemblyInfo.cs rename to Terminals/Atlassian/terminalAtlassianTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalAtlassianTests/app.config b/Terminals/Atlassian/terminalAtlassianTests/app.config similarity index 100% rename from Tests/terminalAtlassianTests/app.config rename to Terminals/Atlassian/terminalAtlassianTests/app.config diff --git a/Tests/terminalAtlassianTests/packages.config b/Terminals/Atlassian/terminalAtlassianTests/packages.config similarity index 100% rename from Tests/terminalAtlassianTests/packages.config rename to Terminals/Atlassian/terminalAtlassianTests/packages.config diff --git a/Tests/terminalAtlassianTests/terminalAtlassianTests.csproj b/Terminals/Atlassian/terminalAtlassianTests/terminalAtlassianTests.csproj similarity index 75% rename from Tests/terminalAtlassianTests/terminalAtlassianTests.csproj rename to Terminals/Atlassian/terminalAtlassianTests/terminalAtlassianTests.csproj index 6328df798c..5004ecc6e9 100644 --- a/Tests/terminalAtlassianTests/terminalAtlassianTests.csproj +++ b/Terminals/Atlassian/terminalAtlassianTests/terminalAtlassianTests.csproj @@ -56,120 +56,120 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll + ..\..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll False - ..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.interfaces.dll + ..\..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.interfaces.dll False - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll True - ..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.util.dll + ..\..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.util.dll False - ..\..\packages\NUnitTestAdapter.2.0.0\lib\NUnit.VisualStudio.TestAdapter.dll + ..\..\..\packages\NUnitTestAdapter.2.0.0\lib\NUnit.VisualStudio.TestAdapter.dll False - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -192,27 +192,27 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + {89d763ed-3ea6-4303-ab29-3239095a4b06} terminalAtlassian - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing @@ -252,10 +252,10 @@ - + - - + + - + - - + + - + \ No newline at end of file diff --git a/Tests/terminalAzureTests/Fixtures/HealthMonitor_FixtureData.cs b/Terminals/Azure/terminalAzureTests/Fixtures/HealthMonitor_FixtureData.cs similarity index 100% rename from Tests/terminalAzureTests/Fixtures/HealthMonitor_FixtureData.cs rename to Terminals/Azure/terminalAzureTests/Fixtures/HealthMonitor_FixtureData.cs diff --git a/Tests/terminalAzureTests/Integration/Write_To_Sql_Server_v1_Tests.cs b/Terminals/Azure/terminalAzureTests/Integration/Write_To_Sql_Server_v1_Tests.cs similarity index 100% rename from Tests/terminalAzureTests/Integration/Write_To_Sql_Server_v1_Tests.cs rename to Terminals/Azure/terminalAzureTests/Integration/Write_To_Sql_Server_v1_Tests.cs diff --git a/Tests/terminalAzureTests/LICENSE b/Terminals/Azure/terminalAzureTests/LICENSE similarity index 100% rename from Tests/terminalAzureTests/LICENSE rename to Terminals/Azure/terminalAzureTests/LICENSE diff --git a/Tests/terminalAzureTests/Properties/AssemblyInfo.cs b/Terminals/Azure/terminalAzureTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalAzureTests/Properties/AssemblyInfo.cs rename to Terminals/Azure/terminalAzureTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalAzureTests/app.config b/Terminals/Azure/terminalAzureTests/app.config similarity index 100% rename from Tests/terminalAzureTests/app.config rename to Terminals/Azure/terminalAzureTests/app.config diff --git a/Tests/terminalAzureTests/packages.config b/Terminals/Azure/terminalAzureTests/packages.config similarity index 100% rename from Tests/terminalAzureTests/packages.config rename to Terminals/Azure/terminalAzureTests/packages.config diff --git a/Tests/terminalAzureTests/terminalAzureTests.csproj b/Terminals/Azure/terminalAzureTests/terminalAzureTests.csproj similarity index 71% rename from Tests/terminalAzureTests/terminalAzureTests.csproj rename to Terminals/Azure/terminalAzureTests/terminalAzureTests.csproj index 8dd54d1d12..e8e1250eee 100644 --- a/Tests/terminalAzureTests/terminalAzureTests.csproj +++ b/Terminals/Azure/terminalAzureTests/terminalAzureTests.csproj @@ -52,97 +52,97 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True @@ -152,7 +152,7 @@ - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -170,27 +170,27 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + {d019b112-55a8-4661-aff5-329f998d9e28} terminalAzure - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing @@ -203,10 +203,10 @@ - + - - + + - + - - + + - + \ No newline at end of file diff --git a/Tests/terminalDocuSignTests/Activities/BaseDocuSignActivityTest.cs b/Terminals/Docusign/terminalDocuSignTests/Activities/BaseDocuSignActivityTest.cs similarity index 100% rename from Tests/terminalDocuSignTests/Activities/BaseDocuSignActivityTest.cs rename to Terminals/Docusign/terminalDocuSignTests/Activities/BaseDocuSignActivityTest.cs diff --git a/Tests/terminalDocuSignTests/Activities/BaseTest.cs b/Terminals/Docusign/terminalDocuSignTests/Activities/BaseTest.cs similarity index 100% rename from Tests/terminalDocuSignTests/Activities/BaseTest.cs rename to Terminals/Docusign/terminalDocuSignTests/Activities/BaseTest.cs diff --git a/Tests/terminalDocuSignTests/Activities/Get_DocuSign_Template_v1_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Activities/Get_DocuSign_Template_v1_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Activities/Get_DocuSign_Template_v1_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Activities/Get_DocuSign_Template_v1_Tests.cs diff --git a/Tests/terminalDocuSignTests/Activities/Monitor_DocuSign_Envelope_Activity_v1_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Activities/Monitor_DocuSign_Envelope_Activity_v1_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Activities/Monitor_DocuSign_Envelope_Activity_v1_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Activities/Monitor_DocuSign_Envelope_Activity_v1_Tests.cs diff --git a/Tests/terminalDocuSignTests/Activities/Query_DocuSign_v2_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Activities/Query_DocuSign_v2_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Activities/Query_DocuSign_v2_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Activities/Query_DocuSign_v2_Tests.cs diff --git a/Tests/terminalDocuSignTests/Activities/Send_DocuSign_Envelope_v2_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Activities/Send_DocuSign_Envelope_v2_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Activities/Send_DocuSign_Envelope_v2_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Activities/Send_DocuSign_Envelope_v2_Tests.cs diff --git a/Tests/terminalDocuSignTests/Fixtures/DocuSignActivitiesFixtureData.cs b/Terminals/Docusign/terminalDocuSignTests/Fixtures/DocuSignActivitiesFixtureData.cs similarity index 100% rename from Tests/terminalDocuSignTests/Fixtures/DocuSignActivitiesFixtureData.cs rename to Terminals/Docusign/terminalDocuSignTests/Fixtures/DocuSignActivitiesFixtureData.cs diff --git a/Tests/terminalDocuSignTests/Fixtures/HealthMonitor_FixtureData.cs b/Terminals/Docusign/terminalDocuSignTests/Fixtures/HealthMonitor_FixtureData.cs similarity index 100% rename from Tests/terminalDocuSignTests/Fixtures/HealthMonitor_FixtureData.cs rename to Terminals/Docusign/terminalDocuSignTests/Fixtures/HealthMonitor_FixtureData.cs diff --git a/Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/Generate_DocuSign_Report_v1_EndToEnd_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Generate_DocuSign_Report_v1_EndToEnd_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Generate_DocuSign_Report_v1_EndToEnd_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Generate_DocuSign_Report_v1_EndToEnd_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_EndToEnd_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_EndToEnd_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_EndToEnd_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_EndToEnd_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/MonitorAllDocuSignEventsLocal_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/MonitorAllDocuSignEventsLocal_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/MonitorAllDocuSignEventsLocal_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/MonitorAllDocuSignEventsLocal_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/MonitorAllDocuSignEvents_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/MonitorAllDocuSignEvents_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/MonitorAllDocuSignEvents_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/MonitorAllDocuSignEvents_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/Monitor_DocuSign_v1_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Monitor_DocuSign_v1_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Monitor_DocuSign_v1_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Monitor_DocuSign_v1_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/Prepare_DocuSign_Events_For_Storage_v1_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Prepare_DocuSign_Events_For_Storage_v1_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Prepare_DocuSign_Events_For_Storage_v1_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Prepare_DocuSign_Events_For_Storage_v1_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/Query_Docusign_v1_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Query_Docusign_v1_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Query_Docusign_v1_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Query_Docusign_v1_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/Send_DocuSign_Envelope_v1_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Send_DocuSign_Envelope_v1_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Send_DocuSign_Envelope_v1_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Send_DocuSign_Envelope_v1_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/Terminal_Discover_v1Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Terminal_Discover_v1Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Terminal_Discover_v1Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Terminal_Discover_v1Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v1_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v1_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v1_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v1_Tests.cs diff --git a/Tests/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v2_EndToEnd_Tests.cs b/Terminals/Docusign/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v2_EndToEnd_Tests.cs similarity index 100% rename from Tests/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v2_EndToEnd_Tests.cs rename to Terminals/Docusign/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v2_EndToEnd_Tests.cs diff --git a/Tests/terminalExcelTests/LICENSE b/Terminals/Docusign/terminalDocuSignTests/LICENSE similarity index 100% rename from Tests/terminalExcelTests/LICENSE rename to Terminals/Docusign/terminalDocuSignTests/LICENSE diff --git a/Tests/terminalDocuSignTests/Properties/AssemblyInfo.cs b/Terminals/Docusign/terminalDocuSignTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalDocuSignTests/Properties/AssemblyInfo.cs rename to Terminals/Docusign/terminalDocuSignTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalDocuSignTests/app.config b/Terminals/Docusign/terminalDocuSignTests/app.config similarity index 100% rename from Tests/terminalDocuSignTests/app.config rename to Terminals/Docusign/terminalDocuSignTests/app.config diff --git a/Tests/terminalDocuSignTests/packages.config b/Terminals/Docusign/terminalDocuSignTests/packages.config similarity index 100% rename from Tests/terminalDocuSignTests/packages.config rename to Terminals/Docusign/terminalDocuSignTests/packages.config diff --git a/Tests/terminalDocuSignTests/terminalDocuSignTests.csproj b/Terminals/Docusign/terminalDocuSignTests/terminalDocuSignTests.csproj similarity index 73% rename from Tests/terminalDocuSignTests/terminalDocuSignTests.csproj rename to Terminals/Docusign/terminalDocuSignTests/terminalDocuSignTests.csproj index a8bb01b9e6..02ad0582c6 100644 --- a/Tests/terminalDocuSignTests/terminalDocuSignTests.csproj +++ b/Terminals/Docusign/terminalDocuSignTests/terminalDocuSignTests.csproj @@ -51,86 +51,85 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - - False - ..\..\Utilities\DocuSign.eSign.dll + + ..\terminalDocuSign\lib\DocuSign.eSign.dll - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\Microsoft.AspNet.Identity.Core.2.1.0\lib\net45\Microsoft.AspNet.Identity.Core.dll + ..\..\..\packages\Microsoft.AspNet.Identity.Core.2.1.0\lib\net45\Microsoft.AspNet.Identity.Core.dll True - ..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.1.0\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll + ..\..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.1.0\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll @@ -138,24 +137,24 @@ - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True @@ -164,7 +163,7 @@ - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -202,31 +201,31 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - - {4e04feb2-b452-4739-8336-ea2cefb18d87} - terminalDocuSign - - + {4f56c030-d16b-4a51-82d0-3c23a47ab703} Fr8.Testing.Integration.Tools - + + {4e04feb2-b452-4739-8336-ea2cefb18d87} + terminalDocuSign + + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing @@ -242,10 +241,10 @@ - + - - + + - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET @@ -370,5 +370,5 @@ - + \ No newline at end of file diff --git a/Tests/terminalDropboxTests/Activities/Get_File_List_v1_Tests.cs b/Terminals/Dropbox/terminalDropboxTests/Activities/Get_File_List_v1_Tests.cs similarity index 100% rename from Tests/terminalDropboxTests/Activities/Get_File_List_v1_Tests.cs rename to Terminals/Dropbox/terminalDropboxTests/Activities/Get_File_List_v1_Tests.cs diff --git a/Tests/terminalDropboxTests/Fixtures/FixtureData.cs b/Terminals/Dropbox/terminalDropboxTests/Fixtures/FixtureData.cs similarity index 100% rename from Tests/terminalDropboxTests/Fixtures/FixtureData.cs rename to Terminals/Dropbox/terminalDropboxTests/Fixtures/FixtureData.cs diff --git a/Tests/terminalDropboxTests/Fixtures/HealthMonitor_FixtureData.cs b/Terminals/Dropbox/terminalDropboxTests/Fixtures/HealthMonitor_FixtureData.cs similarity index 100% rename from Tests/terminalDropboxTests/Fixtures/HealthMonitor_FixtureData.cs rename to Terminals/Dropbox/terminalDropboxTests/Fixtures/HealthMonitor_FixtureData.cs diff --git a/Tests/terminalDropboxTests/Integration/Get_File_List_v1_EndToEnd_Tests.cs b/Terminals/Dropbox/terminalDropboxTests/Integration/Get_File_List_v1_EndToEnd_Tests.cs similarity index 100% rename from Tests/terminalDropboxTests/Integration/Get_File_List_v1_EndToEnd_Tests.cs rename to Terminals/Dropbox/terminalDropboxTests/Integration/Get_File_List_v1_EndToEnd_Tests.cs diff --git a/Tests/terminalDropboxTests/Integration/Get_File_List_v1_Tests.cs b/Terminals/Dropbox/terminalDropboxTests/Integration/Get_File_List_v1_Tests.cs similarity index 100% rename from Tests/terminalDropboxTests/Integration/Get_File_List_v1_Tests.cs rename to Terminals/Dropbox/terminalDropboxTests/Integration/Get_File_List_v1_Tests.cs diff --git a/Tests/terminalDropboxTests/Integration/Terminal_Discovery_v1Tests.cs b/Terminals/Dropbox/terminalDropboxTests/Integration/Terminal_Discovery_v1Tests.cs similarity index 100% rename from Tests/terminalDropboxTests/Integration/Terminal_Discovery_v1Tests.cs rename to Terminals/Dropbox/terminalDropboxTests/Integration/Terminal_Discovery_v1Tests.cs diff --git a/Tests/terminalFr8CoreTests/LICENSE b/Terminals/Dropbox/terminalDropboxTests/LICENSE similarity index 100% rename from Tests/terminalFr8CoreTests/LICENSE rename to Terminals/Dropbox/terminalDropboxTests/LICENSE diff --git a/Tests/terminalDropboxTests/Properties/AssemblyInfo.cs b/Terminals/Dropbox/terminalDropboxTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalDropboxTests/Properties/AssemblyInfo.cs rename to Terminals/Dropbox/terminalDropboxTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalDropboxTests/app.config b/Terminals/Dropbox/terminalDropboxTests/app.config similarity index 100% rename from Tests/terminalDropboxTests/app.config rename to Terminals/Dropbox/terminalDropboxTests/app.config diff --git a/Tests/terminalDropboxTests/packages.config b/Terminals/Dropbox/terminalDropboxTests/packages.config similarity index 100% rename from Tests/terminalDropboxTests/packages.config rename to Terminals/Dropbox/terminalDropboxTests/packages.config diff --git a/Tests/terminalDropboxTests/terminalDropboxTests.csproj b/Terminals/Dropbox/terminalDropboxTests/terminalDropboxTests.csproj similarity index 71% rename from Tests/terminalDropboxTests/terminalDropboxTests.csproj rename to Terminals/Dropbox/terminalDropboxTests/terminalDropboxTests.csproj index ac5a9300e4..ddbed20ab6 100644 --- a/Tests/terminalDropboxTests/terminalDropboxTests.csproj +++ b/Terminals/Dropbox/terminalDropboxTests/terminalDropboxTests.csproj @@ -53,96 +53,96 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Microsoft.Owin.Host.HttpListener.3.0.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll + ..\..\..\packages\Microsoft.Owin.Host.HttpListener.3.0.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll True - ..\..\packages\Microsoft.Owin.Hosting.3.0.1\lib\net45\Microsoft.Owin.Hosting.dll + ..\..\..\packages\Microsoft.Owin.Hosting.3.0.1\lib\net45\Microsoft.Owin.Hosting.dll True - ..\..\packages\Microsoft.Owin.Testing.3.0.1\lib\net45\Microsoft.Owin.Testing.dll + ..\..\..\packages\Microsoft.Owin.Testing.3.0.1\lib\net45\Microsoft.Owin.Testing.dll True - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll + ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True False - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll False - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\AutoFixture.3.49.0\lib\net40\Ploeh.AutoFixture.dll + ..\..\..\packages\AutoFixture.3.49.0\lib\net40\Ploeh.AutoFixture.dll True - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll True @@ -152,15 +152,15 @@ - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True False - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True @@ -170,29 +170,29 @@ False - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll False - ..\..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True False - ..\..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll + ..\..\..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll False - ..\..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll + ..\..\..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -206,35 +206,35 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + + {4f56c030-d16b-4a51-82d0-3c23a47ab703} + Fr8.Testing.Integration.Tools + + {cfba4468-222f-4255-8d94-809acbf7ac47} terminalDropbox - + {f7bd7117-4f1d-4215-b338-61ebdd0d0bfe} HubWeb - - {4f56c030-d16b-4a51-82d0-3c23a47ab703} - Fr8.Testing.Integration.Tools - - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing @@ -258,10 +258,10 @@ - + - - + + - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing - + - - + + - + \ No newline at end of file diff --git a/Tests/terminalPapertrailTests/Fixtures/HealthMonitor_FixtureData.cs b/Terminals/Papertrail/terminalPapertrailTests/Fixtures/HealthMonitor_FixtureData.cs similarity index 100% rename from Tests/terminalPapertrailTests/Fixtures/HealthMonitor_FixtureData.cs rename to Terminals/Papertrail/terminalPapertrailTests/Fixtures/HealthMonitor_FixtureData.cs diff --git a/Tests/terminalPapertrailTests/Integration/Terminal_Discover_v1_Tests.cs b/Terminals/Papertrail/terminalPapertrailTests/Integration/Terminal_Discover_v1_Tests.cs similarity index 100% rename from Tests/terminalPapertrailTests/Integration/Terminal_Discover_v1_Tests.cs rename to Terminals/Papertrail/terminalPapertrailTests/Integration/Terminal_Discover_v1_Tests.cs diff --git a/Tests/terminalPapertrailTests/Integration/Write_To_Log_v1Tests.cs b/Terminals/Papertrail/terminalPapertrailTests/Integration/Write_To_Log_v1Tests.cs similarity index 100% rename from Tests/terminalPapertrailTests/Integration/Write_To_Log_v1Tests.cs rename to Terminals/Papertrail/terminalPapertrailTests/Integration/Write_To_Log_v1Tests.cs diff --git a/Tests/terminalYammerTests/LICENSE b/Terminals/Papertrail/terminalPapertrailTests/LICENSE similarity index 100% rename from Tests/terminalYammerTests/LICENSE rename to Terminals/Papertrail/terminalPapertrailTests/LICENSE diff --git a/Tests/terminalPapertrailTests/Properties/AssemblyInfo.cs b/Terminals/Papertrail/terminalPapertrailTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalPapertrailTests/Properties/AssemblyInfo.cs rename to Terminals/Papertrail/terminalPapertrailTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalPapertrailTests/app.config b/Terminals/Papertrail/terminalPapertrailTests/app.config similarity index 100% rename from Tests/terminalPapertrailTests/app.config rename to Terminals/Papertrail/terminalPapertrailTests/app.config diff --git a/Tests/terminalPapertrailTests/packages.config b/Terminals/Papertrail/terminalPapertrailTests/packages.config similarity index 100% rename from Tests/terminalPapertrailTests/packages.config rename to Terminals/Papertrail/terminalPapertrailTests/packages.config diff --git a/Tests/terminalPapertrailTests/terminalPapertrailTests.csproj b/Terminals/Papertrail/terminalPapertrailTests/terminalPapertrailTests.csproj similarity index 72% rename from Tests/terminalPapertrailTests/terminalPapertrailTests.csproj rename to Terminals/Papertrail/terminalPapertrailTests/terminalPapertrailTests.csproj index 2f5c676823..c494768a39 100644 --- a/Tests/terminalPapertrailTests/terminalPapertrailTests.csproj +++ b/Terminals/Papertrail/terminalPapertrailTests/terminalPapertrailTests.csproj @@ -51,74 +51,74 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll True @@ -127,25 +127,25 @@ - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True @@ -154,7 +154,7 @@ - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -175,23 +175,23 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing @@ -204,10 +204,10 @@ - + - - + + - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing - + - - + + - + \ No newline at end of file diff --git a/Tests/terminalQuickBooksTests/Fixtures/HealthMonitor_FixtureData.cs b/Terminals/QuickBooks/terminalQuickBooksTests/Fixtures/HealthMonitor_FixtureData.cs similarity index 100% rename from Tests/terminalQuickBooksTests/Fixtures/HealthMonitor_FixtureData.cs rename to Terminals/QuickBooks/terminalQuickBooksTests/Fixtures/HealthMonitor_FixtureData.cs diff --git a/Tests/terminalQuickBooksTests/Integration/Convert_TableData_To_AccountingTransactions_v1Tests.cs b/Terminals/QuickBooks/terminalQuickBooksTests/Integration/Convert_TableData_To_AccountingTransactions_v1Tests.cs similarity index 100% rename from Tests/terminalQuickBooksTests/Integration/Convert_TableData_To_AccountingTransactions_v1Tests.cs rename to Terminals/QuickBooks/terminalQuickBooksTests/Integration/Convert_TableData_To_AccountingTransactions_v1Tests.cs diff --git a/Tests/terminalQuickBooksTests/Integration/Create_Journal_Entry_v1Tests.cs b/Terminals/QuickBooks/terminalQuickBooksTests/Integration/Create_Journal_Entry_v1Tests.cs similarity index 100% rename from Tests/terminalQuickBooksTests/Integration/Create_Journal_Entry_v1Tests.cs rename to Terminals/QuickBooks/terminalQuickBooksTests/Integration/Create_Journal_Entry_v1Tests.cs diff --git a/Tests/terminalQuickBooksTests/Integration/Terminal_Discover_v1Tests.cs b/Terminals/QuickBooks/terminalQuickBooksTests/Integration/Terminal_Discover_v1Tests.cs similarity index 100% rename from Tests/terminalQuickBooksTests/Integration/Terminal_Discover_v1Tests.cs rename to Terminals/QuickBooks/terminalQuickBooksTests/Integration/Terminal_Discover_v1Tests.cs diff --git a/terminalAtlassian/LICENSE b/Terminals/QuickBooks/terminalQuickBooksTests/LICENSE similarity index 100% rename from terminalAtlassian/LICENSE rename to Terminals/QuickBooks/terminalQuickBooksTests/LICENSE diff --git a/Tests/terminalQuickBooksTests/Properties/AssemblyInfo.cs b/Terminals/QuickBooks/terminalQuickBooksTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalQuickBooksTests/Properties/AssemblyInfo.cs rename to Terminals/QuickBooks/terminalQuickBooksTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalQuickBooksTests/app.config b/Terminals/QuickBooks/terminalQuickBooksTests/app.config similarity index 100% rename from Tests/terminalQuickBooksTests/app.config rename to Terminals/QuickBooks/terminalQuickBooksTests/app.config diff --git a/Tests/terminalQuickBooksTests/packages.config b/Terminals/QuickBooks/terminalQuickBooksTests/packages.config similarity index 100% rename from Tests/terminalQuickBooksTests/packages.config rename to Terminals/QuickBooks/terminalQuickBooksTests/packages.config diff --git a/Tests/terminalQuickBooksTests/terminalQuickBooksTests.csproj b/Terminals/QuickBooks/terminalQuickBooksTests/terminalQuickBooksTests.csproj similarity index 72% rename from Tests/terminalQuickBooksTests/terminalQuickBooksTests.csproj rename to Terminals/QuickBooks/terminalQuickBooksTests/terminalQuickBooksTests.csproj index b75cb1f03b..6699aec211 100644 --- a/Tests/terminalQuickBooksTests/terminalQuickBooksTests.csproj +++ b/Terminals/QuickBooks/terminalQuickBooksTests/terminalQuickBooksTests.csproj @@ -51,75 +51,75 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll True - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll True @@ -128,25 +128,25 @@ - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True @@ -155,7 +155,7 @@ - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -173,27 +173,27 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + {3d4116ce-63dd-406c-8235-0115a8fa90f1} terminalQuickBooks - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing @@ -209,10 +209,10 @@ - + - - + + - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET @@ -428,5 +428,5 @@ - + \ No newline at end of file diff --git a/Tests/terminalSalesforceTests/Activities/Get_Data_v1Tests.cs b/Terminals/Salesforce/terminalSalesforceTests/Activities/Get_Data_v1Tests.cs similarity index 100% rename from Tests/terminalSalesforceTests/Activities/Get_Data_v1Tests.cs rename to Terminals/Salesforce/terminalSalesforceTests/Activities/Get_Data_v1Tests.cs diff --git a/Tests/terminalSalesforceTests/Activities/Post_To_Chatter_v1Tests.cs b/Terminals/Salesforce/terminalSalesforceTests/Activities/Post_To_Chatter_v1Tests.cs similarity index 100% rename from Tests/terminalSalesforceTests/Activities/Post_To_Chatter_v1Tests.cs rename to Terminals/Salesforce/terminalSalesforceTests/Activities/Post_To_Chatter_v1Tests.cs diff --git a/Tests/terminalSalesforceTests/Activities/Post_To_Chatter_v2Tests.cs b/Terminals/Salesforce/terminalSalesforceTests/Activities/Post_To_Chatter_v2Tests.cs similarity index 100% rename from Tests/terminalSalesforceTests/Activities/Post_To_Chatter_v2Tests.cs rename to Terminals/Salesforce/terminalSalesforceTests/Activities/Post_To_Chatter_v2Tests.cs diff --git a/Tests/terminalSalesforceTests/Activities/Save_To_SalesforceDotCom_v1Tests.cs b/Terminals/Salesforce/terminalSalesforceTests/Activities/Save_To_SalesforceDotCom_v1Tests.cs similarity index 100% rename from Tests/terminalSalesforceTests/Activities/Save_To_SalesforceDotCom_v1Tests.cs rename to Terminals/Salesforce/terminalSalesforceTests/Activities/Save_To_SalesforceDotCom_v1Tests.cs diff --git a/Tests/terminalSalesforceTests/App.config b/Terminals/Salesforce/terminalSalesforceTests/App.config similarity index 100% rename from Tests/terminalSalesforceTests/App.config rename to Terminals/Salesforce/terminalSalesforceTests/App.config diff --git a/Tests/terminalSalesforceTests/Fixtures/FixtureData.cs b/Terminals/Salesforce/terminalSalesforceTests/Fixtures/FixtureData.cs similarity index 100% rename from Tests/terminalSalesforceTests/Fixtures/FixtureData.cs rename to Terminals/Salesforce/terminalSalesforceTests/Fixtures/FixtureData.cs diff --git a/Tests/terminalSalesforceTests/Fixtures/HealthMonitor_FixtureData.cs b/Terminals/Salesforce/terminalSalesforceTests/Fixtures/HealthMonitor_FixtureData.cs similarity index 100% rename from Tests/terminalSalesforceTests/Fixtures/HealthMonitor_FixtureData.cs rename to Terminals/Salesforce/terminalSalesforceTests/Fixtures/HealthMonitor_FixtureData.cs diff --git a/Tests/terminalSalesforceTests/Intergration/BaseSalesforceIntegrationTest.cs b/Terminals/Salesforce/terminalSalesforceTests/Intergration/BaseSalesforceIntegrationTest.cs similarity index 100% rename from Tests/terminalSalesforceTests/Intergration/BaseSalesforceIntegrationTest.cs rename to Terminals/Salesforce/terminalSalesforceTests/Intergration/BaseSalesforceIntegrationTest.cs diff --git a/Tests/terminalSalesforceTests/Intergration/GetSalesforceData_Into_SendEmail_EndToEnd_Tests.cs b/Terminals/Salesforce/terminalSalesforceTests/Intergration/GetSalesforceData_Into_SendEmail_EndToEnd_Tests.cs similarity index 100% rename from Tests/terminalSalesforceTests/Intergration/GetSalesforceData_Into_SendEmail_EndToEnd_Tests.cs rename to Terminals/Salesforce/terminalSalesforceTests/Intergration/GetSalesforceData_Into_SendEmail_EndToEnd_Tests.cs diff --git a/Tests/terminalSalesforceTests/Intergration/Monitor_Salesforce_Event_v1Tests.cs b/Terminals/Salesforce/terminalSalesforceTests/Intergration/Monitor_Salesforce_Event_v1Tests.cs similarity index 100% rename from Tests/terminalSalesforceTests/Intergration/Monitor_Salesforce_Event_v1Tests.cs rename to Terminals/Salesforce/terminalSalesforceTests/Intergration/Monitor_Salesforce_Event_v1Tests.cs diff --git a/Tests/terminalSalesforceTests/Intergration/Post_To_Chatter_v1Tests.cs b/Terminals/Salesforce/terminalSalesforceTests/Intergration/Post_To_Chatter_v1Tests.cs similarity index 100% rename from Tests/terminalSalesforceTests/Intergration/Post_To_Chatter_v1Tests.cs rename to Terminals/Salesforce/terminalSalesforceTests/Intergration/Post_To_Chatter_v1Tests.cs diff --git a/Tests/terminalSalesforceTests/Intergration/SaveToSalesforce_And_GetSalesforceData_EndToEnd_Tests.cs b/Terminals/Salesforce/terminalSalesforceTests/Intergration/SaveToSalesforce_And_GetSalesforceData_EndToEnd_Tests.cs similarity index 100% rename from Tests/terminalSalesforceTests/Intergration/SaveToSalesforce_And_GetSalesforceData_EndToEnd_Tests.cs rename to Terminals/Salesforce/terminalSalesforceTests/Intergration/SaveToSalesforce_And_GetSalesforceData_EndToEnd_Tests.cs diff --git a/Tests/terminalSalesforceTests/Intergration/Terminal_Discover_v1Tests.cs b/Terminals/Salesforce/terminalSalesforceTests/Intergration/Terminal_Discover_v1Tests.cs similarity index 100% rename from Tests/terminalSalesforceTests/Intergration/Terminal_Discover_v1Tests.cs rename to Terminals/Salesforce/terminalSalesforceTests/Intergration/Terminal_Discover_v1Tests.cs diff --git a/terminalBasecamp2/LICENSE b/Terminals/Salesforce/terminalSalesforceTests/LICENSE similarity index 100% rename from terminalBasecamp2/LICENSE rename to Terminals/Salesforce/terminalSalesforceTests/LICENSE diff --git a/Tests/terminalSalesforceTests/Properties/AssemblyInfo.cs b/Terminals/Salesforce/terminalSalesforceTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalSalesforceTests/Properties/AssemblyInfo.cs rename to Terminals/Salesforce/terminalSalesforceTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalSalesforceTests/packages.config b/Terminals/Salesforce/terminalSalesforceTests/packages.config similarity index 100% rename from Tests/terminalSalesforceTests/packages.config rename to Terminals/Salesforce/terminalSalesforceTests/packages.config diff --git a/Tests/terminalSalesforceTests/terminalSalesforceTests.csproj b/Terminals/Salesforce/terminalSalesforceTests/terminalSalesforceTests.csproj similarity index 73% rename from Tests/terminalSalesforceTests/terminalSalesforceTests.csproj rename to Terminals/Salesforce/terminalSalesforceTests/terminalSalesforceTests.csproj index 3291b04f7d..80113a2d14 100644 --- a/Tests/terminalSalesforceTests/terminalSalesforceTests.csproj +++ b/Terminals/Salesforce/terminalSalesforceTests/terminalSalesforceTests.csproj @@ -53,103 +53,103 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.AspNet.Identity.Core.2.0.1\lib\net45\Microsoft.AspNet.Identity.Core.dll + ..\..\..\packages\Microsoft.AspNet.Identity.Core.2.0.1\lib\net45\Microsoft.AspNet.Identity.Core.dll True - ..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.1\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll + ..\..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.1\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll True - ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll True - ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll True - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\..\packages\DeveloperForce.Force.1.2.2\lib\Salesforce.Common.dll + ..\..\..\packages\DeveloperForce.Force.1.2.2\lib\Salesforce.Common.dll True - ..\..\packages\DeveloperForce.Force.1.2.2\lib\Salesforce.Force.dll + ..\..\..\packages\DeveloperForce.Force.1.2.2\lib\Salesforce.Force.dll True False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll @@ -159,25 +159,25 @@ - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True @@ -186,7 +186,7 @@ - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -213,38 +213,38 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + + {4f56c030-d16b-4a51-82d0-3c23a47ab703} + Fr8.Testing.Integration.Tools + + + {579ba25f-1df5-474a-8a3e-0447ff75711c} + terminalIntegrationTests + + {85CB0215-96DF-4C38-A022-1BE6C952813B} terminalSalesforce - - {4F56C030-D16B-4A51-82D0-3C23A47AB703} - Fr8.Testing.Integration.Tools - - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing - - {579ba25f-1df5-474a-8a3e-0447ff75711c} - terminalIntegrationTests - @@ -256,9 +256,9 @@ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + - + - + - - + + - + \ No newline at end of file diff --git a/Tests/terminalSendGridTests/Fixtures/FixtureData.cs b/Terminals/SendGrid/terminalSendGridTests/Fixtures/FixtureData.cs similarity index 100% rename from Tests/terminalSendGridTests/Fixtures/FixtureData.cs rename to Terminals/SendGrid/terminalSendGridTests/Fixtures/FixtureData.cs diff --git a/Tests/terminalSendGridTests/Fixtures/HealthMonitor_FixtureData.cs b/Terminals/SendGrid/terminalSendGridTests/Fixtures/HealthMonitor_FixtureData.cs similarity index 100% rename from Tests/terminalSendGridTests/Fixtures/HealthMonitor_FixtureData.cs rename to Terminals/SendGrid/terminalSendGridTests/Fixtures/HealthMonitor_FixtureData.cs diff --git a/Tests/terminalSendGridTests/Integration/SendEmailViaSendGrid_v1Tests.cs b/Terminals/SendGrid/terminalSendGridTests/Integration/SendEmailViaSendGrid_v1Tests.cs similarity index 100% rename from Tests/terminalSendGridTests/Integration/SendEmailViaSendGrid_v1Tests.cs rename to Terminals/SendGrid/terminalSendGridTests/Integration/SendEmailViaSendGrid_v1Tests.cs diff --git a/Tests/terminalSendGridTests/Integration/Terminal_Discover_v1Tests.cs b/Terminals/SendGrid/terminalSendGridTests/Integration/Terminal_Discover_v1Tests.cs similarity index 100% rename from Tests/terminalSendGridTests/Integration/Terminal_Discover_v1Tests.cs rename to Terminals/SendGrid/terminalSendGridTests/Integration/Terminal_Discover_v1Tests.cs diff --git a/terminalDocuSign/LICENSE b/Terminals/SendGrid/terminalSendGridTests/LICENSE similarity index 100% rename from terminalDocuSign/LICENSE rename to Terminals/SendGrid/terminalSendGridTests/LICENSE diff --git a/Tests/terminalSendGridTests/Properties/AssemblyInfo.cs b/Terminals/SendGrid/terminalSendGridTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalSendGridTests/Properties/AssemblyInfo.cs rename to Terminals/SendGrid/terminalSendGridTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalSendGridTests/Unit/Activities/SendEmailViaSendGrid_v1Tests.cs b/Terminals/SendGrid/terminalSendGridTests/Unit/Activities/SendEmailViaSendGrid_v1Tests.cs similarity index 100% rename from Tests/terminalSendGridTests/Unit/Activities/SendEmailViaSendGrid_v1Tests.cs rename to Terminals/SendGrid/terminalSendGridTests/Unit/Activities/SendEmailViaSendGrid_v1Tests.cs diff --git a/Tests/terminalSendGridTests/app.config b/Terminals/SendGrid/terminalSendGridTests/app.config similarity index 100% rename from Tests/terminalSendGridTests/app.config rename to Terminals/SendGrid/terminalSendGridTests/app.config diff --git a/Tests/terminalSendGridTests/packages.config b/Terminals/SendGrid/terminalSendGridTests/packages.config similarity index 100% rename from Tests/terminalSendGridTests/packages.config rename to Terminals/SendGrid/terminalSendGridTests/packages.config diff --git a/Tests/terminalSendGridTests/terminalSendGridTests.csproj b/Terminals/SendGrid/terminalSendGridTests/terminalSendGridTests.csproj similarity index 71% rename from Tests/terminalSendGridTests/terminalSendGridTests.csproj rename to Terminals/SendGrid/terminalSendGridTests/terminalSendGridTests.csproj index b5aa6a76db..8bfb2c84be 100644 --- a/Tests/terminalSendGridTests/terminalSendGridTests.csproj +++ b/Terminals/SendGrid/terminalSendGridTests/terminalSendGridTests.csproj @@ -51,82 +51,82 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\..\packages\SendGrid.SmtpApi.1.1.3\lib\net40\SendGrid.SmtpApi.dll + ..\..\..\packages\SendGrid.SmtpApi.1.1.3\lib\net40\SendGrid.SmtpApi.dll True - ..\..\packages\Sendgrid.5.0.0\lib\SendGridMail.dll + ..\..\..\packages\Sendgrid.5.0.0\lib\SendGridMail.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll True @@ -134,24 +134,24 @@ - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True @@ -160,7 +160,7 @@ - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -173,31 +173,31 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + {1e1ab01b-f6ab-4420-bf1d-5e6ef41d76bf} terminalSendGrid - + {e46b602a-287b-450f-b455-5eed20c93eb7} terminalUtilities - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing @@ -218,10 +218,10 @@ - + - - + + - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + - - + + - + \ No newline at end of file diff --git a/Tests/terminalSlackTests/Activities/Monitor_Channel_v1Tests.cs b/Terminals/Slack/terminalSlackTests/Activities/Monitor_Channel_v1Tests.cs similarity index 100% rename from Tests/terminalSlackTests/Activities/Monitor_Channel_v1Tests.cs rename to Terminals/Slack/terminalSlackTests/Activities/Monitor_Channel_v1Tests.cs diff --git a/Tests/terminalSlackTests/Activities/Monitor_Channel_v2Tests.cs b/Terminals/Slack/terminalSlackTests/Activities/Monitor_Channel_v2Tests.cs similarity index 100% rename from Tests/terminalSlackTests/Activities/Monitor_Channel_v2Tests.cs rename to Terminals/Slack/terminalSlackTests/Activities/Monitor_Channel_v2Tests.cs diff --git a/Tests/terminalSlackTests/Fixtures/HealthMonitor_FixtureData.cs b/Terminals/Slack/terminalSlackTests/Fixtures/HealthMonitor_FixtureData.cs similarity index 100% rename from Tests/terminalSlackTests/Fixtures/HealthMonitor_FixtureData.cs rename to Terminals/Slack/terminalSlackTests/Fixtures/HealthMonitor_FixtureData.cs diff --git a/Tests/terminalSlackTests/Integration/Publish_To_Slack_v1_Tests.cs b/Terminals/Slack/terminalSlackTests/Integration/Publish_To_Slack_v1_Tests.cs similarity index 100% rename from Tests/terminalSlackTests/Integration/Publish_To_Slack_v1_Tests.cs rename to Terminals/Slack/terminalSlackTests/Integration/Publish_To_Slack_v1_Tests.cs diff --git a/Tests/terminalSlackTests/Integration/Terminal_Discover_v1Tests.cs b/Terminals/Slack/terminalSlackTests/Integration/Terminal_Discover_v1Tests.cs similarity index 100% rename from Tests/terminalSlackTests/Integration/Terminal_Discover_v1Tests.cs rename to Terminals/Slack/terminalSlackTests/Integration/Terminal_Discover_v1Tests.cs diff --git a/terminalPapertrail/LICENSE b/Terminals/Slack/terminalSlackTests/LICENSE similarity index 100% rename from terminalPapertrail/LICENSE rename to Terminals/Slack/terminalSlackTests/LICENSE diff --git a/Tests/terminalSlackTests/Properties/AssemblyInfo.cs b/Terminals/Slack/terminalSlackTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalSlackTests/Properties/AssemblyInfo.cs rename to Terminals/Slack/terminalSlackTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalSlackTests/app.config b/Terminals/Slack/terminalSlackTests/app.config similarity index 100% rename from Tests/terminalSlackTests/app.config rename to Terminals/Slack/terminalSlackTests/app.config diff --git a/Tests/terminalSlackTests/packages.config b/Terminals/Slack/terminalSlackTests/packages.config similarity index 100% rename from Tests/terminalSlackTests/packages.config rename to Terminals/Slack/terminalSlackTests/packages.config diff --git a/Tests/terminalSlackTests/terminalSlackTests.csproj b/Terminals/Slack/terminalSlackTests/terminalSlackTests.csproj similarity index 66% rename from Tests/terminalSlackTests/terminalSlackTests.csproj rename to Terminals/Slack/terminalSlackTests/terminalSlackTests.csproj index 92f8e71449..58171175df 100644 --- a/Tests/terminalSlackTests/terminalSlackTests.csproj +++ b/Terminals/Slack/terminalSlackTests/terminalSlackTests.csproj @@ -1,7 +1,7 @@  - - + + Debug @@ -55,78 +55,78 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll + ..\..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll True @@ -135,24 +135,24 @@ - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True @@ -161,7 +161,7 @@ - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -174,27 +174,27 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + {990db8cb-aad6-42fe-940d-3a731df56abe} terminalSlack - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing @@ -219,13 +219,13 @@ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + - - + + - + - - + + - + \ No newline at end of file diff --git a/Tests/terminalTwilioTests/Activities/Send_Via_Twilio_v1Tests.cs b/Terminals/Twilio/terminalTwilioTests/Activities/Send_Via_Twilio_v1Tests.cs similarity index 100% rename from Tests/terminalTwilioTests/Activities/Send_Via_Twilio_v1Tests.cs rename to Terminals/Twilio/terminalTwilioTests/Activities/Send_Via_Twilio_v1Tests.cs diff --git a/Tests/terminalTwilioTests/Fixture/FixtureData.cs b/Terminals/Twilio/terminalTwilioTests/Fixture/FixtureData.cs similarity index 100% rename from Tests/terminalTwilioTests/Fixture/FixtureData.cs rename to Terminals/Twilio/terminalTwilioTests/Fixture/FixtureData.cs diff --git a/Tests/terminalTwilioTests/Fixture/HealthMonitor_FixtureData.cs b/Terminals/Twilio/terminalTwilioTests/Fixture/HealthMonitor_FixtureData.cs similarity index 100% rename from Tests/terminalTwilioTests/Fixture/HealthMonitor_FixtureData.cs rename to Terminals/Twilio/terminalTwilioTests/Fixture/HealthMonitor_FixtureData.cs diff --git a/Tests/terminalTwilioTests/Integration/Send_Via_Twilio_v1Tests.cs b/Terminals/Twilio/terminalTwilioTests/Integration/Send_Via_Twilio_v1Tests.cs similarity index 100% rename from Tests/terminalTwilioTests/Integration/Send_Via_Twilio_v1Tests.cs rename to Terminals/Twilio/terminalTwilioTests/Integration/Send_Via_Twilio_v1Tests.cs diff --git a/Tests/terminalTwilioTests/Integration/Terminal_Discover_v1Tests.cs b/Terminals/Twilio/terminalTwilioTests/Integration/Terminal_Discover_v1Tests.cs similarity index 100% rename from Tests/terminalTwilioTests/Integration/Terminal_Discover_v1Tests.cs rename to Terminals/Twilio/terminalTwilioTests/Integration/Terminal_Discover_v1Tests.cs diff --git a/terminalStatX/LICENSE b/Terminals/Twilio/terminalTwilioTests/LICENSE similarity index 100% rename from terminalStatX/LICENSE rename to Terminals/Twilio/terminalTwilioTests/LICENSE diff --git a/Tests/terminalTwilioTests/Properties/AssemblyInfo.cs b/Terminals/Twilio/terminalTwilioTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalTwilioTests/Properties/AssemblyInfo.cs rename to Terminals/Twilio/terminalTwilioTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalTwilioTests/app.config b/Terminals/Twilio/terminalTwilioTests/app.config similarity index 100% rename from Tests/terminalTwilioTests/app.config rename to Terminals/Twilio/terminalTwilioTests/app.config diff --git a/Tests/terminalTwilioTests/packages.config b/Terminals/Twilio/terminalTwilioTests/packages.config similarity index 100% rename from Tests/terminalTwilioTests/packages.config rename to Terminals/Twilio/terminalTwilioTests/packages.config diff --git a/Tests/terminalTwilioTests/terminalTwilioTests.csproj b/Terminals/Twilio/terminalTwilioTests/terminalTwilioTests.csproj similarity index 71% rename from Tests/terminalTwilioTests/terminalTwilioTests.csproj rename to Terminals/Twilio/terminalTwilioTests/terminalTwilioTests.csproj index 86ee308c18..46e02f3f00 100644 --- a/Tests/terminalTwilioTests/terminalTwilioTests.csproj +++ b/Terminals/Twilio/terminalTwilioTests/terminalTwilioTests.csproj @@ -43,74 +43,74 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.3.0.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.3.0.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll True @@ -119,24 +119,24 @@ - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True @@ -145,7 +145,7 @@ - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -158,31 +158,31 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + {14404298-4182-4d43-8098-5a199ed2fcaa} terminalTwilio - + {e46b602a-287b-450f-b455-5eed20c93eb7} terminalUtilities - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing @@ -205,10 +205,10 @@ - + - - + + - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + - - + + - + \ No newline at end of file diff --git a/Tests/terminalYammerTests/Fixtures/HealthMonitor_FixtureData.cs b/Terminals/Yammer/terminalYammerTests/Fixtures/HealthMonitor_FixtureData.cs similarity index 100% rename from Tests/terminalYammerTests/Fixtures/HealthMonitor_FixtureData.cs rename to Terminals/Yammer/terminalYammerTests/Fixtures/HealthMonitor_FixtureData.cs diff --git a/Tests/terminalYammerTests/Integration/Post_To_Yammer_v1Tests.cs b/Terminals/Yammer/terminalYammerTests/Integration/Post_To_Yammer_v1Tests.cs similarity index 100% rename from Tests/terminalYammerTests/Integration/Post_To_Yammer_v1Tests.cs rename to Terminals/Yammer/terminalYammerTests/Integration/Post_To_Yammer_v1Tests.cs diff --git a/Tests/terminalYammerTests/Integration/Terminal_Discover_v1_Tests.cs b/Terminals/Yammer/terminalYammerTests/Integration/Terminal_Discover_v1_Tests.cs similarity index 100% rename from Tests/terminalYammerTests/Integration/Terminal_Discover_v1_Tests.cs rename to Terminals/Yammer/terminalYammerTests/Integration/Terminal_Discover_v1_Tests.cs diff --git a/terminalTwilio/LICENSE b/Terminals/Yammer/terminalYammerTests/LICENSE similarity index 100% rename from terminalTwilio/LICENSE rename to Terminals/Yammer/terminalYammerTests/LICENSE diff --git a/Tests/terminalYammerTests/Properties/AssemblyInfo.cs b/Terminals/Yammer/terminalYammerTests/Properties/AssemblyInfo.cs similarity index 100% rename from Tests/terminalYammerTests/Properties/AssemblyInfo.cs rename to Terminals/Yammer/terminalYammerTests/Properties/AssemblyInfo.cs diff --git a/Tests/terminalYammerTests/app.config b/Terminals/Yammer/terminalYammerTests/app.config similarity index 100% rename from Tests/terminalYammerTests/app.config rename to Terminals/Yammer/terminalYammerTests/app.config diff --git a/Tests/terminalYammerTests/packages.config b/Terminals/Yammer/terminalYammerTests/packages.config similarity index 100% rename from Tests/terminalYammerTests/packages.config rename to Terminals/Yammer/terminalYammerTests/packages.config diff --git a/Tests/terminalYammerTests/terminalYammerTests.csproj b/Terminals/Yammer/terminalYammerTests/terminalYammerTests.csproj similarity index 71% rename from Tests/terminalYammerTests/terminalYammerTests.csproj rename to Terminals/Yammer/terminalYammerTests/terminalYammerTests.csproj index a8c39d6c99..4b58805acb 100644 --- a/Tests/terminalYammerTests/terminalYammerTests.csproj +++ b/Terminals/Yammer/terminalYammerTests/terminalYammerTests.csproj @@ -43,74 +43,74 @@ - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll + ..\..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll True - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll True - ..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll + ..\..\..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll True - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll + ..\..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll True - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + ..\..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll True - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + ..\..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll True - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + ..\..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll True - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll + ..\..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll - ..\..\packages\Owin.1.0\lib\net40\Owin.dll + ..\..\..\packages\Owin.1.0\lib\net40\Owin.dll True - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll + ..\..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll True - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll + ..\..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll True - ..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll + ..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll True - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll + ..\..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll True @@ -119,25 +119,25 @@ - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll True - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll True @@ -146,7 +146,7 @@ - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll + ..\..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll True @@ -157,23 +157,23 @@ - + {990241ea-6cf0-4026-b57c-a9031463c7c0} Data - + {bba91af2-7636-41b6-87c4-c1575ae8b04b} Fr8Infrastructure.NET - + {bf96675e-6baf-4ac9-b247-1551d62e8c44} Fr8TerminalBase.NET - + {9891496c-8512-4708-925a-ee9d0f9199d4} Hub - + {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} Fr8.Testing @@ -196,10 +196,10 @@ - + - - + + -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Tests/PlanDirectoryTests/Infrastructure/ManifestPageGeneratorTests.cs b/Tests/PlanDirectoryTests/Infrastructure/ManifestPageGeneratorTests.cs deleted file mode 100644 index c6b8644a43..0000000000 --- a/Tests/PlanDirectoryTests/Infrastructure/ManifestPageGeneratorTests.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq.Expressions; -using System.Threading.Tasks; -using Data.Entities; -using Data.Interfaces; -using Fr8.Infrastructure.Data.Manifests; -using Hub.Interfaces; -using Moq; -using NUnit.Framework; -using Hub.Exceptions; -using Hub.Enums; -using Hub.Services.PlanDirectory; -using HubWeb.Infrastructure_PD.TemplateGenerators; - -namespace PlanDirectoryTests.Infrastructure -{ - [TestFixture] - public class ManifestPageGeneratorTests - { - private Mock _templateGeneratorMock; - private Mock _pageDefinitionServiceMock; - private Mock _fr8AccountServiceMock; - private Mock _unitOfWorkFactoryMock; - private Mock _unitOfWorkMock; - - [SetUp] - public void SetUp() - { - _templateGeneratorMock = new Mock(); - _pageDefinitionServiceMock = new Mock(); - _fr8AccountServiceMock = new Mock(); - _fr8AccountServiceMock.Setup(x => x.GetSystemUser()).Returns(new Fr8AccountDO(new EmailAddressDO("xx@xx.xx"))); - _unitOfWorkMock = new Mock(); - _unitOfWorkFactoryMock = new Mock(); - _unitOfWorkFactoryMock.Setup(x => x.Create()).Returns(_unitOfWorkMock.Object); - - } - - private ManifestPageGenerator CreateTarget() - { - return new ManifestPageGenerator( - _templateGeneratorMock.Object, - _pageDefinitionServiceMock.Object, - _fr8AccountServiceMock.Object, - _unitOfWorkFactoryMock.Object); - } - - [Test] - [ExpectedException(typeof(ManifestPageNotFoundException), UserMessage = "Exception is not thrown when page doesn't exist")] - public async Task Generate_WhenPageDoesntExistAndRegenerationIsNotRequested_ThrowsException() - { - _pageDefinitionServiceMock.Setup(x => x.Get(It.IsAny>>())) - .Returns(new List(0)); - var target = CreateTarget(); - await target.Generate("Name", GenerateMode.RetrieveExisting); - } - - [Test] - public async Task Generate_WhenPageExistsAndRegenerationIsNotForced_ReturnsExistingPage() - { - _pageDefinitionServiceMock.Setup(x => x.Get(It.IsAny>>())) - .Returns(new List { new PageDefinitionDO { Url = new Uri("http://example.com") } }); - var target = CreateTarget(); - var result = await target.Generate("Name", GenerateMode.GenerateIfNotExists); - Assert.AreEqual(new Uri("http://example.com"), result, "Existing page was not returned when regeneration was not forced"); - } - - [Test] - [ExpectedException(typeof(ManifestGenerationException), UserMessage = "Exception is not thrown when system user doesn't exist")] - public async Task Generate_WhenSystemUserDoesntExist_ThrowsException() - { - _fr8AccountServiceMock.Setup(x => x.GetSystemUser()).Returns((Fr8AccountDO)null); - _pageDefinitionServiceMock.Setup(x => x.Get(It.IsAny>>())) - .Returns(new List(0)); - var target = CreateTarget(); - await target.Generate("Name", GenerateMode.GenerateAlways); - } - - [Test] - [ExpectedException(typeof(ManifestNotFoundException), UserMessage = "Exception is not thrown when manifest doesn't exist")] - public async Task Generate_WhenManifestDoesntExist_ThrowsException() - { - _pageDefinitionServiceMock.Setup(x => x.Get(It.IsAny>>())) - .Returns(new List(0)); - _unitOfWorkMock.Setup(x => x.MultiTenantObjectRepository) - .Returns(() => - { - var mock = new Mock(); - mock.Setup(x => x.Query(It.IsAny(), It.IsAny>>())) - .Returns(new List(0)); - return mock.Object; - }); - var target = CreateTarget(); - await target.Generate("Name", GenerateMode.GenerateAlways); - } - - [Test] - public async Task Generate_WhenManifestExists_SavesPageDefinitionAndGeneratesFile() - { - _pageDefinitionServiceMock.Setup(x => x.Get(It.IsAny>>())) - .Returns(new List(0)); - _unitOfWorkMock.Setup(x => x.MultiTenantObjectRepository) - .Returns(() => - { - var mock = new Mock(); - mock.Setup(x => x.Query(It.IsAny(), It.IsAny>>())) - .Returns(new List { new ManifestDescriptionCM { Name = "Name"} }); - return mock.Object; - }); - _templateGeneratorMock.Setup(x => x.BaseUrl).Returns(new Uri("http://example.com")); - _templateGeneratorMock.Setup(x => x.OutputFolder).Returns("C:\\"); - var target = CreateTarget(); - await target.Generate("Name", GenerateMode.GenerateAlways); - _pageDefinitionServiceMock.Verify(x => x.CreateOrUpdate(It.IsAny()), Times.Once(), "Page definition was not saved"); - _templateGeneratorMock.Verify(x => x.Generate(It.IsAny(), It.IsAny(), It.IsAny>()), - Times.Once(), - "File was not generated"); - } - } -} diff --git a/Tests/PlanDirectoryTests/PlanDirectoryTests.csproj b/Tests/PlanDirectoryTests/PlanDirectoryTests.csproj deleted file mode 100644 index 8454583d64..0000000000 --- a/Tests/PlanDirectoryTests/PlanDirectoryTests.csproj +++ /dev/null @@ -1,127 +0,0 @@ - - - - Debug - AnyCPU - {3F32543F-7A89-4AE3-A607-A58C4B52B841} - Library - Properties - PlanDirectoryTests - PlanDirectoryTests - v4.5 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll - True - - - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll - True - - - ..\..\packages\Microsoft.AspNet.Identity.Core.2.1.0\lib\net45\Microsoft.AspNet.Identity.Core.dll - True - - - ..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.1.0\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll - True - - - ..\..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll - True - - - False - ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll - - - - - - - - - - - - - - - - - - - - - - - - {990241EA-6CF0-4026-B57C-A9031463C7C0} - Data - - - {BBA91AF2-7636-41B6-87C4-C1575AE8B04B} - Fr8Infrastructure.NET - - - {F7BD7117-4F1D-4215-B338-61EBDD0D0BFE} - HubWeb - - - {9891496C-8512-4708-925A-EE9D0F9199D4} - Hub - - - - - - - False - - - False - - - False - - - False - - - - - - - - \ No newline at end of file diff --git a/Tests/PlanDirectoryTests/Properties/AssemblyInfo.cs b/Tests/PlanDirectoryTests/Properties/AssemblyInfo.cs deleted file mode 100644 index b1ad369acc..0000000000 --- a/Tests/PlanDirectoryTests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PlanDirectoryTests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("PlanDirectoryTests")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("3f32543f-7a89-4ae3-a607-a58c4b52b841")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tests/PlanDirectoryTests/packages.config b/Tests/PlanDirectoryTests/packages.config deleted file mode 100644 index 305997a7e2..0000000000 --- a/Tests/PlanDirectoryTests/packages.config +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Tests/terminalPapertrailTests/ApplicationInsights.config b/Tests/terminalPapertrailTests/ApplicationInsights.config deleted file mode 100644 index ab7b109e55..0000000000 --- a/Tests/terminalPapertrailTests/ApplicationInsights.config +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Tests/terminalTest/Activities/GenerateTableActivity_v1.cs b/Tests/terminalTest/Activities/GenerateTableActivity_v1.cs deleted file mode 100644 index 77fe1b029e..0000000000 --- a/Tests/terminalTest/Activities/GenerateTableActivity_v1.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System.Threading.Tasks; -using Fr8.Infrastructure.Data.Control; -using Fr8.Infrastructure.Data.Crates; -using Fr8.Infrastructure.Data.DataTransferObjects; -using Fr8.Infrastructure.Data.Managers; -using Fr8.Infrastructure.Data.Manifests; -using Fr8.Infrastructure.Data.States; - -namespace terminalTest.Actions -{ - public class GenerateTableActivity_v1 : TestActivityBase - { - public static ActivityTemplateDTO ActivityTemplateDTO = new ActivityTemplateDTO - { - Name = "GenerateTableActivity", - Label = "GenerateTableActivity", - Version = "1", - Terminal = TerminalData.TerminalDTO - }; - protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; - - public class ActivityUi : StandardConfigurationControlsCM - { - public TextBox NumberOfRows; - public TextBlock Header; - - public ActivityUi() - { - Controls.Add(Header = new TextBlock()); - Controls.Add(NumberOfRows = new TextBox { Label = "Number of rows", Value = "3"}); - NumberOfRows.Events.Add(ControlEvent.RequestConfig); - } - } - - public GenerateTableActivity_v1(ICrateManager crateManager) - : base(crateManager) - { - } - - public override Task Initialize() - { - ActivityUI.Header.Value = ActivityId.ToString(); - CrateSignaller.MarkAvailableAtRuntime("Table"); - - return Task.FromResult(0); - } - - public override Task FollowUp() - { - return Task.FromResult(0); - } - - public override Task Run() - { - Log($"Table {ActivityPayload.Label} [{ActivityId}] started"); - - var tableCm = new StandardTableDataCM(); - - for (int i = 0; i < int.Parse(ActivityUI.NumberOfRows.Value); i ++) - { - TableRowDTO row; - tableCm.Table.Add(row = new TableRowDTO()); - - for (int j = 0; j < 5; j ++) - { - row.Row.Add(new TableCellDTO - { - Cell = new KeyValueDTO("Column " + j, $"Cell [{i}, {j}]") - }); - } - } - - Payload.Add(Crate.FromContent("Table", tableCm)); - - return Task.FromResult(0); - } - - public override Task RunChildActivities() - { - Log($"{ActivityPayload.Label} [{ActivityId}] ended"); - - return Task.FromResult(0); - } - } -} \ No newline at end of file diff --git a/Tests/terminalTest/Activities/SimpleActivity_v1.cs b/Tests/terminalTest/Activities/SimpleActivity_v1.cs deleted file mode 100644 index 8235ba3aae..0000000000 --- a/Tests/terminalTest/Activities/SimpleActivity_v1.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using Fr8.Infrastructure.Data.Control; -using Fr8.Infrastructure.Data.DataTransferObjects; -using Fr8.Infrastructure.Data.Managers; -using Fr8.Infrastructure.Data.Manifests; -using Fr8.Infrastructure.Data.States; -using Fr8.TerminalBase.Services; - -namespace terminalTest.Actions -{ - public class SimpleActivity_v1 : TestActivityBase - { - public static ActivityTemplateDTO ActivityTemplateDTO = new ActivityTemplateDTO - { - Name = "SimpleActivity", - Label = "SimpleActivity", - Version = "1", - Terminal = TerminalData.TerminalDTO - }; - protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; - - public class ActivityUi : StandardConfigurationControlsCM - { - public TextBlock TextBlock; - public TextBox ActivityToAdd; - public Button AddChild; - - public ActivityUi() - { - Controls.Add(TextBlock = new TextBlock()); - Controls.Add(ActivityToAdd = new TextBox { Label = "Activity to add" }); - Controls.Add(AddChild = new Button { Label = "Add child activity" }); - AddChild.Events.Add(ControlEvent.RequestConfigOnClick); - } - } - - - public SimpleActivity_v1(ICrateManager crateManager) - : base(crateManager) - { - } - - public override Task Initialize() - { - ActivityUI.TextBlock.Value = ActivityId.ToString(); - return Task.FromResult(0); - } - - public override async Task FollowUp() - { - if (ActivityUI.AddChild.Clicked) - { - ActivityUI.AddChild.Clicked = false; - var activityTemplate = await GetActivityTemplateByName(ActivityUI.ActivityToAdd.Value); - await HubCommunicator.AddAndConfigureChildActivity(ActivityPayload, activityTemplate, ActivityPayload.Label + "." + (ActivityPayload.ChildrenActivities.Count + 1), ActivityPayload.Label + "." + (ActivityPayload.ChildrenActivities.Count + 1)); - } - } - - - - public override Task Run() - { - Log($"{ActivityPayload.Label} [{ActivityId}] started"); - return Task.FromResult(0); - } - - public override Task RunChildActivities() - { - Log($"{ActivityPayload.Label} [{ActivityId}] ended"); - return Task.FromResult(0); - } - } -} \ No newline at end of file diff --git a/Tests/terminalTest/Activities/SimpleHierarchicalActivity_v1.cs b/Tests/terminalTest/Activities/SimpleHierarchicalActivity_v1.cs deleted file mode 100644 index fb42a0e08f..0000000000 --- a/Tests/terminalTest/Activities/SimpleHierarchicalActivity_v1.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using Fr8.Infrastructure.Data.Crates; -using Fr8.Infrastructure.Data.DataTransferObjects; -using Fr8.Infrastructure.Data.Managers; -using Fr8.Infrastructure.Data.Manifests; -using Fr8.Infrastructure.Data.States; -using Fr8.TerminalBase.Models; - -namespace terminalTest.Actions -{ - public class SimpleHierarchicalActivity_v1 : TestActivityBase - { - public static ActivityTemplateDTO ActivityTemplateDTO = new ActivityTemplateDTO - { - Name = "SimpleHierarchicalActivity", - Label = "SimpleHierarchicalActivity", - Version = "1", - Terminal = TerminalData.TerminalDTO - }; - protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; - - public class ActivityUi : StandardConfigurationControlsCM - { - } - - public SimpleHierarchicalActivity_v1(ICrateManager crateManager) - : base(crateManager) - { - } - - public override async Task Initialize() - { - var templates = await HubCommunicator.GetActivityTemplates(); - var activityTemplate = templates.Select(x => new ActivityTemplateSummaryDTO - { - Name = x.Name, - Version = x.Version, - TerminalName = x.Terminal.Name, - TerminalVersion = x.Terminal.Version - }).First(x => x.Name == "SimpleActivity"); - - ActivityPayload.ChildrenActivities.Add(new ActivityPayload - { - Id = Guid.NewGuid(), - CrateStorage = new CrateStorage(), - ActivityTemplate = activityTemplate, - //ActivityTemplateId = activityTemplate.Id, - Label = "main 1.1", - Ordering = 1 - }); - - ActivityPayload.ChildrenActivities.Add(new ActivityPayload - { - Id = Guid.NewGuid(), - CrateStorage = new CrateStorage(), - //ActivityTemplateId = activityTemplate.Id, - ActivityTemplate = activityTemplate, - Label = "main 1.2", - Ordering = 2, - ChildrenActivities = - { - new ActivityPayload - { - Id = Guid.NewGuid(), - CrateStorage = new CrateStorage(), - //ActivityTemplateId = activityTemplate.Id, - ActivityTemplate = activityTemplate, - Label = "main 1.2.1", - Ordering = 1 - }, - new ActivityPayload - { - Id = Guid.NewGuid(), - CrateStorage = new CrateStorage(), - //ActivityTemplateId = activityTemplate.Id, - ActivityTemplate = activityTemplate, - Label = "main 1.2.2", - Ordering = 2 - } - } - }); - - ActivityPayload.ChildrenActivities.Add(new ActivityPayload - { - Id = Guid.NewGuid(), - CrateStorage = new CrateStorage(), - //ActivityTemplateId = activityTemplate.Id, - ActivityTemplate = activityTemplate, - Label = "main 1.3", - Ordering = 3, - }); - } - - public override Task FollowUp() - { - return Task.FromResult(0); - } - - public override Task Run() - { - Log($"{ActivityPayload.Label} started"); - return Task.FromResult(0); - } - - - public override Task RunChildActivities() - { - Log($"{ActivityPayload.Label} ended"); - - return Task.FromResult(0); - } - } -} \ No newline at end of file diff --git a/Tests/terminalTest/Activities/SimpleJumperActivity_v1.cs b/Tests/terminalTest/Activities/SimpleJumperActivity_v1.cs deleted file mode 100644 index 224c3dfd7a..0000000000 --- a/Tests/terminalTest/Activities/SimpleJumperActivity_v1.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System; -using System.Threading.Tasks; -using Fr8.Infrastructure.Data.Constants; -using Fr8.Infrastructure.Data.Control; -using Fr8.Infrastructure.Data.DataTransferObjects; -using Fr8.Infrastructure.Data.Managers; -using Fr8.Infrastructure.Data.Manifests; -using Fr8.Infrastructure.Data.States; -using Fr8.TerminalBase.Services; - -namespace terminalTest.Actions -{ - public class SimpleJumperActivity_v1 : TestActivityBase - { - public static ActivityTemplateDTO ActivityTemplateDTO = new ActivityTemplateDTO - { - Name = "SimpleJumperActivity", - Label = "SimpleJumperActivity", - Version = "1", - Terminal = TerminalData.TerminalDTO - }; - protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; - - public class ActivityUi : StandardConfigurationControlsCM - { - public TextBlock TextBlock; - public TextBox WhereToJump; - public TextBox WhenToJump; - public TextBox HowToJump; - public TextBox ActivityToAdd; - public Button AddChild; - - public ActivityUi() - { - Controls.Add(TextBlock = new TextBlock()); - Controls.Add(WhereToJump = new TextBox {Label = "Where to jump"}); - Controls.Add(WhenToJump = new TextBox {Label = "When to Jumo", Value = "Run"}); - Controls.Add(HowToJump = new TextBox { Label = "How to jump" }); - Controls.Add(ActivityToAdd = new TextBox { Label = "Activity to add" }); - Controls.Add(AddChild = new Button { Label = "Add child activity"}); - AddChild.Events.Add(ControlEvent.RequestConfigOnClick); - } - } - - public SimpleJumperActivity_v1(ICrateManager crateManager) - : base(crateManager) - { - } - - public override Task Initialize() - { - ActivityUI.TextBlock.Value = ActivityId.ToString(); - return Task.FromResult(0); - } - - public override async Task FollowUp() - { - if (ActivityUI.AddChild.Clicked) - { - ActivityUI.AddChild.Clicked = false; - var activityTemplate = await GetActivityTemplateByName(ActivityUI.ActivityToAdd.Value); - await HubCommunicator.AddAndConfigureChildActivity(ActivityPayload, activityTemplate, ActivityPayload.Label + "." + (ActivityPayload.ChildrenActivities.Count + 1), ActivityPayload.Label + "." + (ActivityPayload.ChildrenActivities.Count + 1)); - } - } - - private void RunCore() - { - SetResponse((ActivityResponse) Enum.Parse(typeof (ActivityResponse), ActivityUI.HowToJump.Value), null, Guid.Parse(ActivityUI.WhereToJump.Value)); - } - - public override Task Run() - { - Log($"{ActivityPayload.Label} [{ActivityId}] started"); - - if (String.Equals(ActivityUI.WhenToJump.Value, "Run", StringComparison.InvariantCultureIgnoreCase)) - { - RunCore(); - } - - return Task.FromResult(0); - } - - - public override Task RunChildActivities() - { - Log($"{ActivityPayload.Label} [{ActivityId}] ended"); - - if (String.Equals(ActivityUI.WhenToJump.Value, "children", StringComparison.InvariantCultureIgnoreCase)) - { - RunCore(); - } - - return Task.FromResult(0); - } - } -} \ No newline at end of file diff --git a/Tests/terminalTest/Activities/TestActivityBaseT.cs b/Tests/terminalTest/Activities/TestActivityBaseT.cs deleted file mode 100644 index c3a3105278..0000000000 --- a/Tests/terminalTest/Activities/TestActivityBaseT.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using Fr8.Infrastructure.Data.DataTransferObjects; -using Fr8.Infrastructure.Data.Managers; -using Fr8.Infrastructure.Data.Manifests; -using Fr8.TerminalBase.BaseClasses; - -namespace terminalTest.Actions -{ - public abstract class TestActivityBase : TerminalActivity - where T: StandardConfigurationControlsCM - { - protected TestActivityBase(ICrateManager crateManager) - : base(crateManager) - { - } - - - /// - /// DON'T USE THIS FUNCTION THIS IS JUST FOR BACKWARD COMPABILITY !! - /// - /// - /// - [Obsolete("This function is for backward comatibility only. Please use Task GetActivityTemplate(string, string, string, string)")] - protected async Task GetActivityTemplateByName(string activityTemplateName) - { - var allActivityTemplates = await HubCommunicator.GetActivityTemplates(); - var foundActivity = allActivityTemplates.FirstOrDefault(a => a.Name == activityTemplateName); - - if (foundActivity == null) - { - throw new Exception($"ActivityTemplate was not found. ActivitiyTemplateName: {activityTemplateName}"); - } - - return foundActivity; - } - protected void Log(string message) - { - // use any logging logic you want - //File.AppendAllText(@"C:\Work\fr8_research\log.txt", message + "\n"); - } - } -} \ No newline at end of file diff --git a/Tests/terminalTest/App_Start/RoutesConfig.cs b/Tests/terminalTest/App_Start/RoutesConfig.cs deleted file mode 100644 index baa170fe33..0000000000 --- a/Tests/terminalTest/App_Start/RoutesConfig.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.Http; -using Fr8.TerminalBase.BaseClasses; - -namespace terminalTest -{ - public static class RoutesConfig - { - public static void Register(HttpConfiguration config) - { - BaseTerminalWebApiConfig.Register("Fr8Core", config); - } - } -} \ No newline at end of file diff --git a/Tests/terminalTest/App_Start/WebApiConfig.cs b/Tests/terminalTest/App_Start/WebApiConfig.cs deleted file mode 100644 index e044cccf62..0000000000 --- a/Tests/terminalTest/App_Start/WebApiConfig.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web.Http; - -namespace terminalTest -{ - public static class WebApiConfig - { - public static void Register(HttpConfiguration config) - { - // Web API configuration and services - - // Web API routes - config.MapHttpAttributeRoutes(); - - config.Routes.MapHttpRoute( - name: "DefaultApi", - routeTemplate: "api/{controller}/{id}", - defaults: new { id = RouteParameter.Optional } - ); - } - } -} diff --git a/Tests/terminalTest/ApplicationInsights.config b/Tests/terminalTest/ApplicationInsights.config deleted file mode 100644 index 75e12df9dc..0000000000 --- a/Tests/terminalTest/ApplicationInsights.config +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/Tests/terminalTest/Controllers/ActivityController.cs b/Tests/terminalTest/Controllers/ActivityController.cs deleted file mode 100644 index ab93517e4c..0000000000 --- a/Tests/terminalTest/Controllers/ActivityController.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Fr8.TerminalBase.BaseClasses; -using Fr8.TerminalBase.Services; - -namespace terminalTest.Controllers -{ - public class ActivityController : DefaultActivityController - { - public ActivityController(IActivityExecutor activityExecutor) - : base(activityExecutor) - { - } - } -} \ No newline at end of file diff --git a/Tests/terminalTest/Controllers/TerminalController.cs b/Tests/terminalTest/Controllers/TerminalController.cs deleted file mode 100644 index 24243e54a6..0000000000 --- a/Tests/terminalTest/Controllers/TerminalController.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Fr8.TerminalBase.BaseClasses; -using Fr8.TerminalBase.Services; - -namespace terminalTest.Controllers -{ - public class TerminalController : DefaultTerminalController - { - public TerminalController(IActivityStore activityStore, IHubDiscoveryService hubDiscovery) - : base(activityStore, hubDiscovery) - { - } - } -} \ No newline at end of file diff --git a/Tests/terminalTest/Global.asax b/Tests/terminalTest/Global.asax deleted file mode 100644 index e61a8cc683..0000000000 --- a/Tests/terminalTest/Global.asax +++ /dev/null @@ -1 +0,0 @@ -<%@ Application Codebehind="Global.asax.cs" Inherits="terminalTest.Global" Language="C#" %> diff --git a/Tests/terminalTest/Global.asax.cs b/Tests/terminalTest/Global.asax.cs deleted file mode 100644 index 65a5e44289..0000000000 --- a/Tests/terminalTest/Global.asax.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace terminalTest -{ - public class Global : System.Web.HttpApplication - { - - } -} \ No newline at end of file diff --git a/Tests/terminalTest/Properties/AssemblyInfo.cs b/Tests/terminalTest/Properties/AssemblyInfo.cs deleted file mode 100644 index 79813c3481..0000000000 --- a/Tests/terminalTest/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("terminalTest")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("terminalTest")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("267e6be1-7c3a-4012-8eb4-dcdfb0fd6305")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tests/terminalTest/SelfHostFactory.cs b/Tests/terminalTest/SelfHostFactory.cs deleted file mode 100644 index 0faa82df18..0000000000 --- a/Tests/terminalTest/SelfHostFactory.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using Microsoft.Owin.Hosting; -using Owin; - -namespace terminalTest -{ - public class SelfHostFactory - { - public class SelfHostStartup - { - public void Configuration(IAppBuilder app) - { - var startup = new Startup(); - startup.Configuration(app, selfHost: true); - } - } - - public static IDisposable CreateServer(string url) - { - return WebApp.Start(url: url); - } - } -} diff --git a/Tests/terminalTest/Startup.cs b/Tests/terminalTest/Startup.cs deleted file mode 100644 index 7f71f536fe..0000000000 --- a/Tests/terminalTest/Startup.cs +++ /dev/null @@ -1,54 +0,0 @@ -using Microsoft.Owin; -using Owin; -using System; -using System.Collections.Generic; -using System.Web.Http.Dispatcher; -using Fr8.TerminalBase.BaseClasses; -using terminalTest.Actions; - -[assembly: OwinStartup(typeof(terminalTest.Startup))] -namespace terminalTest -{ - public class Startup: BaseConfiguration - { - public Startup() - : base(TerminalData.TerminalDTO) - { - } - - public void Configuration(IAppBuilder app) - { - Configuration(app, false); - } - - public void Configuration(IAppBuilder app, bool selfHost) - { - ConfigureProject(selfHost, null); - RoutesConfig.Register(_configuration); - ConfigureFormatters(); - - app.UseWebApi(_configuration); - - if (!selfHost) - { - StartHosting(); - } - } - - protected override void RegisterActivities() - { - ActivityStore.RegisterActivity(GenerateTableActivity_v1.ActivityTemplateDTO); - ActivityStore.RegisterActivity(SimpleActivity_v1.ActivityTemplateDTO); - ActivityStore.RegisterActivity(SimpleHierarchicalActivity_v1.ActivityTemplateDTO); - ActivityStore.RegisterActivity(SimpleJumperActivity_v1.ActivityTemplateDTO); - } - - public override ICollection GetControllerTypes(IAssembliesResolver assembliesResolver) - { - return new Type[] { - typeof(Controllers.ActivityController), - typeof(Controllers.TerminalController) - }; - } - } -} diff --git a/Tests/terminalTest/TerminalData.cs b/Tests/terminalTest/TerminalData.cs deleted file mode 100644 index f8e8b309bd..0000000000 --- a/Tests/terminalTest/TerminalData.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Fr8.Infrastructure.Data.DataTransferObjects; -using Fr8.Infrastructure.Data.States; -using Fr8.Infrastructure.Utilities.Configuration; - -namespace terminalTest -{ - public static class TerminalData - { - public static ActivityCategoryDTO WebServiceDTO = new ActivityCategoryDTO - { - Name = "Terminal for debugging" - }; - - public static TerminalDTO TerminalDTO = new TerminalDTO - { - Endpoint = CloudConfigurationManager.GetSetting("terminalTest.TerminalEndpoint"), - TerminalStatus = TerminalStatus.Active, - Name = "terminalTest", - Version = "1" - }; - } -} \ No newline at end of file diff --git a/Tests/terminalTest/Web.Release.config b/Tests/terminalTest/Web.Release.config deleted file mode 100644 index c35844462b..0000000000 --- a/Tests/terminalTest/Web.Release.config +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Tests/terminalTest/Web.config b/Tests/terminalTest/Web.config deleted file mode 100644 index 89bc813539..0000000000 --- a/Tests/terminalTest/Web.config +++ /dev/null @@ -1,104 +0,0 @@ - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Tests/terminalTest/index.html b/Tests/terminalTest/index.html deleted file mode 100644 index 0cd6f4e37a..0000000000 --- a/Tests/terminalTest/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - This is the home page of the Test Terminal Service, one of the many terminals being developed. - - - - diff --git a/Tests/terminalTest/packages.config b/Tests/terminalTest/packages.config deleted file mode 100644 index 6eb7b3fb31..0000000000 --- a/Tests/terminalTest/packages.config +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Tests/terminalTest/terminalTest.csproj b/Tests/terminalTest/terminalTest.csproj deleted file mode 100644 index bfe843cb35..0000000000 --- a/Tests/terminalTest/terminalTest.csproj +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - - Debug - AnyCPU - - - 2.0 - {267E6BE1-7C3A-4012-8EB4-DCDFB0FD6305} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties - terminalTest - terminalTest - v4.5.2 - true - - - - - - - - - - true - full - false - bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\ - TRACE - prompt - 4 - - - - ..\..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll - True - - - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll - True - - - ..\..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll - True - - - ..\..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll - True - - - ..\..\packages\log4net.2.0.5\lib\net45-full\log4net.dll - True - - - ..\..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.0.0\lib\net45\Microsoft.AI.DependencyCollector.dll - True - - - ..\..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll - True - - - ..\..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll - True - - - ..\..\packages\Microsoft.ApplicationInsights.Web.2.0.0\lib\net45\Microsoft.AI.Web.dll - True - - - ..\..\packages\Microsoft.ApplicationInsights.WindowsServer.2.0.0\lib\net45\Microsoft.AI.WindowsServer.dll - True - - - ..\..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll - True - - - False - ..\..\packages\Microsoft.AspNet.Identity.Core.2.0.1\lib\net45\Microsoft.AspNet.Identity.Core.dll - - - False - ..\..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.1\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll - - - - ..\..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll - True - - - ..\..\packages\Microsoft.Owin.Host.HttpListener.3.0.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll - True - - - ..\..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll - True - - - ..\..\packages\Microsoft.Owin.Hosting.3.0.1\lib\net45\Microsoft.Owin.Hosting.dll - True - - - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - True - - - ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll - True - - - ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll - True - - - ..\..\packages\Owin.1.0\lib\net40\Owin.dll - - - ..\..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll - True - - - ..\..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll - True - - - ..\..\packages\RestSharp.105.2.3\lib\net452\RestSharp.dll - True - - - False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll - - - False - ..\..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll - - - - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll - True - - - False - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll - - - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll - True - - - - - - - - - - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.1.2\lib\net45\System.Web.Helpers.dll - True - - - False - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll - - - ..\..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll - - - False - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll - - - ..\..\packages\Microsoft.AspNet.Razor.3.1.2\lib\net45\System.Web.Razor.dll - True - - - ..\..\packages\Microsoft.AspNet.WebPages.3.1.2\lib\net45\System.Web.WebPages.dll - True - - - ..\..\packages\Microsoft.AspNet.WebPages.3.1.2\lib\net45\System.Web.WebPages.Deployment.dll - True - - - ..\..\packages\Microsoft.AspNet.WebPages.3.1.2\lib\net45\System.Web.WebPages.Razor.dll - True - - - - - - - - - - ..\..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll - True - - - - - ..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll - - - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll - - - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll - - - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll - - - - - {bba91af2-7636-41b6-87c4-c1575ae8b04b} - Fr8Infrastructure.NET - - - {bf96675e-6baf-4ac9-b247-1551d62e8c44} - Fr8TerminalBase.NET - - - {fa105e66-8756-4f57-8230-2a52bfebddc6} - TerminalSqlUtilities - - - {e46b602a-287b-450f-b455-5eed20c93eb7} - terminalUtilities - - - {459fe39a-a5cc-41d8-b06e-8fae3a1a623b} - Fr8.Testing - - - - - - - - - - - - - - - - - - Global.asax - - - - - - - - - - Designer - - - - Web.config - - - Web.config - - - - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - true - bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - True - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - - - - - - \ No newline at end of file diff --git a/Utilities/App.config b/Utilities/App.config deleted file mode 100644 index e2fa1c3570..0000000000 --- a/Utilities/App.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Utilities/AutoMapper/JTokenToStringConverter.cs b/Utilities/AutoMapper/JTokenToStringConverter.cs deleted file mode 100644 index 7b561028e5..0000000000 --- a/Utilities/AutoMapper/JTokenToStringConverter.cs +++ /dev/null @@ -1,18 +0,0 @@ -using AutoMapper; -using Newtonsoft.Json.Linq; - -namespace Utilities.AutoMapper -{ - /// - /// AutoMapper converter to convert JObject to string JSON representation. - /// - public class JTokenToStringConverter : ITypeConverter - { - public string Convert(ResolutionContext context) - { - if (context.SourceValue == null) { return null; } - - return ((JToken)context.SourceValue).ToString(); - } - } -} diff --git a/Utilities/AutoMapper/StringToJTokenConverter.cs b/Utilities/AutoMapper/StringToJTokenConverter.cs deleted file mode 100644 index 8c11921106..0000000000 --- a/Utilities/AutoMapper/StringToJTokenConverter.cs +++ /dev/null @@ -1,18 +0,0 @@ -using AutoMapper; -using Newtonsoft.Json.Linq; - -namespace Utilities.AutoMapper -{ - /// - /// AutoMapper converter to convert string JSON representation to JObject. - /// - public class StringToJTokenConverter : ITypeConverter - { - public JToken Convert(ResolutionContext context) - { - if (context.SourceValue == null) { return null; } - - return JToken.Parse((string)context.SourceValue); - } - } -} diff --git a/Utilities/ConfigRepository.cs b/Utilities/ConfigRepository.cs deleted file mode 100644 index d2d27acd57..0000000000 --- a/Utilities/ConfigRepository.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; - -namespace Utilities -{ - public interface IConfigRepository - { - String Get(String key); - String Get(String key, String defaultValue); - T Get(String key); - T Get(String key, T defaultValue); - - void Set(String key, String value); - } - - public class ConfigRepository : IConfigRepository - { - public string Get(string key) - { - return Get(key); - } - - public string Get(string key, string defaultValue) - { - return Get(key, defaultValue); - } - - public T Get(String key) - { - return InternalGet(key); - } - - public T Get(string key, T defaultValue) - { - return InternalGet(key, defaultValue, true); - } - - public void Set(string key, String value) - { - throw new Exception("Setting config settings not supported on live instances."); - } - - private T InternalGet(String key, T defaultValue = default(T), bool defaultProvided = false) - { - var stringValue = Configuration.Azure.CloudConfigurationManager.GetSetting(key); - - if (String.IsNullOrEmpty(stringValue)) - { - if (!defaultProvided) - throw new ConfigurationException("Key '" + key + "' not found."); - - return defaultValue; - } - - var returnType = typeof(T); - - if (returnType == typeof(String)) - { - return (T)(object)stringValue; - } - if (returnType == typeof(bool)) - { - bool value; - if (bool.TryParse(stringValue, out value)) - return (T)(object)value; - } - else if (returnType == typeof(int)) - { - int value; - if (int.TryParse(stringValue, out value)) - return (T)(object)value; - } - else if (returnType == typeof(int?)) - { - int value; - if (int.TryParse(stringValue, out value)) - return (T) (object) value; - return default(T); - } - - throw new ConfigurationException("Invalid value for '" + key + "'"); - } - } - - public class ConfigurationException : Exception { public ConfigurationException(String message) : base(message) { } } -} diff --git a/Utilities/Configuration/AzureApplicationSettings.cs b/Utilities/Configuration/AzureApplicationSettings.cs deleted file mode 100644 index fa2c0e3a56..0000000000 --- a/Utilities/Configuration/AzureApplicationSettings.cs +++ /dev/null @@ -1,205 +0,0 @@ -// -// Copyright Microsoft Corporation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -using System; -using System.Configuration; -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using System.Globalization; -using System.IO; -using System.Reflection; - -[assembly: CLSCompliant(true)] -namespace Utilities.Configuration.Azure -{ - /// - /// Microsoft Azure settings. - /// - public class AzureApplicationSettings : IApplicationSettings - { - private const string RoleEnvironmentTypeName = "Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment"; - private const string RoleEnvironmentExceptionTypeName = "Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironmentException"; - private const string IsAvailablePropertyName = "IsAvailable"; - private const string GetSettingValueMethodName = "GetConfigurationSettingValue"; - - // Keep this array sorted by the version in the descendant order. - private readonly string[] knownAssemblyNames = new string[] - { - "Microsoft.WindowsAzure.ServiceRuntime, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL" - }; - - private Type _roleEnvironmentExceptionType; // Exception thrown for missing settings. - private MethodInfo _getServiceSettingMethod; // Method for getting values from the service configuration. - - /// - /// Initializes the settings. - /// - internal AzureApplicationSettings() - { - // Find out if the code is running in the cloud service context. - Assembly assembly = GetServiceRuntimeAssembly(); - if (assembly != null) - { - Type roleEnvironmentType = assembly.GetType(RoleEnvironmentTypeName, false); - _roleEnvironmentExceptionType = assembly.GetType(RoleEnvironmentExceptionTypeName, false); - if (roleEnvironmentType != null) - { - PropertyInfo isAvailableProperty = roleEnvironmentType.GetProperty(IsAvailablePropertyName); - bool isAvailable; - - try - { - isAvailable = isAvailableProperty != null && (bool)isAvailableProperty.GetValue(null, new object[] { }); - } - catch (TargetInvocationException e) - { - // Running service runtime code from an application targeting .Net 4.0 results - // in a type initialization exception unless application's configuration file - // explicitly enables v2 runtime activation policy. In this case we should fall - // back to the web.config/app.config file. - if (!(e.InnerException is TypeInitializationException)) - { - throw; - } - isAvailable = false; - } - - if (isAvailable) - { - _getServiceSettingMethod = roleEnvironmentType.GetMethod(GetSettingValueMethodName, - BindingFlags.Public | BindingFlags.Static | BindingFlags.InvokeMethod); - } - } - } - } - - /// - /// Checks whether the given exception represents an exception throws - /// for a missing setting. - /// - /// Exception - /// True for the missing setting exception. - private bool IsMissingSettingException(Exception e) - { - if (e == null) - { - return false; - } - Type type = e.GetType(); - - return object.ReferenceEquals(type, _roleEnvironmentExceptionType) - || type.IsSubclassOf(_roleEnvironmentExceptionType); - } - - /// - /// Gets a setting with the given name. - /// - /// Setting name. - /// Setting value or null if such setting does not exist. - public string GetSetting(string name) - { - Debug.Assert(!string.IsNullOrEmpty(name)); - - string value = null; - - value = GetValue("ServiceRuntime", name, GetServiceRuntimeSetting); - if (String.IsNullOrEmpty(value)) - { - value = GetValue("ConfigurationManager", name, n => ConfigurationManager.AppSettings[n]); - } - - return value; - } - - /// - /// Gets setting's value from the given provider. - /// - /// Provider name. - /// Setting name - /// Method to obtain given setting. - /// Setting value, or null if not found. - [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "Necessary for robust handling withing the configuration module.")] - private static string GetValue(string providerName, string settingName, Func getValue) - { - return getValue(settingName); - } - - /// - /// Gets a configuration setting from the service runtime. - /// - /// Setting name. - /// Setting value or null if not found. - private string GetServiceRuntimeSetting(string name) - { - Debug.Assert(!string.IsNullOrEmpty(name)); - - string value = null; - - if (_getServiceSettingMethod != null) - { - try - { - value = (string)_getServiceSettingMethod.Invoke(null, new object[] { name }); - } - catch (TargetInvocationException e) - { - if (!IsMissingSettingException(e.InnerException)) - { - throw; - } - } - } - return value; - } - - /// - /// Loads and returns the latest available version of the service - /// runtime assembly. - /// - /// Loaded assembly, if any. - [SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", MessageId = "System.Reflection.Assembly.LoadFrom", - Justification= "The ServiceRuntime.dll has to be loaded at runtime so calling Assembly.LoadFrom method is essential to do the loading")] - private Assembly GetServiceRuntimeAssembly() - { - Assembly assembly = null; - - foreach (string assemblyName in knownAssemblyNames) - { - string assemblyPath = NativeMethods.GetAssemblyPath(assemblyName); - - try - { - if (!string.IsNullOrEmpty(assemblyPath)) - { - assembly = Assembly.LoadFrom(assemblyPath); - } - } - catch (Exception e) - { - // The following exceptions are ignored for enabling configuration manager to proceed - // and load the configuration from application settings instead of using ServiceRuntime. - if (!(e is FileNotFoundException || - e is FileLoadException || - e is BadImageFormatException)) - { - throw; - } - } - } - - return assembly; - } - } -} diff --git a/Utilities/Configuration/CloudConfigurationManager.cs b/Utilities/Configuration/CloudConfigurationManager.cs deleted file mode 100644 index 8754679d6e..0000000000 --- a/Utilities/Configuration/CloudConfigurationManager.cs +++ /dev/null @@ -1,78 +0,0 @@ -// -// Copyright Microsoft Corporation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -using System; -using System.Globalization; - -namespace Utilities.Configuration.Azure -{ - /// - /// Configuration manager for accessing Microsoft Azure settings. - /// - public static class CloudConfigurationManager - { - private static object _lock = new object(); - private static IApplicationSettings _appSettings; - - /// - /// Gets a setting with the given name. - /// - /// Setting name. - /// Setting value or null if not found. - public static string GetSetting(string name) - { - if (name == null) - { - throw new ArgumentNullException("name"); - } - else if (name.Length == 0) - { - throw new ArgumentException("name is empty"); - } - - return AppSettings.GetSetting(name); - } - - public static void RegisterApplicationSettings(IApplicationSettings appSettings) - { - lock (_lock) - { - _appSettings = appSettings; - } - } - - /// - /// Gets application settings. - /// - public static IApplicationSettings AppSettings - { - get - { - if (_appSettings == null) - { - lock (_lock) - { - if (_appSettings == null) - { - _appSettings = new AzureApplicationSettings(); - } - } - } - - return _appSettings; - } - } - } -} diff --git a/Utilities/Configuration/ConfigurationManagerApplicationSettings.cs b/Utilities/Configuration/ConfigurationManagerApplicationSettings.cs deleted file mode 100644 index 7e38ab28c7..0000000000 --- a/Utilities/Configuration/ConfigurationManagerApplicationSettings.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Configuration; - -namespace Utilities.Configuration.Azure -{ - public class ConfigurationManagerApplicationSettings : IApplicationSettings - { - public string GetSetting(string name) - { - return ConfigurationManager.AppSettings[name]; - } - } -} diff --git a/Utilities/Configuration/IApplicationSettings.cs b/Utilities/Configuration/IApplicationSettings.cs deleted file mode 100644 index 0e3fb8eca3..0000000000 --- a/Utilities/Configuration/IApplicationSettings.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Utilities.Configuration -{ - public interface IApplicationSettings - { - string GetSetting(string name); - } -} diff --git a/Utilities/Configuration/NativeMethods.cs b/Utilities/Configuration/NativeMethods.cs deleted file mode 100644 index 6e0d69f7f5..0000000000 --- a/Utilities/Configuration/NativeMethods.cs +++ /dev/null @@ -1,81 +0,0 @@ -// -// Copyright Microsoft Corporation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -using System; -using System.Runtime.InteropServices; - -namespace Utilities.Configuration.Azure -{ - static internal class NativeMethods - { - const int AssemblyPathMax = 1024; - - [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("e707dcde-d1cd-11d2-bab9-00c04f8eceae")] - private interface IAssemblyCache - { - void Reserved0(); - - [PreserveSig] - int QueryAssemblyInfo(int flags, [MarshalAs(UnmanagedType.LPWStr)] string assemblyName, ref AssemblyInfo assemblyInfo); - } - - [StructLayout(LayoutKind.Sequential)] - private struct AssemblyInfo - { - public int cbAssemblyInfo; - - public int assemblyFlags; - - public long assemblySizeInKB; - - [MarshalAs(UnmanagedType.LPWStr)] - public string currentAssemblyPath; - - public int cchBuffer; // size of path buffer. - } - - [DllImport("fusion.dll")] - private static extern int CreateAssemblyCache(out IAssemblyCache ppAsmCache, int reserved); - - /// - /// Gets an assembly path from the GAC given a partial name. - /// - /// An assembly partial name. May not be null. - /// - /// The assembly path if found; otherwise null; - /// - public static string GetAssemblyPath(string name) - { - if (name == null) - throw new ArgumentNullException("name"); - - string finalName = name; - AssemblyInfo aInfo = new AssemblyInfo(); - aInfo.cchBuffer = AssemblyPathMax; - aInfo.currentAssemblyPath = new String('\0', aInfo.cchBuffer); - - IAssemblyCache ac; - int hr = CreateAssemblyCache(out ac, 0); - if (hr >= 0) - { - hr = ac.QueryAssemblyInfo(0, finalName, ref aInfo); - if (hr < 0) - return null; - } - - return aInfo.currentAssemblyPath; - } - } -} diff --git a/Utilities/CsvReader.cs b/Utilities/CsvReader.cs deleted file mode 100644 index b4742f4ffe..0000000000 --- a/Utilities/CsvReader.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Utilities.Interfaces; - -namespace Utilities -{ - public class CsvReader : ICsvReader - { - private readonly TextReader _txtReader; - private readonly char _delimeter; - private readonly bool _txtReaderCreatedHere; - private string[] _headers; - private Dictionary>> _tabularData; - public string FilePath { get; private set; } - - public CsvReader(string path, char delimeter = ',') - : this(System.IO.File.OpenText(path), delimeter) - { - FilePath = path; - _txtReaderCreatedHere = true; - } - public CsvReader(System.IO.TextReader txtReader, char delimeter = ',') - { - if (txtReader == null) - throw new ArgumentNullException("txtReader"); - - _txtReader = txtReader; - _delimeter = delimeter; - } - - public string[] GetColumnHeaders() - { - if (_headers == null) - { - // From https://tools.ietf.org/html/rfc4180 - // Each field may or may not be enclosed in double quotes (however some programs, such as Microsoft Excel, do not use double quotes at all). - // We will not process double quotes fields - string firstLine = _txtReader.ReadLine(); - if (string.IsNullOrEmpty(firstLine)) - throw new InvalidDataException("There is no data in stream"); - - _headers = firstLine.Split(new char[] { _delimeter }, StringSplitOptions.None); - } - return _headers; - } - - public Dictionary>> GetTabularData() - { - _headers = GetColumnHeaders(); // this call will make sure that the first line has been read; - List headerList = _headers.ToList(); - - if (_tabularData == null) - { - _tabularData = new Dictionary>>(); - int rowNumber = 0; - while (true) - { - ++rowNumber; - string nextLine = _txtReader.ReadLine(); - if (string.IsNullOrEmpty(nextLine.Replace(",", ""))) - break; - - var dataValues = nextLine.Split(new char[] { _delimeter }, StringSplitOptions.None); - var listOfDataCellsForARow = new List>(); - for(int i = 0; i < headerList.Count; ++i) - { - listOfDataCellsForARow.Add(new Tuple(headerList[i], dataValues[i])); - } - - _tabularData.Add(rowNumber.ToString(), listOfDataCellsForARow); - } - } - return _tabularData; - } - - public void Dispose() - { - if (_txtReaderCreatedHere) - { - try { _txtReader.Dispose(); } - catch { } - } - } - } -} diff --git a/Utilities/DateUtility.cs b/Utilities/DateUtility.cs deleted file mode 100644 index 7f2288f92d..0000000000 --- a/Utilities/DateUtility.cs +++ /dev/null @@ -1,164 +0,0 @@ -using System; -using System.Linq; -using System.Linq.Expressions; - -namespace Utilities -{ - public static class DateUtility - { - public static DateRange GenerateDateRange(string queryPeriod) - { - DateRange dateRange = new DateRange(); - switch (queryPeriod.ToLower()) - { - - case "last5minutes": - dateRange.StartTime = DateTimeOffset.UtcNow.AddMinutes(-5); - break; - case "lasthour": - dateRange.StartTime = DateTimeOffset.UtcNow.AddHours(-1); - break; - case "lastday": - dateRange.StartTime = DateTimeOffset.UtcNow.AddDays(-1); - break; - case "lastweek": - dateRange.StartTime = DateTimeOffset.UtcNow.AddDays(-7); - break; - } - dateRange.EndTime = DateTimeOffset.UtcNow; - return dateRange; - } - - public static string TimeAgo(this DateTimeOffset dt) - { - TimeSpan span = DateTimeOffset.UtcNow - dt; - if (span.Days > 365) - { - int years = (span.Days / 365); - if (span.Days % 365 != 0) - years += 1; - return String.Format("about {0} {1} ago", - years, years == 1 ? "year" : "years"); - } - if (span.Days > 30) - { - int months = (span.Days / 30); - if (span.Days % 31 != 0) - months += 1; - return String.Format("about {0} {1} ago", - months, months == 1 ? "month" : "months"); - } - if (span.Days > 0) - return String.Format("about {0} {1} ago", - span.Days, span.Days == 1 ? "day" : "days"); - if (span.Hours > 0) - return String.Format("about {0} {1} ago", - span.Hours, span.Hours == 1 ? "hour" : "hours"); - if (span.Minutes > 0) - return String.Format("about {0} {1} ago", - span.Minutes, span.Minutes == 1 ? "minute" : "minutes"); - if (span.Seconds > 5) - return String.Format("about {0} seconds ago", span.Seconds); - if (span.Seconds <= 5) - return "just now"; - return string.Empty; - } - - public static string TimeAgo(this DateTime dt) - { - return TimeAgo((DateTimeOffset) dt); - } - - - public static DateTime? CalculateDayBucket(DateTime? createDate) - { - if (!createDate.HasValue) - { - return null; - } - - return createDate.Value.Date; - } - - public static DateTime? CalculateWeekBucket(DateTime? createDate) - { - if (!createDate.HasValue) - { - return null; - } - - var date = createDate.Value.Date; - return date.AddDays(-1 * (int)date.DayOfWeek); - } - - public static DateTime? CalculateMonthBucket(DateTime? createDate) - { - if (!createDate.HasValue) - { - return null; - } - - var date = createDate.Value.Date; - return date.AddDays(-date.Day + 1); - } - - public static DateTime? CalculateYearBucket(DateTime? createDate) - { - if (!createDate.HasValue) - { - return null; - } - - var date = createDate.Value.Date; - return date.AddDays(-date.DayOfYear + 1); - } - } - - public struct DateRange - { - public DateTimeOffset StartTime { get; set; } - public DateTimeOffset EndTime { get; set; } - } - - public static class DateRangeExtensions - { - /// - /// Alias for Where filter over date range - /// - /// Entity type - /// Source query - /// Expression for navigating date time field to filter against - /// Date range - /// To include range ends in filter - /// New query - /// - /// var thisYearDateRange = new DateRange() { StartTime = DateTimeOffset.UtcNow.AddYears(-1), EndTime = DateTimeOffset.UtcNow } - /// var incidentsOfThisYear = uow.IncidentRepository.GetQuery().WhereInDateRange(i => i.CreateDate, thisYearDateRange).ToList(); - /// - public static IQueryable WhereInDateRange(this IQueryable query, Expression> dateTimeField, DateRange range, bool inclusive = false) - { - var memberExpression = dateTimeField.Body as MemberExpression; - if (memberExpression == null) - throw new ArgumentException("Expression should point a member", "dateTimeField"); - var memberName = memberExpression.Member.Name; - var entityExpression = Expression.Parameter(typeof(T)); - Expression whereExpression; - if (inclusive) - { - whereExpression = Expression.And( - Expression.GreaterThanOrEqual(Expression.PropertyOrField(entityExpression, memberName), Expression.Constant(range.StartTime)), - Expression.LessThanOrEqual(Expression.PropertyOrField(entityExpression, memberName), Expression.Constant(range.EndTime))); - } - else - { - whereExpression = Expression.And( - Expression.GreaterThan(Expression.PropertyOrField(entityExpression, memberName), Expression.Constant(range.StartTime)), - Expression.LessThan(Expression.PropertyOrField(entityExpression, memberName), Expression.Constant(range.EndTime))); - } - Expression> whereLambdaExpression = Expression.Lambda>(whereExpression, entityExpression); - return query.Where(whereLambdaExpression); - } - } - -} - diff --git a/Utilities/Encryption.cs b/Utilities/Encryption.cs deleted file mode 100644 index 55cef6ad7f..0000000000 --- a/Utilities/Encryption.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Security.Cryptography; -using System.Text; -using Newtonsoft.Json; - -namespace Utilities -{ - public static class Encryption - { - private const string ENCRYPTION_KEY = "2b2c04fe-865a-49d9-b252-1e0785109418"; - /// - /// The salt value used to strengthen the encryption. - /// - private readonly static byte[] SALT = Encoding.ASCII.GetBytes(ENCRYPTION_KEY.Length.ToString()); - - /// - /// Encrypts any string using the Rijndael algorithm. - /// - /// The string to encrypt. - /// A Base64 encrypted string. - public static string Encrypt(string inputText) - { - RijndaelManaged rijndaelCipher = new RijndaelManaged(); - byte[] plainText = Encoding.Unicode.GetBytes(inputText); - PasswordDeriveBytes SecretKey = new PasswordDeriveBytes(ENCRYPTION_KEY, SALT); - - using (ICryptoTransform encryptor = rijndaelCipher.CreateEncryptor(SecretKey.GetBytes(32), SecretKey.GetBytes(16))) - { - using (MemoryStream memoryStream = new MemoryStream()) - { - using (CryptoStream cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write)) - { - cryptoStream.Write(plainText, 0, plainText.Length); - cryptoStream.FlushFinalBlock(); - return Convert.ToBase64String(memoryStream.ToArray()); - } - } - } - } - - /// - /// Decrypts a previously encrypted string. - /// - /// The encrypted string to decrypt. - /// A decrypted string. - public static string Decrypt(string inputText) - { - RijndaelManaged rijndaelCipher = new RijndaelManaged(); - byte[] encryptedData = Convert.FromBase64String(inputText); - PasswordDeriveBytes secretKey = new PasswordDeriveBytes(ENCRYPTION_KEY, SALT); - - using (ICryptoTransform decryptor = rijndaelCipher.CreateDecryptor(secretKey.GetBytes(32), secretKey.GetBytes(16))) - { - using (MemoryStream memoryStream = new MemoryStream(encryptedData)) - { - using (CryptoStream cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read)) - { - byte[] plainText = new byte[encryptedData.Length]; - int decryptedCount = cryptoStream.Read(plainText, 0, plainText.Length); - return Encoding.Unicode.GetString(plainText, 0, decryptedCount); - } - } - } - } - - public static string EncryptParams(object parameters) - { - var paramsStr = JsonConvert.SerializeObject(parameters); - return Encrypt(paramsStr); - } - - public static IDictionary DecryptParams(string encryptedParams) - { - var decryptedParamsStr = Encryption.Decrypt(encryptedParams); - return JsonConvert.DeserializeObject>(decryptedParamsStr); - } - } -} diff --git a/Utilities/Enumerations.cs b/Utilities/Enumerations.cs deleted file mode 100644 index f4ffa6bfd2..0000000000 --- a/Utilities/Enumerations.cs +++ /dev/null @@ -1,135 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Utilities -{ - - //creates a base class for a string-based enumerated list. The subclasses instantiate the list with the allowable values, and this class makes sure that only those values can be used. - //basically just creates an enumeration that doesn't have an underlying integer definition. - public abstract class EnumeratedList : List - { - string _value; - public List AllowedValues; - - public EnumeratedList() - { - SetAllowable(AllowedValues); - } - - //configures the list of allowed strings. - public void SetAllowable(List initial_vals) - { - AllowedValues = initial_vals; - } - - internal void Set(string value) - { - if (!this.AllowedValues.Contains(value)) - throw new ArgumentException("You tried to set a value that is not defined for this enumerated type. Allowable values:" + AllowedValues); - _value = value; - } - - internal string Get() - { - return _value; - } - - - } - - /// - /// //////////////////////////////////////////////////////////////////////////////////////// - /// - - public class xCallRequestStatus : EnumeratedList - { - public xCallRequestStatus() - { - List init_list = new List { - "Active", - "Fulfilled", - "Deactivated"}; - SetAllowable(init_list); - } - } - - /// - /// ///////////////////////////////////////////////////////////////// - /// - public class CallState : EnumeratedList - { - public CallState() - { - List init_list = new List { - "Unstarted", - "Waiting To Start", - "Active", - "Completed", - "Interrupted"}; - SetAllowable(init_list); - } - } - - /// - /// //////////////////////////////////////////////////////////////// - /// - public class UserCallState : EnumeratedList - { - public UserCallState() - { - List init_list = new List { - "Participating", - "Post-Call", - "Finished", - }; - SetAllowable(init_list); - } - } - - ///////////////////////////////////////////////////////////////////// - - public class xParticipantType : EnumeratedList - { - public xParticipantType() - { - List init_list = new List { - "Producer", - "Consumer" - }; - SetAllowable(init_list); - } - } - - /// - /// HTTP method to use when making requests - /// - public enum Method - { - GET, - POST, - PUT, - } - - public enum RegistrationStatus - { - Successful, - Pending, - UserMustLogIn, - } - - public enum LoginStatus - { - Successful, - InvalidCredential, - ImplicitUser, - UnregisteredUser, - Pending - } -} - - - - - - - \ No newline at end of file diff --git a/Utilities/ExceptionExtesion.cs b/Utilities/ExceptionExtesion.cs deleted file mode 100644 index a6c299e474..0000000000 --- a/Utilities/ExceptionExtesion.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Utilities -{ - public static class ExceptionExtesion - { - public static string GetFullExceptionMessage(this Exception e, string msgs = "") - { - if (e == null) return string.Empty; - if (msgs == "") msgs = e.Message; - if (e.InnerException != null) - msgs += "\r\nInnerException: " + GetFullExceptionMessage(e.InnerException); - return msgs; - } - } -} diff --git a/Utilities/ExceptionHandling.cs b/Utilities/ExceptionHandling.cs deleted file mode 100644 index c012a1fd17..0000000000 --- a/Utilities/ExceptionHandling.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data.Entity.Validation; -using System.Linq; - -namespace Utilities -{ - public class ExceptionHandling - { - public static void DisplayValidationErrors(DbEntityValidationException e) - { - string errorFormat = @"Validation failed for entity [{0}]. Validation errors:" + Environment.NewLine + @"{1}"; - var errorList = new List(); - foreach (var entityValidationError in e.EntityValidationErrors) - { - var entityName = entityValidationError.Entry.Entity.GetType().Name; - var errors = String.Join(Environment.NewLine, entityValidationError.ValidationErrors.Select(a => a.PropertyName + ": " + a.ErrorMessage)); - errorList.Add(String.Format(errorFormat, entityName, errors)); - } - throw new Exception(String.Join(Environment.NewLine + Environment.NewLine, errorList) + Environment.NewLine, e); - } - } -} diff --git a/Utilities/Extensions.cs b/Utilities/Extensions.cs deleted file mode 100644 index 64b44cd929..0000000000 --- a/Utilities/Extensions.cs +++ /dev/null @@ -1,411 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.Reflection; -using System.Web; - -namespace Utilities -{ - public static class ObjectExtension - { - public static string to_S(this object value) - { - return value.ToString(); - } - } - - - - public static class StringExtension - { - public static string UppercaseFirst(this string s) - { - // Check for empty string. - if (string.IsNullOrEmpty(s)) - { - return s; - } - // Return char and concat substring. - return char.ToUpper(s[0]) + s.Substring(1); - } - - public static Uri AsUri(this string value) - { - return new Uri(value); - } - - public static bool IsGuid(this string value) - { - Guid guid; - return Guid.TryParse(value, out guid); - } - - public static string StringCSharpLineBreakToHTMLLineBreak(this string value) - { - if (String.IsNullOrEmpty(value)) - return value; - - return value.Replace(Environment.NewLine, "
    "); - } - - public static short ToShort(this string value) - { - short returnValue; - if (!short.TryParse(value, out returnValue)) - { - throw new ArgumentException("invalid short number as parameter", "Parameter"); - } - return returnValue; - } - public static int ToInt(this string value) - { - int returnValue; - if (!int.TryParse(value, out returnValue)) - { - throw new ArgumentException("invalid integer number as parameter", "Parameter"); - } - return returnValue; - } - public static bool ToBool(this string value) - { - bool returnValue; - if (IsNullOrEmpty(value)) - return false; - - if (!bool.TryParse(value, out returnValue)) - { - throw new ArgumentException("invalid boolean as parameter", "Parameter"); - } - return returnValue; - } - public static bool IsNullOrEmpty(this string value) - { - return String.IsNullOrEmpty(value) || - (!String.IsNullOrEmpty(value) && value.Trim() == String.Empty); - } - public static double ToDouble(this string value) - { - double returnValue; - if (!double.TryParse(value, out returnValue)) - { - throw new ArgumentException("invalid double number as parameter", "Parameter"); - } - return returnValue; - } - - public static bool EqualsIgnoreCase(this string left, string right) - { - return String.Compare(left, right, StringComparison.OrdinalIgnoreCase) == 0; - } - - public static bool Contains(this string source, string toCheck, StringComparison comp) - { - return source.IndexOf(toCheck, comp) >= 0; - } - - /// - /// Uses Uri.EscapeDataString() based on recommendations on MSDN - /// - public static string UrlEncode(this string input) - { - return Uri.EscapeDataString(input); - } - - public static string GetName(this Method method) - { - return Enum.GetName(typeof(Method), method); - } - public static string ToStr(this object value) - { - return Convert.ToString(value); - } - public static string format(this string msg, params object[] args) - { - return string.Format(msg, args); - } - } - - public static class UriExtensions - { - public static UriBuilder AddOrUpdateQueryParams(this UriBuilder uriBuilder, object parameters) - { - var paramValues = HttpUtility.ParseQueryString(uriBuilder.Query); - foreach (var prop in parameters.GetType().GetProperties().Where(p => p.CanRead)) - { - var value = prop.GetValue(parameters); - if (value != null) - { - paramValues.Set(prop.Name, value.ToString()); - } - } - uriBuilder.Query = paramValues.ToString(); - return uriBuilder; - } - - public static Uri AddOrUpdateQueryParams(this Uri uri, object parameters) - { - var uriBuilder = new UriBuilder(uri); - uriBuilder = uriBuilder.AddOrUpdateQueryParams(parameters); - return uriBuilder.Uri; - } - } - - - public static class DateTimeExtensions - { - /// - /// Generates a Unix timestamp based on the current elapsed seconds since '01/01/1970 0000 GMT" - /// - /// - public static string ToUnixTime() - { - DateTime currentTime = DateTime.UtcNow; - TimeSpan timeSpan = (currentTime - new DateTime(1970, 1, 1)); - string timestamp = timeSpan.TotalSeconds.ToString(); - - return timestamp; - } - - /// - /// Current time in IS0 8601 format - /// - public static string ToIso8601Time() - { - DateTime currentTime = DateTime.UtcNow; - string timestamp = currentTime.ToString("yyyy-MM-ddTHH:mm:ssZ"); - return timestamp; - } - - /// - /// Return DateTime in UTC format - /// - public static DateTime GetUtcDateTime() - { - return DateTime.UtcNow; - } - } - - public static class DateTimeQuickValidateExtensions - { - public static string GenerateDateFromText(this string selected) - { - DateTime validDatetime; - if (!DateTime.TryParse(selected, out validDatetime)) - { - return "Invalid Selection"; - } - return validDatetime.ToString("MM/dd/yyyy HH:mm"); - } - } - - public static class EnumExtensions - { - public static string GetEnumDescription(this Enum value, string defaultValue = null) - { - return value.GetEnumAttribute(a => a.Description, defaultValue); - } - public static string GetEnumDisplayName(this Enum value, string defaultValue = null) - { - return value.GetEnumAttribute(a => a.Name, defaultValue); - } - private static string GetEnumAttribute(this Enum value, Func expr, string defaultValue = null) where TAttr : Attribute - { - FieldInfo fi = value.GetType().GetField(value.ToString()); - var attributes = fi.GetCustomAttributes(false).ToArray(); - return (attributes != null && attributes.Length > 0) ? expr(attributes.First()) : (defaultValue ?? value.ToString()); - } - } - - - public static class TypeExtensions - { - /// - /// Retrieves all assemblies active in the current application - /// WARNING: This will return EVERY assembly in your current domain, this is a costly operation and should only be used - /// during initialization - /// - private static IList Environment - { - get { return AppDomain.CurrentDomain.GetAssemblies().ToList(); } - } - /// - /// Retrieves just the Base.NET framework assembly - /// - private static Assembly Base - { - get { return Assembly.GetExecutingAssembly(); } - } - - /// - /// Returns all types INTERNALLY within the Base.NET assembly only. - /// - /// - /// Includes the provided TBase type in the list - /// A list of all types that implement the interface or inherit from the class - public static Type[] GetInternalTypes(params Type[] excludeTypes) - { - if (typeof(TBase).IsInterface) - { - return Base.GetTypes() - .Where(t => t.GetInterfaces().Contains(typeof(TBase)) && !excludeTypes.Contains(t)) - .ToArray(); - } - else { - return Base.GetTypes() - .Where(t => typeof(TBase).IsAssignableFrom(t) && !excludeTypes.Contains(t) && t.IsClass && !t.IsAbstract) - .ToArray(); - } - } - /// - /// Returns all types of TBase within the Base.NET assembly only and creates each search result as it's generic type instance - /// - /// The base type to search for (all inherited class types of TBase will be matched) - /// Types to exclude from the results - /// A list of instances from the search results as type TBase - public static TBase[] GetInternalTypesAsInstance(params Type[] excludeTypes) - { - if (typeof(TBase).IsInterface) - { - return Base.GetTypes() - .Where(t => t.GetInterfaces().Contains(typeof(TBase)) && !excludeTypes.Contains(t)) - .Select(t => (TBase)Activator.CreateInstance(t)) - .ToArray(); - } - else { - return Base.GetTypes() - .Where(t => typeof(TBase).IsAssignableFrom(t) && !excludeTypes.Contains(t) && t.IsClass && !t.IsAbstract) - .Select(t => (TBase)Activator.CreateInstance(t)) - .ToArray(); - } - } - - /// - /// Finds all types that have custom attributes of type TAttr within the Base.NET assembly only - /// - /// The attributes to find in which classes are utilizing - /// Use inheritance in the search result - /// Exclude types in this enumerable list - /// All types that contain the specified attribute - public static Type[] GetInternalTypesWithAttribute(bool inherit = false, params Type[] excludeTypes) - { - return Base.GetTypes().Where(t => t.GetCustomAttributes(typeof(TAttr), inherit).Length > 0 && !excludeTypes.Contains(t)).ToArray(); - } - - /// - /// Fetches all types from all assemblies in the current app domain - /// NOTE: Requires a long search through all executing assemblies, can be very costly if used too often. - /// - /// The base type class or interface from which types returned in the list inherit from or implement. - /// Exclude types in this enumerable list - /// An array of matched types - public static Type[] GetTypes(params Type[] excludeTypes) - { - List tlist = new List(); - foreach (Assembly a in Environment) - { - try - { - if (typeof(TBase).IsInterface) - { - tlist.AddRange(a.GetTypes() - .Where(t => t.GetInterfaces().Contains(typeof(TBase)) && !excludeTypes.Contains(t) && t.IsClass && !t.IsAbstract) - .ToList()); - } - else { - tlist.AddRange(a.GetTypes() - .Where(t => typeof(TBase).IsAssignableFrom(t) && !excludeTypes.Contains(t) && t.IsClass && !t.IsAbstract) - .ToArray()); - } - } - catch (Exception) - { - //TODO:: Log failed type reflections - } - } - return tlist.ToArray(); - } - - /// - /// Returns all types of TBase within the Base.NET assembly only and creates each search result as it's generic type instance - /// - /// The base type to search for (all inherited class types of TBase will be matched) - /// Exclude types in this enumerable list - /// An array of instances that inherit or implement the matched type - public static TBase[] GetTypesAsInstance(params Type[] excludeTypes) - { - List inst = new List(); - foreach (Assembly a in Environment) - { - try - { - if (typeof(TBase).IsInterface) - { - inst.AddRange(a.GetTypes() - .Where(t => t.GetInterfaces().Contains(typeof(TBase)) && !excludeTypes.Contains(t)) - .Select(t => (TBase)Activator.CreateInstance(t)) - .ToList()); - } - else { - inst.AddRange(a.GetTypes() - .Where(t => typeof(TBase).IsAssignableFrom(t) && !excludeTypes.Contains(t) && t.IsClass && !t.IsAbstract) - .Select(t => (TBase)Activator.CreateInstance(t)) - .ToArray()); - } - } - catch (Exception) - { - //TODO:: Log failed type reflections - } - } - return inst.ToArray(); - } - - - /// - /// Retrieves all types in the current application (searches ALL assemblies) that contain the specified attribute type - /// - /// The type of attribute to match classes - /// Use inheritance in the search - /// Exclude these types from the search results - /// A list of types that contain the specified attribute type - public static Type[] GetTypesWithAttribute(bool inherit = false, params Type[] excludeTypes) - { - List tlist = new List(); - foreach (Assembly a in Environment) - { - try - { - tlist.AddRange(a.GetTypes().Where(t => t.GetCustomAttributes(typeof(TAttr), inherit).Length > 0 && !excludeTypes.Contains(t)) - .ToList()); - } - catch (Exception) - { - //TODO:: Log failed type reflections - } - } - return tlist.ToArray(); - } - - public static Type[] GetBestGenericArgs(this Type t) - { - Type[] args = t.GetGenericArguments(); - Type[] cnst = args.SelectMany(x => x.GetGenericArguments()).ToArray(); - return (cnst.Length > 0) ? cnst.Take(cnst.Length) - .Union(cnst.Skip(cnst.Length) - .Select(y => (t.ContainsGenericParameters) ? t.MakeGenericType(args.Select(z => typeof(object)).ToArray()) : t)) - .ToArray() - : args.Select(x => (t.ContainsGenericParameters) ? t.MakeGenericType(args.Select(z => typeof(object)).ToArray()) : t) - .ToArray(); - } - - public static bool IsActionDelegate(this Type t) - { - if (t.IsSubclassOf(typeof(MulticastDelegate)) && - t.GetMethod("Invoke").ReturnType == typeof(void)) - return true; - return false; - } - } -} \ No newline at end of file diff --git a/Utilities/FileUtils.cs b/Utilities/FileUtils.cs deleted file mode 100644 index 9153db357c..0000000000 --- a/Utilities/FileUtils.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Utilities -{ - public class FileUtils - { - public static IList LoadFileHostList() - { - var path = Server.ServerPhysicalPath + "fr8terminals.txt"; - - IList urls = null; - try - { - using (StreamReader sr = new StreamReader(path)) - { - if (sr.Peek() < 0) - { - throw new ApplicationException("fr8terminals.txt is empty."); - } - - urls = new List(); - - while (sr.Peek() >= 0) - { - var line = sr.ReadLine(); - - var uri = line.StartsWith("http") ? line : "http://" + line; - - urls.Add(uri + "/terminals/discover"); - } - } - } - catch (Exception) - { - //TODO: Replace with incedent - //Logger.GetLogger().ErrorFormat("Error register plugins actions: '{0}'", ex.Message); - } - return urls; - } - } -} diff --git a/Utilities/FilterUtility.cs b/Utilities/FilterUtility.cs deleted file mode 100644 index 20ebcf026b..0000000000 --- a/Utilities/FilterUtility.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using StructureMap; - -namespace Utilities -{ - public static class FilterUtility - { - private static readonly HashSet _IgnoreEmails; - static FilterUtility() - { - var configRepository = ObjectFactory.GetInstance(); - _IgnoreEmails = new HashSet(StringComparer.InvariantCultureIgnoreCase); - foreach (var reservedEmail in configRepository.Get("EmailAddress_KwasantReservedList", String.Empty).Split(',')) - _IgnoreEmails.Add(reservedEmail); - - _IgnoreEmails.Add(configRepository.Get("EmailAddress_GeneralInfo")); - _IgnoreEmails.Add(configRepository.Get("INBOUND_EMAIL_USERNAME")); - } - - public static bool IsReservedEmailAddress(String emailAddress) - { - return _IgnoreEmails.Contains(emailAddress); - } - - public static IEnumerable StripReservedEmailAddresses(IEnumerable attendees, IConfigRepository configRepository) - { - return attendees.Where(a => !_IgnoreEmails.Contains(a)); - } - - public static string GetState(Type containingType, int value) - { - foreach (FieldInfo field in containingType.GetFields(BindingFlags.Static | BindingFlags.Public)) - { - if ((int)field.GetValue(field) == value) - { - return field.Name; - } - } - return ""; - } - } -} diff --git a/Utilities/Fr8.AI.DependencyCollector.dll b/Utilities/Fr8.AI.DependencyCollector.dll deleted file mode 100644 index f172dfd99e..0000000000 Binary files a/Utilities/Fr8.AI.DependencyCollector.dll and /dev/null differ diff --git a/Utilities/Interfaces/ICsvReader.cs b/Utilities/Interfaces/ICsvReader.cs deleted file mode 100644 index c92e56d055..0000000000 --- a/Utilities/Interfaces/ICsvReader.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Utilities.Interfaces -{ - public interface ICsvReader : IDisposable - { - string[] GetColumnHeaders(); - Dictionary>> GetTabularData(); - } -} diff --git a/Utilities/Interfaces/IPusherNotifier.cs b/Utilities/Interfaces/IPusherNotifier.cs deleted file mode 100644 index f1b4e38ad4..0000000000 --- a/Utilities/Interfaces/IPusherNotifier.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Utilities.Interfaces -{ - public interface IPusherNotifier - { - void Notify(string channelName, string eventName, object message); - void NotifyUser(object message, string eventName, string userName); - } -} \ No newline at end of file diff --git a/Utilities/JsonPackager.cs b/Utilities/JsonPackager.cs deleted file mode 100644 index 83dcdae297..0000000000 --- a/Utilities/JsonPackager.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Utilities.Serializers.Json; - -namespace Utilities -{ - public class JsonPackager - { - private JsonSerializer jsonSerializer; - - public JsonPackager() - { - jsonSerializer = new JsonSerializer(); - } - public string Pack(object dataObject) - { - return jsonSerializer.Serialize(dataObject); - } - } -} diff --git a/Utilities/JsonSettings.cs b/Utilities/JsonSettings.cs deleted file mode 100644 index b704fec8a7..0000000000 --- a/Utilities/JsonSettings.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Newtonsoft.Json; -using Newtonsoft.Json.Serialization; - -namespace Utilities -{ - public static class JsonSettings - { - public static JsonSerializerSettings CamelCase = new JsonSerializerSettings() - { - ContractResolver = new CamelCasePropertyNamesContractResolver() - }; - } -} diff --git a/Utilities/Logging/Fr8Log4NetLayout.cs b/Utilities/Logging/Fr8Log4NetLayout.cs deleted file mode 100644 index b2d21eccc3..0000000000 --- a/Utilities/Logging/Fr8Log4NetLayout.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using log4net.Core; -using log4net.Layout; - - -namespace Utilities.Logging -{ - public class Fr8Log4NetLayout : LayoutSkeleton - { - public string DebugColor {get; set; } - public string InfoColor { get; set; } - public string WarnColor { get; set; } - public string ErrorColor { get; set; } - public string FatalColor { get; set; } - - public override void ActivateOptions() - { - IgnoresException = false; - InfoColor = InfoColor.IsNullOrEmpty() ? "\x1b[36m" : "\x1b[" + InfoColor; - WarnColor = WarnColor.IsNullOrEmpty() ? "\x1b[33m" : "\x1b[" + WarnColor; - ErrorColor = ErrorColor.IsNullOrEmpty() ? "\x1b[31m" : "\x1b[" + ErrorColor; - } - - static string WrapColor(string message, string color) - { - return color + message + "\x1b[0m"; - } - - public override void Format(TextWriter writer, LoggingEvent loggingEvent) - { - string message = loggingEvent.ExceptionObject == null ? - loggingEvent.MessageObject.ToString() : - loggingEvent.MessageObject+ " " + loggingEvent.ExceptionObject.ToString(); - - - // can`t use polymorphism because it is same class - // can`t use switch because case should be constant - // can`t use value iteration... f__ - // Info - if (loggingEvent.Level.Name.Equals(Level.Info.Name)) - { - message = WrapColor(message,InfoColor); - } - // Warning - if (loggingEvent.Level.Name.Equals(Level.Warn.Name)) - { - message = WrapColor(message, WarnColor); - } - // Error - if (loggingEvent.Level.Name.Equals(Level.Error.Name)) - { - message = WrapColor(message, ErrorColor); - } - - // no config formatting, only hardcode - var output = $"{loggingEvent.Level.DisplayName} - "+ - $"{message}"; - - writer.WriteLine(output); - } - } -} diff --git a/Utilities/Logging/Logger.cs b/Utilities/Logging/Logger.cs deleted file mode 100644 index f4357baeda..0000000000 --- a/Utilities/Logging/Logger.cs +++ /dev/null @@ -1,158 +0,0 @@ -using System; -using System.Diagnostics; -using System.Linq; -using System.Net; -using System.Reflection; -using log4net; -using log4net.Appender; - -namespace Utilities.Logging -{ - - public enum EventType - { - Info, - Error, - Warning - } - - public static class Logger - { - static string ErrorColor = "\x1b[31m"; - static string InfoColor = "\x1b[36m"; - static string WarnColor = "\x1b[33m"; - - static Logger() - { - log4net.Config.XmlConfigurator.Configure(); - } - - // taken from NLog sources - public static ILog GetCurrentClassLogger() - { - string className; - Type declaringType; - int framesToSkip = 2; - - do - { - StackFrame frame = new StackFrame(framesToSkip, false); - MethodBase method = frame.GetMethod(); - - declaringType = method.DeclaringType; - if (declaringType == null) - { - className = method.Name; - break; - } - - framesToSkip++; - className = declaringType.FullName; - } while (declaringType.Module.Name.Equals("mscorlib.dll", StringComparison.OrdinalIgnoreCase)); - - return LogManager.GetLogger(Assembly.GetCallingAssembly(), className); - } - - public static ILog GetLogger(int depth = 1, string name = "") - { - var logger = name.IsNullOrEmpty() - ? LogManager.GetLogger(new StackTrace().GetFrame(depth).GetMethod().DeclaringType) - : LogManager.GetLogger(name); - return logger; - } - - - public static ILog GetPapertrailLogger(string targetPapertrailUrl, int papertrailPort, int depth = 1) - { - var curPapertrailAppender = - LogManager.GetRepository() - .GetAppenders() - .Single(appender => appender.Name.Equals("PapertrailRemoteSyslogAppender")) as RemoteSyslogAppender; - - curPapertrailAppender.RemoteAddress = Dns.GetHostAddresses(targetPapertrailUrl)[0]; - curPapertrailAppender.RemotePort = papertrailPort; - curPapertrailAppender.ActivateOptions(); - - return LogManager.GetLogger(new StackTrace().GetFrame(depth).GetMethod().DeclaringType); - } - - - #region Solution logging logic - - static string WrapColor(string message, string color) - { - return color + message + "\x1b[0m"; - } - - /// - /// Logs message with log4net - /// - /// formatted messsage should contain critical data like Fr8UserId - /// - /// Defines how many stack frames we slice from top - public static void LogMessage(string message, EventType eventType = EventType.Info, int depth = 0) - { - depth += 3; - LogMessageWithNamedLogger(message, eventType, depth); - } - - public static void LogMessageWithNamedLogger(string message, EventType eventType = EventType.Info, int depth = 0, string loggerName = "") - { - //if somebody calls LogMessageWithNamedLogger from outside with depth of stack trace we dont want to show Logger calls - depth += 2; - var logger = GetLogger(depth, loggerName); - - switch (eventType) - { - case EventType.Info: - logger.Info(WrapColor(message,InfoColor)); - break; - case EventType.Error: - logger.Error(WrapColor(message, ErrorColor)); - break; - case EventType.Warning: - logger.Warn(WrapColor(message, WarnColor)); - break; - default: - { - logger.Info(message); - break; - } - } - - } - - public static void LogInfo(string message) - { - LogMessage(message, EventType.Info, 4); - } - - public static void LogInfo(string message, string loggerName) - { - LogMessageWithNamedLogger(message, EventType.Info, 3, loggerName); - } - - public static void LogWarning(string message) - { - LogMessage(message, EventType.Warning, 4); - } - - public static void LogWarning(string message, string loggerName) - { - LogMessageWithNamedLogger(message, EventType.Warning, 3, loggerName); - } - - public static void LogError(string message) - { - LogMessage(message, EventType.Error, 4); - } - - public static void LogError(string message, string loggerName) - { - LogMessageWithNamedLogger(message, EventType.Error, 3, loggerName); - } - - #endregion - - } -} \ No newline at end of file diff --git a/Utilities/Logging/RemoteSyslogAppender.cs b/Utilities/Logging/RemoteSyslogAppender.cs deleted file mode 100644 index e70da56934..0000000000 --- a/Utilities/Logging/RemoteSyslogAppender.cs +++ /dev/null @@ -1,592 +0,0 @@ -#region Apache License -// -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to you under the Apache License, Version 2.0 -// (the "License"); you may not use this file except in compliance with -// the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -#endregion - -using System; - -using log4net.Core; -using log4net.Appender; -using log4net.Util; -using log4net.Layout; -using System.Text; - -namespace Utilities.Logging.Appender -{ - /// - /// Logs events to a remote syslog daemon. - /// - /// - /// - /// The BSD syslog protocol is used to remotely log to - /// a syslog daemon. The syslogd listens for for messages - /// on UDP port 514. - /// - /// - /// The syslog UDP protocol is not authenticated. Most syslog daemons - /// do not accept remote log messages because of the security implications. - /// You may be able to use the LocalSyslogAppender to talk to a local - /// syslog service. - /// - /// - /// There is an RFC 3164 that claims to document the BSD Syslog Protocol. - /// This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - /// This appender generates what the RFC calls an "Original Device Message", - /// i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - /// this format of message will be accepted by all current syslog daemon - /// implementations. The daemon will attach the current time and the source - /// hostname or IP address to any messages received. - /// - /// - /// Syslog messages must have a facility and and a severity. The severity - /// is derived from the Level of the logging event. - /// The facility must be chosen from the set of defined syslog - /// values. The facilities list is predefined - /// and cannot be extended. - /// - /// - /// An identifier is specified with each log message. This can be specified - /// by setting the property. The identity (also know - /// as the tag) must not contain white space. The default value for the - /// identity is the application name (from ). - /// - /// - /// Rob Lyon - /// Nicko Cadell - public class fr8RemoteSyslogAppender : UdpAppender - { - /// - /// Syslog port 514 - /// - private const int DefaultSyslogPort = 514; - - #region Enumerations - - /// - /// syslog severities - /// - /// - /// - /// The syslog severities. - /// - /// - public enum SyslogSeverity - { - /// - /// system is unusable - /// - Emergency = 0, - - /// - /// action must be taken immediately - /// - Alert = 1, - - /// - /// critical conditions - /// - Critical = 2, - - /// - /// error conditions - /// - Error = 3, - - /// - /// warning conditions - /// - Warning = 4, - - /// - /// normal but significant condition - /// - Notice = 5, - - /// - /// informational - /// - Informational = 6, - - /// - /// debug-level messages - /// - Debug = 7 - }; - - /// - /// syslog facilities - /// - /// - /// - /// The syslog facilities - /// - /// - public enum SyslogFacility - { - /// - /// kernel messages - /// - Kernel = 0, - - /// - /// random user-level messages - /// - User = 1, - - /// - /// mail system - /// - Mail = 2, - - /// - /// system daemons - /// - Daemons = 3, - - /// - /// security/authorization messages - /// - Authorization = 4, - - /// - /// messages generated internally by syslogd - /// - Syslog = 5, - - /// - /// line printer subsystem - /// - Printer = 6, - - /// - /// network news subsystem - /// - News = 7, - - /// - /// UUCP subsystem - /// - Uucp = 8, - - /// - /// clock (cron/at) daemon - /// - Clock = 9, - - /// - /// security/authorization messages (private) - /// - Authorization2 = 10, - - /// - /// ftp daemon - /// - Ftp = 11, - - /// - /// NTP subsystem - /// - Ntp = 12, - - /// - /// log audit - /// - Audit = 13, - - /// - /// log alert - /// - Alert = 14, - - /// - /// clock daemon - /// - Clock2 = 15, - - /// - /// reserved for local use - /// - Local0 = 16, - - /// - /// reserved for local use - /// - Local1 = 17, - - /// - /// reserved for local use - /// - Local2 = 18, - - /// - /// reserved for local use - /// - Local3 = 19, - - /// - /// reserved for local use - /// - Local4 = 20, - - /// - /// reserved for local use - /// - Local5 = 21, - - /// - /// reserved for local use - /// - Local6 = 22, - - /// - /// reserved for local use - /// - Local7 = 23 - } - - #endregion Enumerations - - #region Public Instance Constructors - - /// - /// Initializes a new instance of the class. - /// - /// - /// This instance of the class is set up to write - /// to a remote syslog daemon. - /// - public fr8RemoteSyslogAppender() - { - // syslog udp defaults - this.RemotePort = DefaultSyslogPort; - this.RemoteAddress = System.Net.IPAddress.Parse("127.0.0.1"); - this.Encoding = System.Text.Encoding.ASCII; - } - - #endregion Public Instance Constructors - - #region Public Instance Properties - - /// - /// Message identity - /// - /// - /// - /// An identifier is specified with each log message. This can be specified - /// by setting the property. The identity (also know - /// as the tag) must not contain white space. The default value for the - /// identity is the application name (from ). - /// - /// - public PatternLayout Identity - { - get { return m_identity; } - set { m_identity = value; } - } - - /// - /// Syslog facility - /// - /// - /// Set to one of the values. The list of - /// facilities is predefined and cannot be extended. The default value - /// is . - /// - public SyslogFacility Facility - { - get { return m_facility; } - set { m_facility = value; } - } - - #endregion Public Instance Properties - - /// - /// Add a mapping of level to severity - /// - /// The mapping to add - /// - /// - /// Add a mapping to this appender. - /// - /// - public void AddMapping(LevelSeverity mapping) - { - m_levelMapping.Add(mapping); - } - - #region AppenderSkeleton Implementation - - /// - /// This method is called by the method. - /// - /// The event to log. - /// - /// - /// Writes the event to a remote syslog daemon. - /// - /// - /// The format of the output will depend on the appender's layout. - /// - /// - protected override void Append(LoggingEvent loggingEvent) - { - try - { - // Priority - int priority = GeneratePriority(m_facility, GetSeverity(loggingEvent.Level)); - - // Identity - string identity; - - if (m_identity != null) - { - identity = m_identity.Format(loggingEvent); - } - else - { - identity = loggingEvent.Domain; - } - - // Message. The message goes after the tag/identity - string message = RenderLoggingEvent(loggingEvent); - - Byte[] buffer; - int i = 0; - char c; - - StringBuilder builder = new StringBuilder(); - - while (i < message.Length) - { - // Clear StringBuilder - builder.Length = 0; - - // Write priority - builder.Append('<'); - builder.Append(priority); - builder.Append('>'); - - // Write identity - builder.Append(identity); - builder.Append(": "); - - for (; i < message.Length; i++) - { - c = message[i]; - - // Accept only visible ASCII characters and space. See RFC 3164 section 4.1.3 - //if (((int)c >= 32) && ((int)c <= 126)) - //{ - builder.Append(c); - //} - // If character is newline, break and send the current line - //else if ((c == '\r') || (c == '\n')) - //{ - // // Check the next character to handle \r\n or \n\r - // if ((message.Length > i + 1) && ((message[i + 1] == '\r') || (message[i + 1] == '\n'))) - // { - // i++; - // } - // i++; - // break; - //} - } - - // Grab as a byte array - buffer = this.Encoding.GetBytes(builder.ToString()); - - this.Client.Send(buffer, buffer.Length, this.RemoteEndPoint); - } - } - catch (Exception e) - { - ErrorHandler.Error( - "Unable to send logging event to remote syslog " + - this.RemoteAddress.ToString() + - " on port " + - this.RemotePort + ".", - e, - ErrorCode.WriteFailure); - } - } - - /// - /// Initialize the options for this appender - /// - /// - /// - /// Initialize the level to syslog severity mappings set on this appender. - /// - /// - public override void ActivateOptions() - { - base.ActivateOptions(); - m_levelMapping.ActivateOptions(); - } - - #endregion AppenderSkeleton Implementation - - #region Protected Members - - /// - /// Translates a log4net level to a syslog severity. - /// - /// A log4net level. - /// A syslog severity. - /// - /// - /// Translates a log4net level to a syslog severity. - /// - /// - virtual protected SyslogSeverity GetSeverity(Level level) - { - LevelSeverity levelSeverity = m_levelMapping.Lookup(level) as LevelSeverity; - if (levelSeverity != null) - { - return levelSeverity.Severity; - } - - // - // Fallback to sensible default values - // - - if (level >= Level.Alert) - { - return SyslogSeverity.Alert; - } - else if (level >= Level.Critical) - { - return SyslogSeverity.Critical; - } - else if (level >= Level.Error) - { - return SyslogSeverity.Error; - } - else if (level >= Level.Warn) - { - return SyslogSeverity.Warning; - } - else if (level >= Level.Notice) - { - return SyslogSeverity.Notice; - } - else if (level >= Level.Info) - { - return SyslogSeverity.Informational; - } - // Default setting - return SyslogSeverity.Debug; - } - - #endregion Protected Members - - #region Public Static Members - - /// - /// Generate a syslog priority. - /// - /// The syslog facility. - /// The syslog severity. - /// A syslog priority. - /// - /// - /// Generate a syslog priority. - /// - /// - public static int GeneratePriority(SyslogFacility facility, SyslogSeverity severity) - { - if (facility < SyslogFacility.Kernel || facility > SyslogFacility.Local7) - { - throw new ArgumentException("SyslogFacility out of range", "facility"); - } - - if (severity < SyslogSeverity.Emergency || severity > SyslogSeverity.Debug) - { - throw new ArgumentException("SyslogSeverity out of range", "severity"); - } - - unchecked - { - return ((int)facility * 8) + (int)severity; - } - } - - #endregion Public Static Members - - #region Private Instances Fields - - /// - /// The facility. The default facility is . - /// - private SyslogFacility m_facility = SyslogFacility.User; - - /// - /// The message identity - /// - private PatternLayout m_identity; - - /// - /// Mapping from level object to syslog severity - /// - private LevelMapping m_levelMapping = new LevelMapping(); - - /// - /// Initial buffer size - /// - private const int c_renderBufferSize = 256; - - /// - /// Maximum buffer size before it is recycled - /// - private const int c_renderBufferMaxCapacity = 1024; - - #endregion Private Instances Fields - - #region LevelSeverity LevelMapping Entry - /// - /// A class to act as a mapping between the level that a logging call is made at and - /// the syslog severity that is should be logged at. - /// - /// - /// - /// A class to act as a mapping between the level that a logging call is made at and - /// the syslog severity that is should be logged at. - /// - /// - public class LevelSeverity : LevelMappingEntry - { - private SyslogSeverity m_severity; - - /// - /// The mapped syslog severity for the specified level - /// - /// - /// - /// Required property. - /// The mapped syslog severity for the specified level - /// - /// - public SyslogSeverity Severity - { - get { return m_severity; } - set { m_severity = value; } - } - } - - #endregion // LevelSeverity LevelMapping Entry - } -} diff --git a/Utilities/MappingEngineExtensions.cs b/Utilities/MappingEngineExtensions.cs deleted file mode 100644 index 129a031805..0000000000 --- a/Utilities/MappingEngineExtensions.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using AutoMapper; - -namespace Utilities -{ - public static class MappingEngineExtensions - { - public static T Map(this IMappingEngine mappingEngine, params object[] sources) where T : class - { - if (!sources.Any()) - { - return default(T); - } - - var initialSource = sources[0]; - - var mappingResult = Map(mappingEngine, initialSource); - - // Now map the remaining source objects - if (sources.Count() > 1) - { - Map(mappingEngine, mappingResult, sources.Skip(1).ToArray()); - } - - return mappingResult; - } - - private static void Map(this IMappingEngine mappingEngine, object destination, params object[] sources) - { - if (!sources.Any()) - { - return; - } - - var destinationType = destination.GetType(); - - foreach (var source in sources) - { - var sourceType = source.GetType(); - mappingEngine.Map(source, destination, sourceType, destinationType); - } - } - - private static T Map(this IMappingEngine mappingEngine, object source) where T : class - { - var destinationType = typeof(T); - var sourceType = source.GetType(); - - var mappingResult = mappingEngine.Map(source, sourceType, destinationType); - - return mappingResult as T; - } - } -} diff --git a/Utilities/MemoryCache.cs b/Utilities/MemoryCache.cs deleted file mode 100644 index 9810ecfe8b..0000000000 --- a/Utilities/MemoryCache.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.Caching; - -namespace Utilities -{ - /// - /// A threadsafe, typed memory cache - /// - /// - public class MemoryCache : IDisposable - { - private readonly MemoryCache _innerCache = new MemoryCache(Guid.NewGuid().ToString()); - private readonly double _intExpireInSeconds; - - public MemoryCache(double intExpireInSeconds) - { - _intExpireInSeconds = intExpireInSeconds; - } - - public MemoryCache(TimeSpan expireAfter) - : this(expireAfter.TotalSeconds) - { - } - - public void Append(T value) - { - var key = Guid.NewGuid().ToString(); - _innerCache.Set(key, value, new CacheItemPolicy { AbsoluteExpiration = DateTime.UtcNow.AddSeconds(_intExpireInSeconds) }); - } - - public IEnumerable GetAndRemove(Func predicate) - { - var itemsToReturnAndRemove = _innerCache.Where(kvp => predicate((T)kvp.Value)).ToList(); - foreach (var itemToReturnAndRemove in itemsToReturnAndRemove) - { - _innerCache.Remove(itemToReturnAndRemove.Key); - } - return itemsToReturnAndRemove.Select(val => (T)val.Value); - } - - public void Dispose() - { - _innerCache.Dispose(); - } - } -} diff --git a/Utilities/MiscUtils.cs b/Utilities/MiscUtils.cs deleted file mode 100644 index c90f9d0ae9..0000000000 --- a/Utilities/MiscUtils.cs +++ /dev/null @@ -1,78 +0,0 @@ -using System; -using System.Text; - -namespace Utilities -{ - public static class MiscUtils - { - public static bool AreEqual(object firstValue, object secondValue) - { - return object.Equals(firstValue, secondValue); - } - - /// - /// The function masks password in a database connection string. - /// - /// - /// - public static string MaskPassword(string cs) - { - var regex = new System.Text.RegularExpressions.Regex("password=([\\S^]+)[^;]", System.Text.RegularExpressions.RegexOptions.IgnoreCase); - var match = regex.Match(cs); - if (match == null || !match.Success || match.Groups.Count != 2) - { - return cs; - } - var group = match.Groups[1]; - return cs.Substring(0, group.Index) + "*****" + cs.Substring(group.Index + group.Length + 1); - } - - public static StringBuilder Trim(this StringBuilder source) - { - if (source == null) - { - throw new ArgumentNullException(nameof(source)); - } - if (source.Length == 0) - { - return source; - } - var index = source.Length; - while (index > 0 && char.IsWhiteSpace(source[index - 1])) - { - index--; - } - if (index != source.Length) - { - source.Remove(index, source.Length - index); - } - if (source.Length == 0) - { - return source; - } - var trimLength = 0; - while (trimLength < source.Length && char.IsWhiteSpace(source[trimLength])) - { - trimLength++; - } - return source.Remove(0, trimLength); - } - - /// - /// Given a directory path, returns an upper level path by the specified number of levels up. - /// - public static string UpNLevels(string path, int levels) - { - int index = path.LastIndexOf('\\', path.Length - 1, path.Length); - if (index <= 3) - return string.Empty; - string result = path.Substring(0, index); - if (levels > 1) - { - result = UpNLevels(result, levels - 1); - } - return result; - } - - } -} diff --git a/Utilities/MockedConfigRepository.cs b/Utilities/MockedConfigRepository.cs deleted file mode 100644 index 3172ae6f9d..0000000000 --- a/Utilities/MockedConfigRepository.cs +++ /dev/null @@ -1,77 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Configuration; - -namespace Utilities -{ - public class MockedConfigRepository : IConfigRepository - { - private static readonly Dictionary _mockedSettings = new Dictionary(); - public string Get(string key) - { - return Get(key); - } - - public string Get(string key, string defaultValue) - { - return Get(key, defaultValue); - } - - public T Get(String key) - { - return InternalGet(key); - } - - public T Get(string key, T defaultValue) - { - return InternalGet(key, defaultValue, true); - } - - public void Set(string key, String value) - { - _mockedSettings[key] = value; - } - - private T InternalGet(String key, T defaultValue = default(T), bool defaultProvided = false) - { - String stringValue; - if (_mockedSettings.ContainsKey(key)) - { - stringValue = _mockedSettings[key]; - } - else - { - stringValue = Configuration.Azure.CloudConfigurationManager.GetSetting(key); - - if (String.IsNullOrEmpty(stringValue)) - { - if (!defaultProvided) - throw new ConfigurationException("Key '" + key + "' not found."); - - return defaultValue; - } - } - - var returnType = typeof(T); - - if (returnType == typeof(String)) - { - return (T)(object)stringValue; - } - if (returnType == typeof(bool)) - { - bool value; - if (bool.TryParse(stringValue, out value)) - return (T)(object)value; - } - else if (returnType == typeof(int)) - { - int value; - if (int.TryParse(stringValue, out value)) - return (T)(object)value; - } - - throw new ConfigurationException("Invalid value for '" + key + "'"); - } - } -} diff --git a/Utilities/ParsedEmailAddress.cs b/Utilities/ParsedEmailAddress.cs deleted file mode 100644 index 856c96fdc2..0000000000 --- a/Utilities/ParsedEmailAddress.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; - -namespace Utilities -{ - public class ParsedEmailAddress - { - public String Name { get; set; } - public String Email { get; set; } - - public override string ToString() - { - if (String.IsNullOrEmpty(Name)) - return Email; - return String.Format("<{0}>{1}", Name, Email); //is that the right order? - } - } -} \ No newline at end of file diff --git a/Utilities/PersistableIntCollection.cs b/Utilities/PersistableIntCollection.cs deleted file mode 100644 index d6d9a67751..0000000000 --- a/Utilities/PersistableIntCollection.cs +++ /dev/null @@ -1,198 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; -//using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; - -namespace Shnexy.Utilities -{ - - - - public static class IntString - { - public static List Deserialize(string data) - { - List intList = new List(); - string[] separators = { "," }; - intList = data.Split(separators, StringSplitOptions.None).ToList(); - return intList; - } - - public static string Serialize(List intList) - { - string textrep = String.Join(",", intList.ToArray()); - return textrep; - } - - - } - - //Entity Framework can't handle non-primitive types. The code below lets us create a Collection of Integers that is stored as a string. - //See http://stackoverflow.com/a/11990836/1915866 - /// - /// ALlows persisting of a simple integer collection. - /// - [ComplexType] - public class PersistableIntCollection : PersistableScalarCollection - { - protected override int ConvertSingleValueToRuntime(string rawValue) - { - return int.Parse(rawValue); - } - - protected override string ConvertSingleValueToPersistable(int value) - { - return value.ToString(); - } - } - - /// - /// Baseclass that allows persisting of scalar values as a collection (which is not supported by EF 4.3) - /// - /// Type of the single collection entry that should be persisted. - [ComplexType] - public abstract class PersistableScalarCollection : ICollection - { - - // use a character that will not occur in the collection. - // this can be overriden using the given abstract methods (e.g. for list of strings). - const string DefaultValueSeperator = "|"; - - readonly string[] DefaultValueSeperators = new string[] { DefaultValueSeperator }; - - /// - /// The internal data container for the list data. - /// - private List Data { get; set; } - - public PersistableScalarCollection() - { - Data = new List(); - } - - /// - /// Implementors have to convert the given value raw value to the correct runtime-type. - /// - /// the already seperated raw value from the database - /// - protected abstract T ConvertSingleValueToRuntime(string rawValue); - - /// - /// Implementors should convert the given runtime value to a persistable form. - /// - /// - /// - protected abstract string ConvertSingleValueToPersistable(T value); - - /// - /// Deriving classes can override the string that is used to seperate single values - /// - protected virtual string ValueSeperator - { - get - { - return DefaultValueSeperator; - } - } - - /// - /// Deriving classes can override the string that is used to seperate single values - /// - protected virtual string[] ValueSeperators - { - get - { - return DefaultValueSeperators; - } - } - - /// - /// DO NOT Modeify manually! This is only used to store/load the data. - /// - public string SerializedValue - { - get - { - var serializedValue = string.Join(ValueSeperator.ToString(), - Data.Select(x => ConvertSingleValueToPersistable(x)) - .ToArray()); - return serializedValue; - } - set - { - Data.Clear(); - - if (string.IsNullOrEmpty(value)) - { - return; - } - - Data = new List(value.Split(ValueSeperators, StringSplitOptions.None) - .Select(x => ConvertSingleValueToRuntime(x))); - } - } - - #region ICollection Members - - public void Add(T item) - { - Data.Add(item); - } - - public void Clear() - { - Data.Clear(); - } - - public bool Contains(T item) - { - return Data.Contains(item); - } - - public void CopyTo(T[] array, int arrayIndex) - { - Data.CopyTo(array, arrayIndex); - } - - public int Count - { - get { return Data.Count; } - } - - public bool IsReadOnly - { - get { return false; } - } - - public bool Remove(T item) - { - return Data.Remove(item); - } - - #endregion - - #region IEnumerable Members - - public IEnumerator GetEnumerator() - { - return Data.GetEnumerator(); - } - - #endregion - - #region IEnumerable Members - - IEnumerator IEnumerable.GetEnumerator() - { - return Data.GetEnumerator(); - } - - #endregion - } - - - - -} diff --git a/Utilities/Properties/AssemblyInfo.cs b/Utilities/Properties/AssemblyInfo.cs deleted file mode 100644 index f2882432d9..0000000000 --- a/Utilities/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Utilities")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Utilities")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("61e86ebe-23b9-46e8-b4bb-cf4be9003c37")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Utilities/Properties/Resources.Designer.cs b/Utilities/Properties/Resources.Designer.cs deleted file mode 100644 index 6172a6035a..0000000000 --- a/Utilities/Properties/Resources.Designer.cs +++ /dev/null @@ -1,73 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Utilities.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Utilities.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized resource of type System.Byte[]. - /// - internal static byte[] UAParser_regexes_yaml { - get { - object obj = ResourceManager.GetObject("UAParser_regexes_yaml", resourceCulture); - return ((byte[])(obj)); - } - } - } -} diff --git a/Utilities/Properties/Resources.resx b/Utilities/Properties/Resources.resx deleted file mode 100644 index 022729f2a2..0000000000 --- a/Utilities/Properties/Resources.resx +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\regexes.yaml;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Utilities/PusherNotifier.cs b/Utilities/PusherNotifier.cs deleted file mode 100644 index 229a9e038e..0000000000 --- a/Utilities/PusherNotifier.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using PusherServer; -using Utilities.Configuration.Azure; -using Utilities.Interfaces; - -namespace Utilities -{ - public class PusherNotifier : IPusherNotifier - { - private Pusher _pusher { get; set; } - - public PusherNotifier() - { - var pusherAppId = CloudConfigurationManager.AppSettings.GetSetting("pusherAppId"); - var pusherAppKey = CloudConfigurationManager.AppSettings.GetSetting("pusherAppKey"); - var pusherAppSercret = CloudConfigurationManager.AppSettings.GetSetting("pusherAppSecret"); - - if (!string.IsNullOrEmpty(pusherAppId) && !string.IsNullOrEmpty(pusherAppKey) && - !string.IsNullOrEmpty(pusherAppSercret)) - { - _pusher = new Pusher(pusherAppId, pusherAppKey, pusherAppSercret, - new PusherOptions - { - Encrypted = true - } - ); - } - else - { - throw new Exception("Settings for pusher notifier not provided. Failed initializing Pusher."); - } - } - - public void Notify(string channelName, string eventName, object message) - { - _pusher?.Trigger(channelName, eventName, message); - } - - public void NotifyUser(object message, string eventName, string userName) - { - if (string.IsNullOrWhiteSpace(userName)) - { - return; - } - - var pusherChannel = BuildChannelName(userName); - Notify(pusherChannel, eventName, message); - } - - private string BuildChannelName(string email) - { - // If you change the way how channel name is constructed, be sure to change it also - // in the client-side code (NotifierController.ts). - return "fr8pusher_" + Uri.EscapeUriString(email).Replace("%", "="); - } - } -} diff --git a/Utilities/ReflectionHelper.cs b/Utilities/ReflectionHelper.cs deleted file mode 100644 index 5f1650d714..0000000000 --- a/Utilities/ReflectionHelper.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; -using System.Linq.Expressions; -using System.Reflection; - -namespace Utilities -{ - public class ReflectionHelper - { - //This creates a statically typed reference to our supplied property. If we change it in the future, it won't compile (so it won't break at runtime). - //Changing the property with tools like resharper will automatically update here. - public string GetPropertyName(Expression> expression) - { - if (expression.Body.NodeType == ExpressionType.MemberAccess) - return (expression.Body as dynamic).Member.Name; - - throw new Exception("Cannot contain complex expressions. An example of a supported expression is 'ev => ev.Id'"); - } - - public PropertyInfo GetProperty(Expression> expression) - { - if (expression.Body is MemberExpression) - if ((expression.Body as MemberExpression).Member is PropertyInfo) - return (expression.Body as MemberExpression).Member as PropertyInfo; - - throw new Exception("Not a property"); - } - - } - - public class ReflectionHelper - { - public static PropertyInfo EntityPrimaryKeyPropertyInfo(object entity) - { - Type entityType; - if (entity is Type) - entityType = (Type) entity; - else - entityType = entity.GetType(); - - return entityType.GetProperties().FirstOrDefault(p => p.GetCustomAttribute(true) != null); - } - - public static PropertyInfo ForeignKeyNavitationProperty(object entity, PropertyInfo foreignKeyProperty) - { - var foreignKeyAttribute = foreignKeyProperty.GetCustomAttribute(); - if (foreignKeyAttribute == null) - return null; - var navigationProperty = entity.GetType().GetProperty(foreignKeyAttribute.Name); - return navigationProperty; - } - - public static PropertyInfo[] GetProperties(Type curType) - { - var curProperties = curType.GetProperties(); - return curProperties; - } - } -} diff --git a/Utilities/RegexUtilities.cs b/Utilities/RegexUtilities.cs deleted file mode 100644 index 16a663833a..0000000000 --- a/Utilities/RegexUtilities.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text.RegularExpressions; -using FluentValidation; -using FluentValidation.Results; - -namespace Utilities -{ - public class RegexUtilities - { - public static void ValidateEmailAddress(String emailAddress) - { - if (!IsValidEmailAddress(emailAddress)) - throw new ValidationException(new [] { new ValidationFailure("emailAddress", "Invalid email address: '" + emailAddress + "'")}); - } - - public static bool IsValidEmailAddress(String emailAddress) - { - return ExtractFromString(emailAddress, true, true).Count == 1; - } - - public static List ExtractFromString(String textToSearch, bool includeReserved = false, bool strict = false) - { - if (String.IsNullOrEmpty(textToSearch)) - return new List(); - //This is the email regex. - //It searches for emails in the format of somePerson@someDomain.someExtension - - //We assume that names can only contain letters, numbers, and spaces. We also allow for a blank name, in the form of <> - const string nameRegex = @"[ a-zA-Z0-9]*"; - - //We assume for now, that emails can only contain letters, numbers, dashes, dots, +. This can be updated in the future (parsing emails is actually incredibly difficult). - //See http://tools.ietf.org/html/rfc2822#section-3.4.1 in the future if we ever update this. - const string emailUserNameRegex = @"[a-zA-Z0-9\!\#\$\%\&\'\*\+\.\-\/\=\?\^_\`\{\|\}\~]+"; - - //Domains can only contain letters, numbers, or dashes. - const string domainRegex = @"[a-zA-Z0-9\-]+"; - - //Top level domain must be at least two characters long. Only allows letters, numbers, dashes or dots. - const string tldRegex = @"[a-zA-Z0-9\-\.]{2,}"; - - //The name part is optional; we can find emails like 'rjrudman@gmail.com', or 'rjrudman@gmail.com'. - //The regex uses named groups; 'name' and 'email'. - //Name will contain the name, without <>. Email will contain the full email address (without the name). - - //Typically, you won't need to modify the below code, only the four variables defined above. - var fullRegexExpression = String.Format(@"(<(?{0})>)?(?{1}@{2}\.{3})", nameRegex,emailUserNameRegex, domainRegex, tldRegex); - - if (strict) - fullRegexExpression = String.Format("^{0}$", fullRegexExpression); - - var regex = new Regex(fullRegexExpression); - - var result = new List(); - foreach (Match match in regex.Matches(textToSearch)) - { - var parse = new ParsedEmailAddress - { - Name = match.Groups["name"].Value, - Email = match.Groups["email"].Value.ToLower() - }; - - if (includeReserved || !FilterUtility.IsReservedEmailAddress(parse.Email)) - result.Add(parse); - } - return result; - } - } -} \ No newline at end of file diff --git a/Utilities/Serializers/Json/JsonSerializer.cs b/Utilities/Serializers/Json/JsonSerializer.cs deleted file mode 100644 index 86dae0dff9..0000000000 --- a/Utilities/Serializers/Json/JsonSerializer.cs +++ /dev/null @@ -1,139 +0,0 @@ -using System.Collections.Generic; -using System.Globalization; -using System.Text; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using Newtonsoft.Json.Serialization; - -namespace Utilities.Serializers.Json -{ - /// - /// Default JSON serializer - /// Doesn't currently use the SerializeAs attribute, defers to Newtonsoft's attributes - /// - public class JsonSerializer - { - public JsonSerializerSettings Settings; - - /// - /// Default serializer - /// - public JsonSerializer() - { - Settings = new JsonSerializerSettings - { - MissingMemberHandling = MissingMemberHandling.Error, - NullValueHandling = NullValueHandling.Include, - DefaultValueHandling = DefaultValueHandling.Include, - Formatting = Formatting.Indented, - PreserveReferencesHandling = PreserveReferencesHandling.None, - ReferenceLoopHandling = ReferenceLoopHandling.Ignore, - ContractResolver = new CustomPropertyNamesContractResolver() - }; - } - - /// - /// Serialize the object as JSON - /// - public string Serialize(object obj) - { - return JsonConvert.SerializeObject(obj, Settings); - } - - /// - /// Deserializes JSON response to object - /// - public T Deserialize(string responseJson) - { - if (responseJson == null) return default(T); - if (responseJson.StartsWith("{\"messages\":{")) return default(T); - - - return responseJson == "[]" - ? default(T) - : JsonConvert.DeserializeObject(responseJson, Settings); - } - - /// - /// Deserializes JSON response to List of object - /// - public IList DeserializeList(string responseJson) - { - if (responseJson == null) return default(IList); - if (responseJson.StartsWith("{\"messages\":{")) return default(IList); - if (responseJson == "[]") return default(IList); - - object result = JsonConvert.DeserializeObject(responseJson, Settings); - IList listT = new List(); - foreach (KeyValuePair item in ((Newtonsoft.Json.Linq.JObject)(result))) - { - listT.Add(Deserialize(item.Value.ToString())); - } - return listT; - } - - - //================================= - // The following code converts our Pascal Case property names to the kind that mandrill needs - // based loosely on http://stackoverflow.com/a/18828097/1915866 - public enum IdentifierCase - { - Camel, - Pascal, - } - public class CustomPropertyNamesContractResolver : DefaultContractResolver - { - private static readonly CultureInfo Culture = CultureInfo.InvariantCulture; - - public CustomPropertyNamesContractResolver(bool shareCache = false) - : base(shareCache) - { - Case = IdentifierCase.Pascal; - PreserveUnderscores = true; - } - - public IdentifierCase Case { get; set; } - public bool PreserveUnderscores { get; set; } - - protected override string ResolvePropertyName(string propertyName) - { - return ChangeCase(propertyName); - } - - private string ChangeCase(string s) - { - StringBuilder sb = new StringBuilder(); - - //NOT USED RIGHT NOW bool addNoUnderscore = true;//applies for the first char, and for chars that follow a capital char (i.e. we don't want "CC" to become "C_C") - bool lastCharUpper = true; - foreach (char c in s) - { - - if (char.IsLower(c)) - { - sb.Append(c); - lastCharUpper = false; - } - else - { - if (lastCharUpper) - { - sb.Append(char.ToLower(c)); - } - else - { - sb.Append("_"); - sb.Append(char.ToLower(c)); - lastCharUpper = true; - } - } - - } - return sb.ToString(); - } - - - } - - } -} diff --git a/Utilities/Server.cs b/Utilities/Server.cs deleted file mode 100644 index a1c612970c..0000000000 --- a/Utilities/Server.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; - -namespace Utilities -{ - public static class Server - { - public static String ServerPhysicalPath { get; set; } - public static String ServerHostName { get; set; } - public static String ServerUrl { get; set; } - - public static bool IsDevMode { get; set; } - - public static bool IsProduction { get; set; } - } -} diff --git a/Utilities/StopwordsRemover.cs b/Utilities/StopwordsRemover.cs deleted file mode 100644 index 2fd7fa7924..0000000000 --- a/Utilities/StopwordsRemover.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; - -namespace Utilities -{ - public static class StopwordsRemover - { - public static string RemoveStopwords(this string source, IEnumerable stopwords) - { - if (string.IsNullOrEmpty(source)) - { - return source; - } - if (stopwords == null) - { - return source; - } - //Just to make sure we deal with fixed collection - stopwords = stopwords as IList ?? stopwords.ToArray(); - if (!stopwords.Any()) - { - return source; - } - //TODO: if the need arises add aditional processing to escape special regex-related symbols inside stopword - var regex = new Regex(string.Join("|", stopwords.Where(x => !string.IsNullOrWhiteSpace(x)).Select(x => $@"(^{x}\W{{1}})|(\W{{1}}{x}\W{{1}})|(\W{{1}}{x}$)")), RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); - var matches = regex.Matches(source); - if (matches.Count == 0) - { - return source; - } - var result = new StringBuilder(source); - //Sort matches in reversed order to remove them without spanning multiple garabage string objects - foreach (var match in matches.Cast().OrderByDescending(x => x.Index)) - { - var removeRange = FindRemoveRange(match); - result.Remove(removeRange.Key, removeRange.Value - removeRange.Key + 1); - } - result.Trim().Replace(" ", " "); - return result.ToString(); - } - - private static KeyValuePair FindRemoveRange(Match match) - { - var from = 0; - var to = match.Length - 1; - var startsWithSeparator = !char.IsLetterOrDigit(match.Value[from]) && match.Value[from] != '_'; - var endsWithSeparator = !char.IsLetterOrDigit(match.Value[to]) && match.Value[to] != '_'; - if (startsWithSeparator && endsWithSeparator) - { - //Stopword is in the middle of string - we need to adjust remove position - var startsWithSpace = char.IsWhiteSpace(match.Value[from]); - var endsWithSpace = char.IsWhiteSpace(match.Value[to]); - if ((startsWithSpace && endsWithSpace) || (!startsWithSpace && !startsWithSpace)) - { - //Remove only the last separator - from++; - } - else if (startsWithSpace) - { - //Remove nonspace separator from the end e.g 'Coca-' from 'The Coca-cola company' - from++; - } - else if (endsWithSpace) - { - //Remove nonspace separator from the start e.g. '-cola' from 'The Coca-cola company' - to--; - } - } - //Remove the full match value - return new KeyValuePair(match.Index + from, match.Index + to); - } - - public static string RemoveStopwords(this string source, params string[] stopwords) - { - return RemoveStopwords(source, stopwords as IEnumerable); - } - } -} diff --git a/Utilities/TypeSafeEnum.cs b/Utilities/TypeSafeEnum.cs deleted file mode 100644 index 3a98ab001c..0000000000 --- a/Utilities/TypeSafeEnum.cs +++ /dev/null @@ -1,139 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Shnexy.Utilities -{ - - - // E is the derived type-safe-enum class - // - this allows all static members to be truly unique to the specific - // derived class - // from http://stackoverflow.com/questions/424366/c-sharp-string-enums/424414#424414 - public class EnumBase where E : EnumBase - { - #region Instance code - public T Value { get; private set; } - public string Name { get; private set; } - - protected EnumBase(T EnumValue, string Name) - { - Value = EnumValue; - this.Name = Name; - mapping.Add(Name, this); - } - - public override string ToString() { return Name; } - #endregion - - #region Static tools - static private readonly Dictionary> mapping; - static EnumBase() - { - mapping = new Dictionary>(); - } - protected static E Parse(string name) - { - EnumBase result; - if (mapping.TryGetValue(name, out result)) - { - return (E)result; - } - - throw new InvalidCastException(); - } - // This is protected to force the child class to expose it's own static - // method. - // By recreating this static method at the derived class, static - // initialization will be explicit, promising the mapping dictionary - // will never be empty when this method is called. - protected static IEnumerable All - { - get - { - return mapping.Values.AsEnumerable().Cast(); - } - } - #endregion - } - - public sealed class CallRequestStatus : EnumBase - { - public static readonly CallRequestStatus ACTIVE = new CallRequestStatus(1, "ACTIVE"); - public static readonly CallRequestStatus FULFILLED = new CallRequestStatus(2, "FULFILLED"); - public static readonly CallRequestStatus DEACTIVATED = new CallRequestStatus(3, "DEACTIVATED"); - - private CallRequestStatus(int Value, String Name) : base(Value, Name) { } - public new static IEnumerable All - { - get - { return EnumBase.All; } - } - - public static explicit operator CallRequestStatus(string str) - { return Parse(str); } - } - - public sealed class ParticipantType : EnumBase - { - public static readonly ParticipantType PRODUCER = new ParticipantType(1, "PRODUCER"); - public static readonly ParticipantType CONSUMER = new ParticipantType(2, "CONSUMER"); - - - private ParticipantType(int Value, String Name) : base(Value, Name) { } - public new static IEnumerable All - { get { return EnumBase.All; } } - - public static explicit operator ParticipantType(string str) - { return Parse(str); } - - - - } - - public sealed class MessageState - { - private readonly String name; - private readonly int value; - - - public static readonly MessageState UNSENT = new MessageState(1, "UNSENT"); - public static readonly MessageState SENT = new MessageState(2, "SENT"); - - - private MessageState(int value, String name) - { - this.name = name; - this.value = value; - - } - - public override String ToString() - { - return name; - } - - - - } - - public sealed class Method : EnumBase - { - public static readonly Method GET = new Method(1, "GET"); - public static readonly Method POST = new Method(2, "POST"); - public static readonly Method PUT = new Method(2, "PUT"); - - private Method(int Value, String Name) : base(Value, Name) { } - public new static IEnumerable All - { - get - { return EnumBase.All; } - } - - public static explicit operator Method(string str) - { return Parse(str); } - - - - } -} \ No newline at end of file diff --git a/Utilities/UAParser/UAParser.cs b/Utilities/UAParser/UAParser.cs deleted file mode 100644 index 72911e779b..0000000000 --- a/Utilities/UAParser/UAParser.cs +++ /dev/null @@ -1,359 +0,0 @@ -#region Apache License, Version 2.0 -// -// Copyright 2014 Atif Aziz -// Portions Copyright 2012 Søren Enemærke -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -#endregion - -namespace Utilities.UAParser -{ - #region Imports - - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Text.RegularExpressions; - using YamlDotNet.RepresentationModel; - - #endregion - - public sealed class Device - { - public Device(string family, bool isSpider) - { - Family = family; - IsSpider = isSpider; - } - - public string Family { get; private set; } - public bool IsSpider { get; private set; } - - public override string ToString() { return Family; } - } - - // ReSharper disable once InconsistentNaming - public sealed class OS - { - public OS(string family, string major, string minor, string patch, string patchMinor) - { - Family = family; - Major = major; - Minor = minor; - Patch = patch; - PatchMinor = patchMinor; - } - - public string Family { get; private set; } - public string Major { get; private set; } - public string Minor { get; private set; } - public string Patch { get; private set; } - public string PatchMinor { get; private set; } - - public override string ToString() - { - var version = VersionString.Format(Major, Minor, Patch, PatchMinor); - return Family + (!string.IsNullOrEmpty(version) ? " " + version : null); - } - } - - public sealed class UserAgent - { - public UserAgent(string family, string major, string minor, string patch) - { - Family = family; - Major = major; - Minor = minor; - Patch = patch; - } - - public string Family { get; private set; } - public string Major { get; private set; } - public string Minor { get; private set; } - public string Patch { get; private set; } - - public override string ToString() - { - var version = VersionString.Format(Major, Minor, Patch); - return Family + (!string.IsNullOrEmpty(version) ? " " + version : null); - } - } - - static class VersionString - { - public static string Format(params string[] parts) - { - return string.Join(".", parts.Where(v => !String.IsNullOrEmpty(v)).ToArray()); - } - } - - public class ClientInfo - { - // ReSharper disable once InconsistentNaming - public OS OS { get; private set; } - public Device Device { get; private set; } - public UserAgent UserAgent { get; private set; } - - public ClientInfo(OS os, Device device, UserAgent userAgent) - { - OS = os; - Device = device; - UserAgent = userAgent; - } - - public override string ToString() - { - return string.Format("{0} {1} {2}", OS, Device, UserAgent); - } - } - - public sealed class Parser - { - readonly Func _osParser; - readonly Func _deviceParser; - readonly Func _userAgentParser; - - Parser(string yaml) - { - var ys = new YamlStream(); - using (var reader = new StringReader(yaml)) - ys.Load(reader); - - var entries = - from doc in ys.Documents - select doc.RootNode as YamlMappingNode into rn - where rn != null - from e in rn.Children - select new { Key = e.Key as YamlScalarNode, - Value = e.Value as YamlSequenceNode } into e - where e.Key != null && e.Value != null - select e; - - var config = entries.ToDictionary(e => e.Key.Value, - e => e.Value, - StringComparer.OrdinalIgnoreCase); - - const string other = "Other"; - var defaultDevice = new Device(other, isSpider: false); - - _userAgentParser = CreateParser(Read(config.Find("user_agent_parsers"), Config.UserAgent), new UserAgent(other, null, null, null)); - _osParser = CreateParser(Read(config.Find("os_parsers" ), Config.OS), new OS(other, null, null, null, null)); - _deviceParser = CreateParser(Read(config.Find("device_parsers" ), Config.Device), defaultDevice.Family, f => defaultDevice.Family == f ? defaultDevice : new Device(f, "Spider".Equals(f, StringComparison.InvariantCultureIgnoreCase))); - } - - public static Parser FromYaml(string yaml) { return new Parser(yaml); } - public static Parser FromYamlFile(string path) { return new Parser(File.ReadAllText(path)); } - - public static Parser GetDefault() - { - using (var stream = new MemoryStream(Properties.Resources.UAParser_regexes_yaml)) - // ReSharper disable once AssignNullToNotNullAttribute - using (var reader = new StreamReader(stream)) - return new Parser(reader.ReadToEnd()); - } - - public ClientInfo Parse(string uaString) - { - var os = ParseOS(uaString); - var device = ParseDevice(uaString); - var ua = ParseUserAgent(uaString); - return new ClientInfo(os, device, ua); - } - - public OS ParseOS(string uaString) { return _osParser(uaString); } - public Device ParseDevice(string uaString) { return _deviceParser(uaString); } - public UserAgent ParseUserAgent(string uaString) { return _userAgentParser(uaString); } - - static IEnumerable Read(IEnumerable nodes, Func, T> selector) - { - return from node in nodes ?? Enumerable.Empty() - select node as YamlMappingNode into node - where node != null - select node.Children - .Where(e => e.Key is YamlScalarNode && e.Value is YamlScalarNode) - .GroupBy(e => e.Key.ToString(), e => e.Value.ToString(), StringComparer.OrdinalIgnoreCase) - .ToDictionary(e => e.Key, e => e.Last(), StringComparer.OrdinalIgnoreCase) into cm - select selector(cm.Find); - } - - static Func CreateParser(IEnumerable> parsers, T defaultValue) where T : class - { - return CreateParser(parsers, defaultValue, t => t); - } - - static Func CreateParser(IEnumerable> parsers, T defaultValue, Func selector) where T : class - { - parsers = parsers != null ? parsers.ToArray() : Enumerable.Empty>(); - return ua => selector(parsers.Select(p => p(ua)).FirstOrDefault(m => m != null) ?? defaultValue); - } - - static class Config - { - // ReSharper disable once InconsistentNaming - public static Func OS(Func indexer) - { - var regex = Regex(indexer, "OS"); - var os = indexer("os_replacement"); - var v1 = indexer("os_v1_replacement"); - var v2 = indexer("os_v2_replacement"); - return Parsers.OS(regex, os, v1, v2); - } - - public static Func UserAgent(Func indexer) - { - var regex = Regex(indexer, "User agent"); - var family = indexer("family_replacement"); - var v1 = indexer("v1_replacement"); - var v2 = indexer("v2_replacement"); - return Parsers.UserAgent(regex, family, v1, v2); - } - - public static Func Device(Func indexer) - { - return Parsers.Device(Regex(indexer, "Device"), indexer("device_replacement")); - } - - static Regex Regex(Func indexer, string key) - { - var pattern = indexer("regex"); - if (pattern == null) - throw new Exception(String.Format("{0} is missing regular expression specification.", key)); - - // Some expressions in the regex.yaml file causes parsing errors - // in .NET such as the \_ token so need to alter them before - // proceeding. - - if (pattern.IndexOf(@"\_", StringComparison.Ordinal) >= 0) - pattern = pattern.Replace(@"\_", "_"); - - // TODO: potentially allow parser to specify e.g. to use - // compiled regular expressions which are faster but increase - // startup time - - return new Regex(pattern); - } - } - - static class Parsers - { - // ReSharper disable once InconsistentNaming - public static Func OS(Regex regex, string osReplacement, string v1Replacement, string v2Replacement) - { - return Create(regex, (m, num) => - { - var family = Replace(osReplacement, "$1")(m, num); - var v1 = Replace(v1Replacement)(m, num); - var v2 = Replace(v2Replacement)(m, num); - var v3 = Select(v => v)(m, num); - var v4 = Select(v => v)(m, num); - return new OS(family, v1, v2, v3, v4); - }); - } - - public static Func Device(Regex regex, string familyReplacement) - { - return Create(regex, Replace(familyReplacement, "$1")); - } - - public static Func UserAgent(Regex regex, string familyReplacement, string majorReplacement, string minorReplacement) - { - return Create(regex, (m, num) => - { - var family = Replace(familyReplacement, "$1")(m, num); - var v1 = Replace(majorReplacement)(m, num); - var v2 = Replace(minorReplacement)(m, num); - var v3 = Select()(m, num); - return new UserAgent(family, v1, v2, v3); - }); - } - - static Func, string> Replace(string replacement) - { - return replacement != null ? Select(_ => replacement) : Select(); - } - - static Func, string> Replace( - string replacement, string token) - { - return replacement != null && replacement.Contains(token) - ? Select(s => s != null ? replacement.ReplaceFirstOccurence(token, s) : replacement) - : Replace(replacement); - } - - static Func, string> Select() { return Select(v => v); } - - static Func, T> Select(Func selector) - { - return (m, num) => - { - if (!num.MoveNext()) throw new InvalidOperationException(); - var groups = m.Groups; Group group; - return selector(num.Current <= groups.Count && (group = groups[num.Current]).Success - ? group.Value : null); - }; - } - - static Func Create(Regex regex, Func, T> binder) - { - return input => - { - var m = regex.Match(input); - var num = Generate(1, n => n + 1); - return m.Success ? binder(m, num) : default(T); - }; - } - - static IEnumerator Generate(T initial, Func next) - { - for (var state = initial; ; state = next(state)) - yield return state; - // ReSharper disable once FunctionNeverReturns - } - } - } - - static class RegexBinderBuilder - { - public static Func, TResult> SelectMany( - this Func, T1> binder, - Func, T2>> continuation, - Func projection) - { - return (m, num) => { T1 f; return projection(f = binder(m, num), continuation(f)(m, num)); }; - } - } - - static class StringExtensions - { - public static string ReplaceFirstOccurence(this string input, string search, string replacement) - { - if (input == null) throw new ArgumentNullException("input"); - var index = input.IndexOf(search, StringComparison.Ordinal); - return index >= 0 - ? input.Substring(0, index) + replacement + input.Substring(index + search.Length) - : input; - } - } - - static class DictionaryExtensions - { - public static TValue Find(this IDictionary dictionary, TKey key) - { - if (dictionary == null) throw new ArgumentNullException("dictionary"); - TValue result; - return dictionary.TryGetValue(key, out result) ? result : default(TValue); - } - } -} diff --git a/Utilities/Utilities.csproj b/Utilities/Utilities.csproj deleted file mode 100644 index 1b6a4b538e..0000000000 --- a/Utilities/Utilities.csproj +++ /dev/null @@ -1,189 +0,0 @@ - - - - - Debug - AnyCPU - {D6C86CFF-37C0-49BE-9F77-4F876CE6A793} - Library - Properties - Utilities - Utilities - v4.5 - 512 - ..\ - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\Dev\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\Demo\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - - ..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll - True - - - ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll - - - ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll - - - ..\packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll - True - - - ..\packages\FluentValidation.5.6.2.0\lib\Net45\FluentValidation.dll - True - - - ..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll - True - - - False - ..\packages\log4net.2.0.3\lib\net40-full\log4net.dll - - - - ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll - True - - - ..\packages\PusherServer.2.1.1.0\lib\net35\PusherServer.dll - True - - - ..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll - True - - - False - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll - - - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll - - - - - - - - - - - ..\packages\YamlDotNet.3.1.1\lib\net35\YamlDotNet.dll - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - Resources.resx - - - - - - - - - - - Designer - - - - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - \ No newline at end of file diff --git a/Utilities/Utilities.nuspec b/Utilities/Utilities.nuspec deleted file mode 100644 index 28d51275be..0000000000 --- a/Utilities/Utilities.nuspec +++ /dev/null @@ -1,18 +0,0 @@ - - - - $id$ - $version$ - $title$ - $author$ - $author$ - https://github.com/Fr8org/Fr8Core.NET - https://github.com/Fr8org/Fr8Core.NET - https://fr8.co/Content/img/dockyard_logo_white.png - false - $description$ - Initial release - Copyright 2016 - fr8 fr8Utilities - - \ No newline at end of file diff --git a/Utilities/packages.config b/Utilities/packages.config deleted file mode 100644 index a719cac4a6..0000000000 --- a/Utilities/packages.config +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Utilities/regexes.yaml b/Utilities/regexes.yaml deleted file mode 100644 index f50d27000a..0000000000 --- a/Utilities/regexes.yaml +++ /dev/null @@ -1,1213 +0,0 @@ -user_agent_parsers: - #### SPECIAL CASES TOP #### - - # HbbTV standard defines what features the browser should understand. - # but it's like targeting "HTML5 browsers", effective browser support depends on the model - # See os_parsers if you want to target a specific TV - - regex: '(HbbTV)/(\d+)\.(\d+)\.(\d+) \(' - - # must go before Firefox to catch SeaMonkey/Camino - - regex: '(SeaMonkey|Camino)/(\d+)\.(\d+)\.?([ab]?\d+[a-z]*)' - - # Firefox - - regex: '(Pale[Mm]oon)/(\d+)\.(\d+)\.?(\d+)?' - family_replacement: 'Pale Moon (Firefox Variant)' - - regex: '(Fennec)/(\d+)\.(\d+)\.?([ab]?\d+[a-z]*)' - family_replacement: 'Firefox Mobile' - - regex: '(Fennec)/(\d+)\.(\d+)(pre)' - family_replacement: 'Firefox Mobile' - - regex: '(Fennec)/(\d+)\.(\d+)' - family_replacement: 'Firefox Mobile' - - regex: 'Mobile.*(Firefox)/(\d+)\.(\d+)' - family_replacement: 'Firefox Mobile' - - regex: '(Namoroka|Shiretoko|Minefield)/(\d+)\.(\d+)\.(\d+(?:pre)?)' - family_replacement: 'Firefox ($1)' - - regex: '(Firefox)/(\d+)\.(\d+)(a\d+[a-z]*)' - family_replacement: 'Firefox Alpha' - - regex: '(Firefox)/(\d+)\.(\d+)(b\d+[a-z]*)' - family_replacement: 'Firefox Beta' - - regex: '(Firefox)-(?:\d+\.\d+)?/(\d+)\.(\d+)(a\d+[a-z]*)' - family_replacement: 'Firefox Alpha' - - regex: '(Firefox)-(?:\d+\.\d+)?/(\d+)\.(\d+)(b\d+[a-z]*)' - family_replacement: 'Firefox Beta' - - regex: '(Namoroka|Shiretoko|Minefield)/(\d+)\.(\d+)([ab]\d+[a-z]*)?' - family_replacement: 'Firefox ($1)' - - regex: '(Firefox).*Tablet browser (\d+)\.(\d+)\.(\d+)' - family_replacement: 'MicroB' - - regex: '(MozillaDeveloperPreview)/(\d+)\.(\d+)([ab]\d+[a-z]*)?' - - # e.g.: Flock/2.0b2 - - regex: '(Flock)/(\d+)\.(\d+)(b\d+?)' - - # RockMelt - - regex: '(RockMelt)/(\d+)\.(\d+)\.(\d+)' - - # e.g.: Fennec/0.9pre - - regex: '(Navigator)/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Netscape' - - - regex: '(Navigator)/(\d+)\.(\d+)([ab]\d+)' - family_replacement: 'Netscape' - - - regex: '(Netscape6)/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Netscape' - - - regex: '(MyIBrow)/(\d+)\.(\d+)' - family_replacement: 'My Internet Browser' - - # Opera will stop at 9.80 and hide the real version in the Version string. - # see: http://dev.opera.com/articles/view/opera-ua-string-changes/ - - regex: '(Opera Tablet).*Version/(\d+)\.(\d+)(?:\.(\d+))?' - - regex: '(Opera)/.+Opera Mobi.+Version/(\d+)\.(\d+)' - family_replacement: 'Opera Mobile' - - regex: '(Opera)/(\d+)\.(\d+).+Opera Mobi' - family_replacement: 'Opera Mobile' - - regex: 'Opera Mobi.+(Opera)/(\d+)\.(\d+)' - family_replacement: 'Opera Mobile' - - regex: 'Opera Mobi' - family_replacement: 'Opera Mobile' - - regex: '(Opera Mini)(?:/att)?/(\d+)\.(\d+)' - - regex: '(Opera)/9.80.*Version/(\d+)\.(\d+)(?:\.(\d+))?' - - # Opera 14 for Android uses a WebKit render engine. - - regex: '(?:Mobile Safari).*(OPR)/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Opera Mobile' - - # Opera 15 for Desktop is similar to Chrome but includes an "OPR" Version string. - - regex: '(?:Chrome).*(OPR)/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Opera' - - # Palm WebOS looks a lot like Safari. - - regex: '(hpw|web)OS/(\d+)\.(\d+)(?:\.(\d+))?' - family_replacement: 'webOS Browser' - - # LuaKit has no version info. - # http://luakit.org/projects/luakit/ - - regex: '(luakit)' - family_replacement: 'LuaKit' - - # Snowshoe - - regex: '(Snowshoe)/(\d+)\.(\d+).(\d+)' - - # Lightning (for Thunderbird) - # http://www.mozilla.org/projects/calendar/lightning/ - - regex: '(Lightning)/(\d+)\.(\d+)\.?((?:[ab]?\d+[a-z]*)|(?:\d*))' - - # Swiftfox - - regex: '(Firefox)/(\d+)\.(\d+)\.(\d+(?:pre)?) \(Swiftfox\)' - family_replacement: 'Swiftfox' - - regex: '(Firefox)/(\d+)\.(\d+)([ab]\d+[a-z]*)? \(Swiftfox\)' - family_replacement: 'Swiftfox' - - # Rekonq - - regex: '(rekonq)/(\d+)\.(\d+)\.?(\d+)? Safari' - family_replacement: 'Rekonq' - - regex: 'rekonq' - family_replacement: 'Rekonq' - - # Conkeror lowercase/uppercase - # http://conkeror.org/ - - regex: '(conkeror|Conkeror)/(\d+)\.(\d+)\.?(\d+)?' - family_replacement: 'Conkeror' - - # catches lower case konqueror - - regex: '(konqueror)/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Konqueror' - - - regex: '(WeTab)-Browser' - - - regex: '(Comodo_Dragon)/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Comodo Dragon' - - # Bots - - regex: '(YottaaMonitor|BrowserMob|HttpMonitor|YandexBot|Slurp|BingPreview|PagePeeker|ThumbShotsBot|WebThumb|URL2PNG|ZooShot|GomezA|Catchpoint bot|Willow Internet Crawler|Google SketchUp|Read%20Later)' - - - regex: '(Symphony) (\d+).(\d+)' - - - regex: '(Minimo)' - - # Chrome Mobile - - regex: '(CrMo)/(\d+)\.(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Chrome Mobile' - - regex: '(CriOS)/(\d+)\.(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Chrome Mobile iOS' - - regex: '(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+) Mobile' - family_replacement: 'Chrome Mobile' - - # Chrome Frame must come before MSIE. - - regex: '(chromeframe)/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Chrome Frame' - - # UC Browser - - regex: '(UCBrowser)[ /](\d+)\.(\d+)\.(\d+)' - family_replacement: 'UC Browser' - - regex: '(UC Browser)[ /](\d+)\.(\d+)\.(\d+)' - - regex: '(UC Browser|UCBrowser|UCWEB)(\d+)\.(\d+)\.(\d+)' - family_replacement: 'UC Browser' - - # Tizen Browser (second case included in browser/major.minor regex) - - regex: '(SLP Browser)/(\d+)\.(\d+)' - family_replacement: 'Tizen Browser' - - # Sogou Explorer 2.X - - regex: '(SE 2\.X) MetaSr (\d+)\.(\d+)' - family_replacement: 'Sogou Explorer' - - # Baidu Browsers (desktop spoofs chrome & IE, explorer is mobile) - - regex: '(baidubrowser)[/\s](\d+)' - family_replacement: 'Baidu Browser' - - regex: '(FlyFlow)/(\d+)\.(\d+)' - family_replacement: 'Baidu Explorer' - - # QQ Browsers - - regex: '(MQQBrowser/Mini)(?:(\d+)(?:\.(\d+)(?:\.(\d+))?)?)?' - family_replacement: 'QQ Browser Mini' - - regex: '(MQQBrowser)(?:/(\d+)(?:\.(\d+)(?:\.(\d+))?)?)?' - family_replacement: 'QQ Browser Mobile' - - regex: '(QQBrowser)(?:/(\d+)(?:\.(\d+)\.(\d+)(?:\.(\d+))?)?)?' - family_replacement: 'QQ Browser' - - # Pingdom - - regex: '(Pingdom.com_bot_version_)(\d+)\.(\d+)' - family_replacement: 'PingdomBot' - - # Facebook - - regex: '(facebookexternalhit)/(\d+)\.(\d+)' - family_replacement: 'FacebookBot' - - # LinkedIn - - regex: '(LinkedInBot)/(\d+)\.(\d+)' - family_replacement: 'LinkedInBot' - - # Twitterbot - - regex: '(Twitterbot)/(\d+)\.(\d+)' - family_replacement: 'TwitterBot' - - # Google Plus - - regex: 'Google.*/\+/web/snippet' - family_replacement: 'GooglePlusBot' - - # Rackspace Monitoring - - regex: '(Rackspace Monitoring)/(\d+)\.(\d+)' - family_replacement: 'RackspaceBot' - - # PyAMF - - regex: '(PyAMF)/(\d+)\.(\d+)\.(\d+)' - - # Yandex Browser - - regex: '(YaBrowser)/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Yandex Browser' - - # Mail.ru Amigo/Internet Browser (Chromium-based) - - regex: '(Chrome)/(\d+)\.(\d+)\.(\d+).* MRCHROME' - family_replacement: 'Mail.ru Chromium Browser' - - # AOL Browser (IE-based) - - regex: '(AOL) (\d+)\.(\d+); AOLBuild (\d+)' - - #### END SPECIAL CASES TOP #### - - #### MAIN CASES - this catches > 50% of all browsers #### - - # Browser/major_version.minor_version.beta_version - - regex: '(AdobeAIR|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Epiphany|Shiira|Sunrise|Flock|Netscape|Lunascape|WebPilot|NetFront|Netfront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|ThunderBrowse|Iris|UP\.Browser|Bunjalloo|Google Earth|Raven for Mac|Openwave)/(\d+)\.(\d+)\.(\d+)' - - # Outlook 2007 - - regex: 'MSOffice 12' - family_replacement: 'Outlook' - v1_replacement: '2007' - - # Outlook 2010 - - regex: 'MSOffice 14' - family_replacement: 'Outlook' - v1_replacement: '2010' - - # Outlook 2013 - - regex: 'Microsoft Outlook 15\.\d+\.\d+' - family_replacement: 'Outlook' - v1_replacement: '2013' - - # Apple Air Mail - - regex: '(Airmail) (\d+)\.(\d+)(?:\.(\d+))?' - - # Thunderbird - - regex: '(Thunderbird)/(\d+)\.(\d+)\.(\d+(?:pre)?)' - family_replacement: 'Thunderbird' - - # Chrome/Chromium/major_version.minor_version.beta_version - - regex: '(Chromium|Chrome)/(\d+)\.(\d+)\.(\d+)' - - # Dolphin Browser - # @ref: http://www.dolphin.com - - regex: '\b(Dolphin)(?: |HDCN/|/INT\-)(\d+)\.(\d+)\.?(\d+)?' - - # Browser/major_version.minor_version - - regex: '(bingbot|Bolt|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|NetNewsWire|Space Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Planetweb|ICE Browser|mDolphin)/(\d+)\.(\d+)\.?(\d+)?' - - # Chrome/Chromium/major_version.minor_version - - regex: '(Chromium|Chrome)/(\d+)\.(\d+)' - - # Browser major_version.minor_version.beta_version (space instead of slash) - - regex: '(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\d+)\.(\d+)\.(\d+)' - # Browser major_version.minor_version (space instead of slash) - - regex: '(iCab|Lunascape|Opera|Android|Jasmine|Polaris) (\d+)\.(\d+)\.?(\d+)?' - - # Kindle WebKit - - regex: '(Kindle)/(\d+)\.(\d+)' - - # weird android UAs - - regex: '(Android) Donut' - v1_replacement: '1' - v2_replacement: '2' - - - regex: '(Android) Eclair' - v1_replacement: '2' - v2_replacement: '1' - - - regex: '(Android) Froyo' - v1_replacement: '2' - v2_replacement: '2' - - - regex: '(Android) Gingerbread' - v1_replacement: '2' - v2_replacement: '3' - - - regex: '(Android) Honeycomb' - v1_replacement: '3' - - # IE Mobile - - regex: '(IEMobile)[ /](\d+)\.(\d+)' - family_replacement: 'IE Mobile' - # desktop mode - # http://www.anandtech.com/show/3982/windows-phone-7-review - - regex: '(MSIE) (\d+)\.(\d+).*XBLWP7' - family_replacement: 'IE Large Screen' - - #### END MAIN CASES #### - - #### SPECIAL CASES #### - - regex: '(Obigo)InternetBrowser' - - regex: '(Obigo)\-Browser' - - regex: '(Obigo|OBIGO)[^\d]*(\d+)(?:.(\d+))?' - family_replacement: 'Obigo' - - - regex: '(MAXTHON|Maxthon) (\d+)\.(\d+)' - family_replacement: 'Maxthon' - - regex: '(Maxthon|MyIE2|Uzbl|Shiira)' - v1_replacement: '0' - - - regex: 'PLAYSTATION 3.+WebKit' - family_replacement: 'NetFront NX' - - regex: 'PLAYSTATION 3' - family_replacement: 'NetFront' - - regex: '(PlayStation Portable)' - family_replacement: 'NetFront' - - regex: '(PlayStation Vita)' - family_replacement: 'NetFront NX' - - - regex: 'AppleWebKit.+ (NX)/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'NetFront NX' - - regex: '(Nintendo 3DS)' - family_replacement: 'NetFront NX' - - - regex: '(BrowseX) \((\d+)\.(\d+)\.(\d+)' - - - regex: '(NCSA_Mosaic)/(\d+)\.(\d+)' - family_replacement: 'NCSA Mosaic' - - # Polaris/d.d is above - - regex: '(POLARIS)/(\d+)\.(\d+)' - family_replacement: 'Polaris' - - regex: '(Embider)/(\d+)\.(\d+)' - family_replacement: 'Polaris' - - - regex: '(BonEcho)/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Bon Echo' - - # @note: iOS / OSX Applications - - regex: '(CFNetwork)(?:/(\d+)\.(\d+)\.?(\d+)?)?' - family_replacement: 'CFNetwork' - - - regex: '(iPod).+Version/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Mobile Safari' - - regex: '(iPod).*Version/(\d+)\.(\d+)' - family_replacement: 'Mobile Safari' - - regex: '(iPhone).*Version/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Mobile Safari' - - regex: '(iPhone).*Version/(\d+)\.(\d+)' - family_replacement: 'Mobile Safari' - - regex: '(iPad).*Version/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Mobile Safari' - - regex: '(iPad).*Version/(\d+)\.(\d+)' - family_replacement: 'Mobile Safari' - - regex: '(iPod|iPhone|iPad);.*CPU.*OS (\d+)(?:_\d+)?_(\d+).*Mobile' - family_replacement: 'Mobile Safari' - - regex: '(iPod|iPhone|iPad)' - family_replacement: 'Mobile Safari' - - - regex: '(AvantGo) (\d+).(\d+)' - - - regex: '(OneBrowser)/(\d+).(\d+)' - family_replacement: 'ONE Browser' - - - regex: '(Avant)' - v1_replacement: '1' - - # This is the Tesla Model S (see similar entry in device parsers) - - regex: '(QtCarBrowser)' - v1_replacement: '1' - - - regex: '^(iBrowser/Mini)(\d+).(\d+)' - family_replacement: 'iBrowser Mini' - - regex: '^(iBrowser|iRAPP)/(\d+).(\d+)' - - # nokia browsers - # based on: http://www.developer.nokia.com/Community/Wiki/User-Agent_headers_for_Nokia_devices - - regex: '^(Nokia)' - family_replacement: 'Nokia Services (WAP) Browser' - - regex: '(NokiaBrowser)/(\d+)\.(\d+).(\d+)\.(\d+)' - family_replacement: 'Nokia Browser' - - regex: '(NokiaBrowser)/(\d+)\.(\d+).(\d+)' - family_replacement: 'Nokia Browser' - - regex: '(NokiaBrowser)/(\d+)\.(\d+)' - family_replacement: 'Nokia Browser' - - regex: '(BrowserNG)/(\d+)\.(\d+).(\d+)' - family_replacement: 'Nokia Browser' - - regex: '(Series60)/5\.0' - family_replacement: 'Nokia Browser' - v1_replacement: '7' - v2_replacement: '0' - - regex: '(Series60)/(\d+)\.(\d+)' - family_replacement: 'Nokia OSS Browser' - - regex: '(S40OviBrowser)/(\d+)\.(\d+)\.(\d+)\.(\d+)' - family_replacement: 'Ovi Browser' - - regex: '(Nokia)[EN]?(\d+)' - - # BlackBerry devices - - regex: '(BB10);' - family_replacement: 'BlackBerry WebKit' - - regex: '(PlayBook).+RIM Tablet OS (\d+)\.(\d+)\.(\d+)' - family_replacement: 'BlackBerry WebKit' - - regex: '(Black[bB]erry).+Version/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'BlackBerry WebKit' - - regex: '(Black[bB]erry)\s?(\d+)' - family_replacement: 'BlackBerry' - - - regex: '(OmniWeb)/v(\d+)\.(\d+)' - - - regex: '(Blazer)/(\d+)\.(\d+)' - family_replacement: 'Palm Blazer' - - - regex: '(Pre)/(\d+)\.(\d+)' - family_replacement: 'Palm Pre' - - # fork of Links - - regex: '(ELinks)/(\d+)\.(\d+)' - - regex: '(ELinks) \((\d+)\.(\d+)' - - regex: '(Links) \((\d+)\.(\d+)' - - - regex: '(QtWeb) Internet Browser/(\d+)\.(\d+)' - - #- regex: '\(iPad;.+(Version)/(\d+)\.(\d+)(?:\.(\d+))?.*Safari/' - # family_replacement: 'iPad' - - # Amazon Silk, should go before Safari - - regex: '(Silk)/(\d+)\.(\d+)(?:\.([0-9\-]+))?' - family_replacement: 'Amazon Silk' - - # Phantomjs, should go before Safari - - regex: '(PhantomJS)/(\d+)\.(\d+)\.(\d+)' - - # WebKit Nightly - - regex: '(AppleWebKit)/(\d+)\.?(\d+)?\+ .* Safari' - family_replacement: 'WebKit Nightly' - - # Safari - - regex: '(Version)/(\d+)\.(\d+)(?:\.(\d+))?.*Safari/' - family_replacement: 'Safari' - # Safari didn't provide "Version/d.d.d" prior to 3.0 - - regex: '(Safari)/\d+' - - - regex: '(OLPC)/Update(\d+)\.(\d+)' - - - regex: '(OLPC)/Update()\.(\d+)' - v1_replacement: '0' - - - regex: '(SEMC\-Browser)/(\d+)\.(\d+)' - - - regex: '(Teleca)' - family_replacement: 'Teleca Browser' - - - regex: '(Phantom)/V(\d+)\.(\d+)' - family_replacement: 'Phantom Browser' - - - regex: 'Trident(.*)rv.(\d+)\.(\d+)' - family_replacement: 'IE' - - # Apple Mail - - # apple mail - not directly detectable, have it after Safari stuff - - regex: '(AppleWebKit)/(\d+)\.(\d+)\.(\d+)' - family_replacement: 'AppleMail' - - # AFTER THE EDGE CASES ABOVE! - # AFTER IE11 - # BEFORE all other IE - - regex: '(Firefox)/(\d+)\.(\d+)\.(\d+)' - - regex: '(Firefox)/(\d+)\.(\d+)(pre|[ab]\d+[a-z]*)?' - - - regex: '([MS]?IE) (\d+)\.(\d+)' - family_replacement: 'IE' - - - regex: '(python-requests)/(\d+)\.(\d+)' - family_replacement: 'Python Requests' - -os_parsers: - ########## - # HbbTV vendors - ########## - - # starts with the easy one : Panasonic seems consistent across years, hope it will continue - #HbbTV/1.1.1 (;Panasonic;VIERA 2011;f.532;0071-0802 2000-0000;) - #HbbTV/1.1.1 (;Panasonic;VIERA 2012;1.261;0071-3103 2000-0000;) - #HbbTV/1.2.1 (;Panasonic;VIERA 2013;3.672;4101-0003 0002-0000;) - #- regex: 'HbbTV/\d+\.\d+\.\d+ \(;(Panasonic);VIERA ([0-9]{4});' - - # Sony is consistent too but do not place year like the other - # Opera/9.80 (Linux armv7l; HbbTV/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto/2.12.362 Version/12.11 - # Opera/9.80 (Linux mips; U; HbbTV/1.1.1 (; Sony; KDL40HX751; PKG1.902EUA; 2012;);; en) Presto/2.10.250 Version/11.60 - # Opera/9.80 (Linux mips; U; HbbTV/1.1.1 (; Sony; KDL22EX320; PKG4.017EUA; 2011;);; en) Presto/2.7.61 Version/11.00 - #- regex: 'HbbTV/\d+\.\d+\.\d+ \(; (Sony);.*;.*; ([0-9]{4});\)' - - - # LG is consistent too, but we need to add manually the year model - #Mozilla/5.0 (Unknown; Linux armv7l) AppleWebKit/537.1+ (KHTML, like Gecko) Safari/537.1+ HbbTV/1.1.1 ( ;LGE ;NetCast 4.0 ;03.20.30 ;1.0M ;) - #Mozilla/5.0 (DirectFB; Linux armv7l) AppleWebKit/534.26+ (KHTML, like Gecko) Version/5.0 Safari/534.26+ HbbTV/1.1.1 ( ;LGE ;NetCast 3.0 ;1.0 ;1.0M ;) - - regex: 'HbbTV/\d+\.\d+\.\d+ \( ;(LG)E ;NetCast 4.0' - os_v1_replacement: '2013' - - regex: 'HbbTV/\d+\.\d+\.\d+ \( ;(LG)E ;NetCast 3.0' - os_v1_replacement: '2012' - - # Samsung is on its way of normalizing their user-agent - # HbbTV/1.1.1 (;Samsung;SmartTV2013;T-FXPDEUC-1102.2;;) WebKit - # HbbTV/1.1.1 (;Samsung;SmartTV2013;T-MST12DEUC-1102.1;;) WebKit - # HbbTV/1.1.1 (;Samsung;SmartTV2012;;;) WebKit - # HbbTV/1.1.1 (;;;;;) Maple_2011 - - regex: 'HbbTV/1.1.1 \(;;;;;\) Maple_2011' - os_replacement: 'Samsung' - os_v1_replacement: '2011' - # manage the two models of 2013 - - regex: 'HbbTV/\d+\.\d+\.\d+ \(;(Samsung);SmartTV([0-9]{4});.*FXPDEUC' - os_v2_replacement: 'UE40F7000' - - regex: 'HbbTV/\d+\.\d+\.\d+ \(;(Samsung);SmartTV([0-9]{4});.*MST12DEUC' - os_v2_replacement: 'UE32F4500' - # generic Samsung (works starting in 2012) - #- regex: 'HbbTV/\d+\.\d+\.\d+ \(;(Samsung);SmartTV([0-9]{4});' - - # Philips : not found any other way than a manual mapping - # Opera/9.80 (Linux mips; U; HbbTV/1.1.1 (; Philips; ; ; ; ) CE-HTML/1.0 NETTV/4.1.3 PHILIPSTV/1.1.1; en) Presto/2.10.250 Version/11.60 - # Opera/9.80 (Linux mips ; U; HbbTV/1.1.1 (; Philips; ; ; ; ) CE-HTML/1.0 NETTV/3.2.1; en) Presto/2.6.33 Version/10.70 - - regex: 'HbbTV/1.1.1 \(; (Philips);.*NETTV/4' - os_v1_replacement: '2013' - - regex: 'HbbTV/1.1.1 \(; (Philips);.*NETTV/3' - os_v1_replacement: '2012' - - regex: 'HbbTV/1.1.1 \(; (Philips);.*NETTV/2' - os_v1_replacement: '2011' - - # the HbbTV emulator developers use HbbTV/1.1.1 (;;;;;) firetv-firefox-plugin 1.1.20 - - regex: 'HbbTV/\d+\.\d+\.\d+.*(firetv)-firefox-plugin (\d+).(\d+).(\d+)' - os_replacement: 'FireHbbTV' - - # generic HbbTV, hoping to catch manufacturer name (always after 2nd comma) and the first string that looks like a 2011-2019 year - - regex: 'HbbTV/\d+\.\d+\.\d+ \(.*; ?([a-zA-Z]+) ?;.*(201[1-9]).*\)' - - ########## - # Android - # can actually detect rooted android os. do we care? - ########## - - regex: '(Android)[ \-/](\d+)\.(\d+)(?:[.\-]([a-z0-9]+))?' - - - regex: '(Android) Donut' - os_v1_replacement: '1' - os_v2_replacement: '2' - - - regex: '(Android) Eclair' - os_v1_replacement: '2' - os_v2_replacement: '1' - - - regex: '(Android) Froyo' - os_v1_replacement: '2' - os_v2_replacement: '2' - - - regex: '(Android) Gingerbread' - os_v1_replacement: '2' - os_v2_replacement: '3' - - - regex: '(Android) Honeycomb' - os_v1_replacement: '3' - - # UCWEB - - regex: '^UCWEB.*; (Adr) (\d+)\.(\d+)(?:[.\-]([a-z0-9]+))?;' - os_replacement: 'Android' - - regex: '^UCWEB.*; (iPad OS|iPh OS) (\d+)_(\d+)(?:_(\d+))?;' - os_replacement: 'iOS' - - regex: '^UCWEB.*; (wds) (\d+)\.(\d+)(?:\.(\d+))?;' - os_replacement: 'Windows Phone' - # JUC - - regex: '^(JUC).*; ?U; ?(?:Android)?(\d+)\.(\d+)(?:[\.\-]([a-z0-9]+))?' - os_replacement: 'Android' - - ########## - # Kindle Android - ########## - - regex: '(Silk-Accelerated=[a-z]{4,5})' - os_replacement: 'Android' - - ########## - # Windows - # http://en.wikipedia.org/wiki/Windows_NT#Releases - # possibility of false positive when different marketing names share same NT kernel - # e.g. windows server 2003 and windows xp - # lots of ua strings have Windows NT 4.1 !?!?!?!? !?!? !? !????!?! !!! ??? !?!?! ? - # (very) roughly ordered in terms of frequency of occurence of regex (win xp currently most frequent, etc) - ########## - - # ie mobile desktop mode - # spoofs nt 6.1. must come before windows 7 - - regex: '(XBLWP7)' - os_replacement: 'Windows Phone' - - # @note: These need to come before Windows NT 6.1 - - regex: '(Windows Phone) (?:OS[ /])?(\d+)\.(\d+)' - - regex: '(Windows ?Mobile)' - os_replacement: 'Windows Mobile' - - - regex: '(Windows (?:NT 5\.2|NT 5\.1))' - os_replacement: 'Windows XP' - - - regex: '(Windows NT 6\.1)' - os_replacement: 'Windows 7' - - - regex: '(Windows NT 6\.0)' - os_replacement: 'Windows Vista' - - - regex: '(Win 9x 4\.90)' - os_replacement: 'Windows ME' - - - regex: '(Windows 98|Windows XP|Windows ME|Windows 95|Windows CE|Windows 7|Windows NT 4\.0|Windows Vista|Windows 2000|Windows 3.1)' - - - regex: '(Windows NT 6\.2; ARM;)' - os_replacement: 'Windows RT' - - regex: '(Windows NT 6\.2)' - os_replacement: 'Windows 8' - - - regex: '(Windows NT 6\.3; ARM;)' - os_replacement: 'Windows RT 8.1' - - regex: '(Windows NT 6\.3)' - os_replacement: 'Windows 8.1' - - - regex: '(Windows NT 5\.0)' - os_replacement: 'Windows 2000' - - - regex: '(WinNT4.0)' - os_replacement: 'Windows NT 4.0' - - - regex: '(Windows ?CE)' - os_replacement: 'Windows CE' - - - regex: 'Win ?(95|98|3.1|NT|ME|2000)' - os_replacement: 'Windows $1' - - - regex: 'Win16' - os_replacement: 'Windows 3.1' - - - regex: 'Win32' - os_replacement: 'Windows 95' - - ########## - # Tizen OS from Samsung - # spoofs Android so pushing it above - ########## - - regex: '(Tizen)/(\d+)\.(\d+)' - - ########## - # Mac OS - # @ref: http://en.wikipedia.org/wiki/Mac_OS_X#Versions - # @ref: http://www.puredarwin.org/curious/versions - ########## - - regex: '(Mac OS X) (\d+)[_.](\d+)(?:[_.](\d+))?' - # Leopard - - regex: ' (Dar)(win)/(9).(\d+).*\((?:i386|x86_64|Power Macintosh)\)' - os_replacement: 'Mac OS X' - os_v1_replacement: '10' - os_v2_replacement: '5' - # Snow Leopard - - regex: ' (Dar)(win)/(10).(\d+).*\((?:i386|x86_64)\)' - os_replacement: 'Mac OS X' - os_v1_replacement: '10' - os_v2_replacement: '6' - # Lion - - regex: ' (Dar)(win)/(11).(\d+).*\((?:i386|x86_64)\)' - os_replacement: 'Mac OS X' - os_v1_replacement: '10' - os_v2_replacement: '7' - # Mountain Lion - - regex: ' (Dar)(win)/(12).(\d+).*\((?:i386|x86_64)\)' - os_replacement: 'Mac OS X' - os_v1_replacement: '10' - os_v2_replacement: '8' - # Mavericks - - regex: ' (Dar)(win)/(13).(\d+).*\((?:i386|x86_64)\)' - os_replacement: 'Mac OS X' - os_v1_replacement: '10' - os_v2_replacement: '9' - - # IE on Mac doesn't specify version number - - regex: 'Mac_PowerPC' - os_replacement: 'Mac OS' - - # builds before tiger don't seem to specify version? - - # ios devices spoof (mac os x), so including intel/ppc prefixes - - regex: '(?:PPC|Intel) (Mac OS X)' - - ########## - # iOS - # http://en.wikipedia.org/wiki/IOS_version_history - ########## - - regex: '(CPU OS|iPhone OS|CPU iPhone) +(\d+)[_\.](\d+)(?:[_\.](\d+))?' - os_replacement: 'iOS' - - # remaining cases are mostly only opera uas, so catch opera as to not catch iphone spoofs - - regex: '(iPhone|iPad|iPod); Opera' - os_replacement: 'iOS' - - # few more stragglers - - regex: '(iPhone|iPad|iPod).*Mac OS X.*Version/(\d+)\.(\d+)' - os_replacement: 'iOS' - - - regex: '(AppleTV)/(\d+)\.(\d+)' - os_replacement: 'ATV OS X' - - ########## - # CFNetwork iOS Apps - # @ref: https://en.wikipedia.org/wiki/Darwin_(operating_system)#Release_history - ########## - - regex: 'CFNetwork/.* Darwin/(9)\.\d+' - os_replacement: 'iOS' - os_v1_replacement: '1' - - regex: 'CFNetwork/.* Darwin/(10)\.\d+' - os_replacement: 'iOS' - os_v1_replacement: '4' - - regex: 'CFNetwork/.* Darwin/(11)\.\d+' - os_replacement: 'iOS' - os_v1_replacement: '5' - - regex: 'CFNetwork/.* Darwin/(13)\.\d+' - os_replacement: 'iOS' - os_v1_replacement: '6' - - regex: 'CFNetwork/.* Darwin/(14)\.\d+' - os_replacement: 'iOS' - os_v1_replacement: '7' - # iOS Apps - - regex: '\b(iOS[ /]|iPhone(?:/| v|[ _]OS[/,]|; | OS : |\d,\d/|\d,\d; )|iPad/)(\d{1,2})[_\.](\d{1,2})(?:[_\.](\d+))?' - os_replacement: 'iOS' - - ########## - # Chrome OS - # if version 0.0.0, probably this stuff: - # http://code.google.com/p/chromium-os/issues/detail?id=11573 - # http://code.google.com/p/chromium-os/issues/detail?id=13790 - ########## - - regex: '(CrOS) [a-z0-9_]+ (\d+)\.(\d+)(?:\.(\d+))?' - os_replacement: 'Chrome OS' - - ########## - # Linux distros - ########## - - regex: '([Dd]ebian)' - os_replacement: 'Debian' - - regex: '(Linux Mint)(?:/(\d+))?' - - regex: '(Mandriva)(?: Linux)?/(?:[\d.-]+m[a-z]{2}(\d+).(\d))?' - - ########## - # Symbian + Symbian OS - # http://en.wikipedia.org/wiki/History_of_Symbian - ########## - - regex: '(Symbian[Oo][Ss])[/ ](\d+)\.(\d+)' - os_replacement: 'Symbian OS' - - regex: '(Symbian/3).+NokiaBrowser/7\.3' - os_replacement: 'Symbian^3 Anna' - - regex: '(Symbian/3).+NokiaBrowser/7\.4' - os_replacement: 'Symbian^3 Belle' - - regex: '(Symbian/3)' - os_replacement: 'Symbian^3' - - regex: '\b(Series 60|SymbOS|S60Version|S60V\d|S60\b)' - os_replacement: 'Symbian OS' - - regex: '(MeeGo)' - - regex: 'Symbian [Oo][Ss]' - os_replacement: 'Symbian OS' - - regex: 'Series40;' - os_replacement: 'Nokia Series 40' - - regex: 'Series30Plus;' - os_replacement: 'Nokia Series 30 Plus' - - ########## - # BlackBerry devices - ########## - - regex: '(BB10);.+Version/(\d+)\.(\d+)\.(\d+)' - os_replacement: 'BlackBerry OS' - - regex: '(Black[Bb]erry)[0-9a-z]+/(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?' - os_replacement: 'BlackBerry OS' - - regex: '(Black[Bb]erry).+Version/(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?' - os_replacement: 'BlackBerry OS' - - regex: '(RIM Tablet OS) (\d+)\.(\d+)\.(\d+)' - os_replacement: 'BlackBerry Tablet OS' - - regex: '(Play[Bb]ook)' - os_replacement: 'BlackBerry Tablet OS' - - regex: '(Black[Bb]erry)' - os_replacement: 'BlackBerry OS' - - ########## - # Firefox OS - ########## - - regex: '\((?:Mobile|Tablet);.+Firefox/\d+\.\d+' - os_replacement: 'Firefox OS' - - ########## - # BREW - # yes, Brew is lower-cased for Brew MP - ########## - - regex: '(BREW)[ /](\d+)\.(\d+)\.(\d+)' - - regex: '(BREW);' - - regex: '(Brew MP|BMP)[ /](\d+)\.(\d+)\.(\d+)' - os_replacement: 'Brew MP' - - regex: 'BMP;' - os_replacement: 'Brew MP' - - ########## - # Google TV - ########## - - regex: '(GoogleTV)(?: (\d+)\.(\d+)(?:\.(\d+))?|/[\da-z]+)' - - - regex: '(WebTV)/(\d+).(\d+)' - - ########## - # Misc mobile - ########## - - regex: '(hpw|web)OS/(\d+)\.(\d+)(?:\.(\d+))?' - os_replacement: 'webOS' - - regex: '(VRE);' - - ########## - # Generic patterns - # since the majority of os cases are very specific, these go last - ########## - - regex: '(Fedora|Red Hat|PCLinuxOS|Puppy|Ubuntu|Kindle|Bada|Lubuntu|BackTrack|Slackware|(?:Free|Open|Net|\b)BSD)[/ ](\d+)\.(\d+)(?:\.(\d+)(?:\.(\d+))?)?' - - # Gentoo Linux + Kernel Version - - regex: '(Linux)[ /](\d+)\.(\d+)(?:\.(\d+))?.*gentoo' - os_replacement: 'Gentoo' - - # Opera Mini Bada - - regex: '\((Bada);' - - # just os - - regex: '(Windows|Android|WeTab|Maemo)' - - regex: '(Ubuntu|Kubuntu|Arch Linux|CentOS|Slackware|Gentoo|openSUSE|SUSE|Red Hat|Fedora|PCLinuxOS|Gentoo|Mageia|(?:Free|Open|Net|\b)BSD)' - # Linux + Kernel Version - - regex: '(Linux)(?:[ /](\d+)\.(\d+)(?:\.(\d+))?)?' - - regex: 'SunOS' - os_replacement: 'Solaris' - -device_parsers: - ########## - # incomplete! - # multiple replacement placeholds i.e. ($1) ($2) help solve problem of single device with multiple representations in ua - # e.g. HTC Dream S should parse to the same device as HTC_DreamS - ########## - - ########## - # incomplete! - # HTC - # http://en.wikipedia.org/wiki/List_of_HTC_phones - # this is quickly getting unwieldy - ########## - # example: Mozilla/5.0 (Linux; U; Android 2.3.2; fr-fr; HTC HD2 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - - regex: 'HTC ([A-Z][a-z0-9]+) Build' - device_replacement: 'HTC $1' - # example: Mozilla/5.0 (Linux; U; Android 2.1; es-es; HTC Legend 1.23.161.1 Build/ERD79) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17,gzip - - regex: 'HTC ([A-Z][a-z0-9 ]+) \d+\.\d+\.\d+\.\d+' - device_replacement: 'HTC $1' - # example: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; HTC_Touch_Diamond2_T5353; Windows Phone 6.5.3.5) - - regex: 'HTC_Touch_([A-Za-z0-9]+)' - device_replacement: 'HTC Touch ($1)' - # should come after HTC_Touch - - regex: 'USCCHTC(\d+)' - device_replacement: 'HTC $1 (US Cellular)' - - regex: 'Sprint APA(9292)' - device_replacement: 'HTC $1 (Sprint)' - - regex: 'HTC ([A-Za-z0-9]+ [A-Z])' - device_replacement: 'HTC $1' - - regex: 'HTC[-_/\s]([A-Za-z0-9]+)' - device_replacement: 'HTC $1' - - regex: '(ADR[A-Za-z0-9]+)' - device_replacement: 'HTC $1' - - regex: '(HTC)' - - # Tesla Model S - - regex: '(QtCarBrowser)' - device_replacement: 'Tesla Model S' - - # Samsung - - regex: '(SamsungSGHi560)' - device_replacement: 'Samsung SGHi560' - - ######### - # Ericsson - must come before nokia since they also use symbian - ######### - - regex: 'SonyEricsson([A-Za-z0-9]+)/' - device_replacement: 'Ericsson $1' - - ########## - # PlayStation - # The Vita spoofs the Kindle - ########## - - regex: 'PLAYSTATION 3' - device_replacement: 'PlayStation 3' - - regex: '(PlayStation Portable)' - - regex: '(PlayStation Vita)' - - ########## - # incomplete! - # Kindle - # http://amazonsilk.wordpress.com/useful-bits/silk-user-agent/ - ########## - - regex: '(KFOT Build)' - device_replacement: 'Kindle Fire' - - regex: '(KFTT Build)' - device_replacement: 'Kindle Fire HD' - - regex: '(KFJWI Build)' - device_replacement: 'Kindle Fire HD 8.9" WiFi' - - regex: '(KFJWA Build)' - device_replacement: 'Kindle Fire HD 8.9" 4G' - - regex: '(KFSOWI Build)' - device_replacement: 'Kindle Fire HD 7" WiFi' - - regex: '(KFTHWI Build)' - device_replacement: 'Kindle Fire HDX 7" WiFi' - - regex: '(KFTHWA Build)' - device_replacement: 'Kindle Fire HDX 7" 4G' - - regex: '(KFAPWI Build)' - device_replacement: 'Kindle Fire HDX 8.9" WiFi' - - regex: '(KFAPWA Build)' - device_replacement: 'Kindle Fire HDX 8.9" 4G' - - regex: '(Kindle Fire)' - - regex: '(Kindle)' - - regex: '(Silk)/(\d+)\.(\d+)(?:\.([0-9\-]+))?' - device_replacement: 'Kindle Fire' - - ######### - # Android General Device Matching (far from perfect) - ######### - - regex: 'Android[\- ][\d]+\.[\d]+; [A-Za-z]{2}\-[A-Za-z]{0,2}; WOWMobile (.+) Build' - - regex: 'Android[\- ][\d]+\.[\d]+\-update1; [A-Za-z]{2}\-[A-Za-z]{0,2}; (.+) Build' - - regex: 'Android[\- ][\d]+\.[\d]+\.[\d]+; [A-Za-z]{2}\-[A-Za-z]{0,2}; (.+) Build' - - regex: 'Android[\- ][\d]+\.[\d]+\.[\d]+;[A-Za-z]{2}\-[A-Za-z]{0,2};(.+) Build' - - regex: 'Android[\- ][\d]+\.[\d]+; [A-Za-z]{2}\-[A-Za-z]{0,2}; (.+) Build' - - regex: 'Android[\- ][\d]+\.[\d]+\.[\d]+; (.+) Build' - - regex: 'Android[\- ][\d]+\.[\d]+; (.+) Build' - - ########## - # NOKIA - # nokia NokiaN8-00 comes before iphone. sometimes spoofs iphone - ########## - - regex: 'NokiaN([0-9]+)' - device_replacement: 'Nokia N$1' - - regex: 'NOKIA([A-Za-z0-9\v-]+)' - device_replacement: 'Nokia $1' - - regex: 'Nokia([A-Za-z0-9\v-]+)' - device_replacement: 'Nokia $1' - - regex: 'NOKIA ([A-Za-z0-9\-]+)' - device_replacement: 'Nokia $1' - - regex: 'Nokia ([A-Za-z0-9\-]+)' - device_replacement: 'Nokia $1' - - regex: 'Lumia ([A-Za-z0-9\-]+)' - device_replacement: 'Lumia $1' - - regex: 'Symbian' - device_replacement: 'Nokia' - - ########## - # BlackBerry - # http://www.useragentstring.com/pages/BlackBerry/ - ########## - - regex: 'BB10; ([A-Za-z0-9\- ]+)\)' - device_replacement: 'BlackBerry $1' - - regex: '(PlayBook).+RIM Tablet OS' - device_replacement: 'BlackBerry Playbook' - - regex: 'Black[Bb]erry ([0-9]+);' - device_replacement: 'BlackBerry $1' - - regex: 'Black[Bb]erry([0-9]+)' - device_replacement: 'BlackBerry $1' - - regex: 'Black[Bb]erry;' - device_replacement: 'BlackBerry' - - ########## - # PALM / HP - ########## - # some palm devices must come before iphone. sometimes spoofs iphone in ua - - regex: '(Pre)/(\d+)\.(\d+)' - device_replacement: 'Palm Pre' - - regex: '(Pixi)/(\d+)\.(\d+)' - device_replacement: 'Palm Pixi' - - regex: '(Touch[Pp]ad)/(\d+)\.(\d+)' - device_replacement: 'HP TouchPad' - - regex: 'HPiPAQ([A-Za-z0-9]+)/(\d+).(\d+)' - device_replacement: 'HP iPAQ $1' - - regex: 'Palm([A-Za-z0-9]+)' - device_replacement: 'Palm $1' - - regex: 'Treo([A-Za-z0-9]+)' - device_replacement: 'Palm Treo $1' - - regex: 'webOS.*(P160UNA)/(\d+).(\d+)' - device_replacement: 'HP Veer' - - ########## - # AppleTV - # No built in browser that I can tell - # Stack Overflow indicated iTunes-AppleTV/4.1 as a known UA for app available and I'm seeing it in live traffic - ########## - - regex: '(AppleTV)' - device_replacement: 'AppleTV' - - ########## - # Catch the google mobile crawler before checking for iPhones. - ########## - - - regex: 'AdsBot-Google-Mobile' - device_replacement: 'Spider' - - - regex: 'Googlebot-Mobile/(\d+).(\d+)' - device_replacement: 'Spider' - - - regex: 'Googlebot/\d+.\d+' - device_replacement: 'Spider' - - ########## - # complete but probably catches spoofs - # iSTUFF - ########## - # ipad and ipod must be parsed before iphone - # cannot determine specific device type from ua string. (3g, 3gs, 4, etc) - - regex: '(iPad) Simulator;' - - regex: '(iPad);' - - regex: '(iPod) touch;' - - regex: '(iPod);' - - regex: '(iPhone) Simulator;' - - regex: '(iPhone);' - - ########## - # Acer - ########## - - regex: 'acer_([A-Za-z0-9]+)_' - device_replacement: 'Acer $1' - - regex: 'acer_([A-Za-z0-9]+)_' - device_replacement: 'Acer $1' - - ########## - # Alcatel - ########## - - regex: 'ALCATEL-([A-Za-z0-9]+)' - device_replacement: 'Alcatel $1' - - regex: 'Alcatel-([A-Za-z0-9]+)' - device_replacement: 'Alcatel $1' - - ########## - # Amoi - ########## - - regex: 'Amoi\-([A-Za-z0-9]+)' - device_replacement: 'Amoi $1' - - regex: 'AMOI\-([A-Za-z0-9]+)' - device_replacement: 'Amoi $1' - - ########## - # Amoi - ########## - - regex: 'Asus\-([A-Za-z0-9]+)' - device_replacement: 'Asus $1' - - regex: 'ASUS\-([A-Za-z0-9]+)' - device_replacement: 'Asus $1' - - ########## - # Bird - ########## - - regex: 'BIRD\-([A-Za-z0-9]+)' - device_replacement: 'Bird $1' - - regex: 'BIRD\.([A-Za-z0-9]+)' - device_replacement: 'Bird $1' - - regex: 'BIRD ([A-Za-z0-9]+)' - device_replacement: 'Bird $1' - - ########## - # Dell - ########## - - regex: 'Dell ([A-Za-z0-9]+)' - device_replacement: 'Dell $1' - - ########## - # DoCoMo - ########## - - regex: 'DoCoMo/2\.0 ([A-Za-z0-9]+)' - device_replacement: 'DoCoMo $1' - - regex: '([A-Za-z0-9]+)_W\;FOMA' - device_replacement: 'DoCoMo $1' - - regex: '([A-Za-z0-9]+)\;FOMA' - device_replacement: 'DoCoMo $1' - - ########## - # Huawei - ########## - - regex: 'Huawei([A-Za-z0-9]+)' - device_replacement: 'Huawei $1' - - regex: 'HUAWEI-([A-Za-z0-9]+)' - device_replacement: 'Huawei $1' - - regex: 'vodafone([A-Za-z0-9]+)' - device_replacement: 'Huawei Vodafone $1' - - ########## - # i-mate - ########## - - regex: 'i\-mate ([A-Za-z0-9]+)' - device_replacement: 'i-mate $1' - - ########## - # kyocera - ########## - - regex: 'Kyocera\-([A-Za-z0-9]+)' - device_replacement: 'Kyocera $1' - - regex: 'KWC\-([A-Za-z0-9]+)' - device_replacement: 'Kyocera $1' - - ########## - # lenovo - ########## - - regex: 'Lenovo\-([A-Za-z0-9]+)' - device_replacement: 'Lenovo $1' - - regex: 'Lenovo_([A-Za-z0-9]+)' - device_replacement: 'Lenovo $1' - - ########## - # HbbTV (European and Australian standard) - # written before the LG regexes, as LG is making HbbTV too - ########## - - regex: '(HbbTV)/[0-9]+\.[0-9]+\.[0-9]+' - - ########## - # lg - ########## - - regex: 'LG/([A-Za-z0-9]+)' - device_replacement: 'LG $1' - - regex: 'LG-LG([A-Za-z0-9]+)' - device_replacement: 'LG $1' - - regex: 'LGE-LG([A-Za-z0-9]+)' - device_replacement: 'LG $1' - - regex: 'LGE VX([A-Za-z0-9]+)' - device_replacement: 'LG $1' - - regex: 'LG ([A-Za-z0-9]+)' - device_replacement: 'LG $1' - - regex: 'LGE LG\-AX([A-Za-z0-9]+)' - device_replacement: 'LG $1' - - regex: 'LG\-([A-Za-z0-9]+)' - device_replacement: 'LG $1' - - regex: 'LGE\-([A-Za-z0-9]+)' - device_replacement: 'LG $1' - - regex: 'LG([A-Za-z0-9]+)' - device_replacement: 'LG $1' - - ########## - # kin - ########## - - regex: '(KIN)\.One (\d+)\.(\d+)' - device_replacement: 'Microsoft $1' - - regex: '(KIN)\.Two (\d+)\.(\d+)' - device_replacement: 'Microsoft $1' - - ########## - # motorola - ########## - - regex: '(Motorola)\-([A-Za-z0-9]+)' - - regex: 'MOTO\-([A-Za-z0-9]+)' - device_replacement: 'Motorola $1' - - regex: 'MOT\-([A-Za-z0-9]+)' - device_replacement: 'Motorola $1' - - ########## - # nintendo - ########## - - regex: '(Nintendo WiiU)' - device_replacement: 'Nintendo Wii U' - - regex: 'Nintendo (DS|3DS|DSi|Wii);' - device_replacement: 'Nintendo $1' - - ########## - # pantech - ########## - - regex: 'Pantech([A-Za-z0-9]+)' - device_replacement: 'Pantech $1' - - ########## - # philips - ########## - - regex: 'Philips([A-Za-z0-9]+)' - device_replacement: 'Philips $1' - - regex: 'Philips ([A-Za-z0-9]+)' - device_replacement: 'Philips $1' - - ########## - # Samsung - ########## - - regex: 'SAMSUNG-([A-Za-z0-9\-]+)' - device_replacement: 'Samsung $1' - - regex: 'SAMSUNG\; ([A-Za-z0-9\-]+)' - device_replacement: 'Samsung $1' - - ########## - # Sega - ########## - - regex: 'Dreamcast' - device_replacement: 'Sega Dreamcast' - - ########## - # Softbank - ########## - - regex: 'Softbank/1\.0/([A-Za-z0-9]+)' - device_replacement: 'Softbank $1' - - regex: 'Softbank/2\.0/([A-Za-z0-9]+)' - device_replacement: 'Softbank $1' - - ########## - # WebTV - ########## - - regex: '(WebTV)/(\d+).(\d+)' - - ########## - # Generic Smart Phone - ########## - - regex: '(hiptop|avantgo|plucker|xiino|blazer|elaine|up.browser|up.link|mmp|smartphone|midp|wap|vodafone|o2|pocket|mobile|pda)' - device_replacement: "Generic Smartphone" - - ########## - # Generic Feature Phone - ########## - - regex: '^(1207|3gso|4thp|501i|502i|503i|504i|505i|506i|6310|6590|770s|802s|a wa|acer|acs\-|airn|alav|asus|attw|au\-m|aur |aus |abac|acoo|aiko|alco|alca|amoi|anex|anny|anyw|aptu|arch|argo|bell|bird|bw\-n|bw\-u|beck|benq|bilb|blac|c55/|cdm\-|chtm|capi|comp|cond|craw|dall|dbte|dc\-s|dica|ds\-d|ds12|dait|devi|dmob|doco|dopo|el49|erk0|esl8|ez40|ez60|ez70|ezos|ezze|elai|emul|eric|ezwa|fake|fly\-|fly_|g\-mo|g1 u|g560|gf\-5|grun|gene|go.w|good|grad|hcit|hd\-m|hd\-p|hd\-t|hei\-|hp i|hpip|hs\-c|htc |htc\-|htca|htcg)' - device_replacement: 'Generic Feature Phone' - - regex: '^(htcp|htcs|htct|htc_|haie|hita|huaw|hutc|i\-20|i\-go|i\-ma|i230|iac|iac\-|iac/|ig01|im1k|inno|iris|jata|java|kddi|kgt|kgt/|kpt |kwc\-|klon|lexi|lg g|lg\-a|lg\-b|lg\-c|lg\-d|lg\-f|lg\-g|lg\-k|lg\-l|lg\-m|lg\-o|lg\-p|lg\-s|lg\-t|lg\-u|lg\-w|lg/k|lg/l|lg/u|lg50|lg54|lge\-|lge/|lynx|leno|m1\-w|m3ga|m50/|maui|mc01|mc21|mcca|medi|meri|mio8|mioa|mo01|mo02|mode|modo|mot |mot\-|mt50|mtp1|mtv |mate|maxo|merc|mits|mobi|motv|mozz|n100|n101|n102|n202|n203|n300|n302|n500|n502|n505|n700|n701|n710|nec\-|nem\-|newg|neon)' - device_replacement: 'Generic Feature Phone' - - regex: '^(netf|noki|nzph|o2 x|o2\-x|opwv|owg1|opti|oran|ot\-s|p800|pand|pg\-1|pg\-2|pg\-3|pg\-6|pg\-8|pg\-c|pg13|phil|pn\-2|pt\-g|palm|pana|pire|pock|pose|psio|qa\-a|qc\-2|qc\-3|qc\-5|qc\-7|qc07|qc12|qc21|qc32|qc60|qci\-|qwap|qtek|r380|r600|raks|rim9|rove|s55/|sage|sams|sc01|sch\-|scp\-|sdk/|se47|sec\-|sec0|sec1|semc|sgh\-|shar|sie\-|sk\-0|sl45|slid|smb3|smt5|sp01|sph\-|spv |spv\-|sy01|samm|sany|sava|scoo|send|siem|smar|smit|soft|sony|t\-mo|t218|t250|t600|t610|t618|tcl\-|tdg\-|telm|tim\-|ts70|tsm\-|tsm3|tsm5|tx\-9|tagt)' - device_replacement: 'Generic Feature Phone' - - regex: '^(talk|teli|topl|tosh|up.b|upg1|utst|v400|v750|veri|vk\-v|vk40|vk50|vk52|vk53|vm40|vx98|virg|vite|voda|vulc|w3c |w3c\-|wapj|wapp|wapu|wapm|wig |wapi|wapr|wapv|wapy|wapa|waps|wapt|winc|winw|wonu|x700|xda2|xdag|yas\-|your|zte\-|zeto|aste|audi|avan|blaz|brew|brvw|bumb|ccwa|cell|cldc|cmd\-|dang|eml2|fetc|hipt|http|ibro|idea|ikom|ipaq|jbro|jemu|jigs|keji|kyoc|kyok|libw|m\-cr|midp|mmef|moto|mwbp|mywa|newt|nok6|o2im|pant|pdxg|play|pluc|port|prox|rozo|sama|seri|smal|symb|treo|upsi|vx52|vx53|vx60|vx61|vx70|vx80|vx81|vx83|vx85|wap\-|webc|whit|wmlb|xda\-|xda_)' - device_replacement: 'Generic Feature Phone' - - ########## - # Spiders (this is hack...) - ########## - - regex: '(bingbot|bot|borg|google(^tv)|yahoo|slurp|msnbot|msrbot|openbot|archiver|netresearch|lycos|scooter|altavista|teoma|gigabot|baiduspider|blitzbot|oegp|charlotte|furlbot|http%20client|polybot|htdig|ichiro|mogimogi|larbin|pompos|scrubby|searchsight|seekbot|semanticdiscovery|silk|snappy|speedy|spider|voila|vortex|voyager|zao|zeal|fast\-webcrawler|converacrawler|dataparksearch|findlinks|crawler|Netvibes|Sogou Pic Spider|ICC\-Crawler|Innovazion Crawler)' - device_replacement: 'Spider' - diff --git a/app_offline.rename-me b/app_offline.rename-me deleted file mode 100644 index b491ef397e..0000000000 --- a/app_offline.rename-me +++ /dev/null @@ -1 +0,0 @@ -We are offline \ No newline at end of file diff --git a/build.bat b/build.bat deleted file mode 100644 index e0a6df0a18..0000000000 --- a/build.bat +++ /dev/null @@ -1,109 +0,0 @@ -@if "%SCM_TRACE_LEVEL%" NEQ "4" @echo off - -:: Prerequisites -:: ------------- - -:: Setup -:: ----- - -setlocal enabledelayedexpansion - -IF NOT DEFINED SOLUTION_NAME ( - SET SOLUTION_NAME=Dockyard.sln -) - -IF NOT DEFINED DEPLOYMENT_SOURCE ( - SET DEPLOYMENT_SOURCE=%~dp0%. -) - -IF NOT DEFINED DEPLOYMENT_TEMP ( - SET DEPLOYMENT_TEMP=%temp%\___deployTemp%random% - SET CLEAN_LOCAL_DEPLOYMENT_TEMP=true -) - -IF NOT DEFINED MSBUILD_PATH ( - SET MSBUILD_PATH=%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe -) - -IF NOT DEFINED NUNIT_RUNNERS_VERSION ( - Set NUNIT_RUNNERS_VERSION=2.6.3 -) - -IF NOT DEFINED NUNIT_RUNNERS ( - SET NUNIT_RUNNERS=NUnit.Runners.%NUNIT_RUNNERS_VERSION%\tools\nunit-console.exe -) - -IF NOT DEFINED NUGET_EXE ( - SET NUGET_EXE=.nuget/nuget.exe -) - -IF NOT DEFINED IN_PLACE_DEPLOYMENT ( - SET IN_PLACE_DEPLOYMENT=1 -) - -set USERPROFILE=C:\Users\%USERNAME% -set APPDATA=%USERPROFILE%\AppData\ - -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: Building -:: ---------- - -:: 1. Clean workspace -echo Cleaning workspace.. -call :ExecuteCmd "git" clean -fdx - -:: 2. NuGet Restore -echo Restoring nuget packages.. -call :ExecuteCmd "%NUGET_EXE%" restore Dockyard.sln - -:: 3. Build to the temporary path -IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" ( - echo Building application to temp folder - call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\Web.csproj" /nologo /verbosity:m /t:Build /p:WarningLevel=0 /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="%DEPLOYMENT_TEMP%";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS% - IF !ERRORLEVEL! NEQ 0 goto error - call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\Tests\DockyardTest\DockyardTest.csproj" /nologo /verbosity:m /t:Build /p:WarningLevel=0 /p:_PackageTempDir="%DEPLOYMENT_TEMP%";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS% - IF !ERRORLEVEL! NEQ 0 goto error - - -) ELSE ( - echo Building application in place - call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\Web.csproj" /nologo /verbosity:m /t:Build /p:WarningLevel=0 /p:AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS% - IF !ERRORLEVEL! NEQ 0 goto error - call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\Tests\DockyardTest\DockyardTest.csproj" /nologo /verbosity:m /t:Build /p:WarningLevel=0 /p:AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS% - IF !ERRORLEVEL! NEQ 0 goto error - -) - -:: 5. -echo Running tests -call :ExecuteCmd "%NUGET_EXE%" install NUnit.Runners -Version %NUNIT_RUNNERS_VERSION% -IF !ERRORLEVEL! NEQ 0 goto error -call :ExecuteCmd "%NUNIT_RUNNERS%" -labels "%DEPLOYMENT_SOURCE%\Tests\DockyardTest\bin\Release\DockyardTest.dll" -IF !ERRORLEVEL! NEQ 0 goto error - - -goto end - -:: Execute command routine that will echo out when error -:ExecuteCmd -setlocal -set _CMD_=%* -call %_CMD_% -if "%ERRORLEVEL%" NEQ "0" echo Failed exitCode=%ERRORLEVEL%, command=%_CMD_% -exit /b %ERRORLEVEL% - -:error -endlocal -echo An error has occurred during web site deployment. -call :exitSetErrorLevel -call :exitFromFunction 2>nul - -:exitSetErrorLevel -exit /b 1 - -:exitFromFunction -() - -:end -endlocal -echo Finished successfully. diff --git a/deploy.cmd b/deploy.cmd deleted file mode 100644 index 747cf02b4a..0000000000 --- a/deploy.cmd +++ /dev/null @@ -1,112 +0,0 @@ -@if "%SCM_TRACE_LEVEL%" NEQ "4" @echo off - -:: ---------------------- -:: KUDU Deployment Script -:: Version: 0.1.10 -:: ---------------------- - -:: Prerequisites -:: ------------- - -:: Verify node.js installed -where node 2>nul >nul -IF %ERRORLEVEL% NEQ 0 ( - echo Missing node.js executable, please install node.js, if already installed make sure it can be reached from current environment. - goto error -) - -:: Setup -:: ----- - -setlocal enabledelayedexpansion - -SET ARTIFACTS=%~dp0%..\artifacts - -IF NOT DEFINED DEPLOYMENT_SOURCE ( - SET DEPLOYMENT_SOURCE=%~dp0%. -) - -IF NOT DEFINED DEPLOYMENT_TARGET ( - SET DEPLOYMENT_TARGET=%ARTIFACTS%\wwwroot -) - -IF NOT DEFINED NEXT_MANIFEST_PATH ( - SET NEXT_MANIFEST_PATH=%ARTIFACTS%\manifest - - IF NOT DEFINED PREVIOUS_MANIFEST_PATH ( - SET PREVIOUS_MANIFEST_PATH=%ARTIFACTS%\manifest - ) -) - -IF NOT DEFINED IN_PLACE_DEPLOYMENT ( - SET IN_PLACE_DEPLOYMENT=0 -) - - -IF NOT DEFINED KUDU_SYNC_CMD ( - :: Install kudu sync - echo Installing Kudu Sync - call npm install kudusync -g --silent - IF !ERRORLEVEL! NEQ 0 goto error - - :: Locally just running "kuduSync" would also work - SET KUDU_SYNC_CMD=%appdata%\npm\kuduSync.cmd -) -IF NOT DEFINED DEPLOYMENT_TEMP ( - SET DEPLOYMENT_TEMP=%temp%\___deployTemp%random% - SET CLEAN_LOCAL_DEPLOYMENT_TEMP=true -) - -IF DEFINED CLEAN_LOCAL_DEPLOYMENT_TEMP ( - IF EXIST "%DEPLOYMENT_TEMP%" rd /s /q "%DEPLOYMENT_TEMP%" - mkdir "%DEPLOYMENT_TEMP%" -) - -IF NOT DEFINED MSBUILD_PATH ( - SET MSBUILD_PATH=%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe -) - -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: Deployment -:: ---------- - -call :ExecuteCMD "build.bat" -IF !ERRORLEVEL! NEQ 0 goto error - -:: 5. KuduSync -IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" ( - call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_TEMP%" -t "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd" - IF !ERRORLEVEL! NEQ 0 goto error -) - -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: - -:: Post deployment stub -IF DEFINED POST_DEPLOYMENT_ACTION call "%POST_DEPLOYMENT_ACTION%" -IF !ERRORLEVEL! NEQ 0 goto error - -goto end - -:: Execute command routine that will echo out when error -:ExecuteCmd -setlocal -set _CMD_=%* -call %_CMD_% -if "%ERRORLEVEL%" NEQ "0" echo Failed exitCode=%ERRORLEVEL%, command=%_CMD_% -exit /b %ERRORLEVEL% - -:error -endlocal -echo An error has occurred during web site deployment. -call :exitSetErrorLevel -call :exitFromFunction 2>nul - -:exitSetErrorLevel -exit /b 1 - -:exitFromFunction -() - -:end -endlocal -echo Finished successfully. diff --git a/extending_Fr8.md b/extending_Fr8.md deleted file mode 100644 index 8b13789179..0000000000 --- a/extending_Fr8.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/lib/SlackAPI.dll b/lib/SlackAPI.dll deleted file mode 100644 index d22174b8d8..0000000000 Binary files a/lib/SlackAPI.dll and /dev/null differ diff --git a/logo.png b/logo.png deleted file mode 100644 index f203460b68..0000000000 Binary files a/logo.png and /dev/null differ diff --git a/scaffolding.config b/scaffolding.config deleted file mode 100644 index 86cefe59e6..0000000000 --- a/scaffolding.config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/submit.md b/submit.md deleted file mode 100644 index 14160fabdd..0000000000 --- a/submit.md +++ /dev/null @@ -1,9 +0,0 @@ -Submissions - -Submit a new Crate Manifest - Let us know if you've defined a useful new Manifest that you'd like added to the Manifest Registry. - - -Submit a Terminal Hosting Request - Did you build a new Fr8 Terminal? Submit a request here if you'd like us to host it for you. - - -Submit a Terminal Connection Request - If you have a Fr8 Terminal that you're hosting yourself, and you'd like to make its Activities available to users at Fr8.co, request that here. diff --git a/terminalBase/BaseClasses/BaseConfiguration.cs b/terminalBase/BaseClasses/BaseConfiguration.cs deleted file mode 100644 index ffc28d1fdf..0000000000 --- a/terminalBase/BaseClasses/BaseConfiguration.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using System.Web.Http; -using System.Web.Http.Dispatcher; -using Fr8Infrastructure.StructureMap; -using Newtonsoft.Json; -using Newtonsoft.Json.Serialization; -using StructureMap; -using TerminalBase.Infrastructure; - -namespace TerminalBase.BaseClasses -{ - public abstract class BaseConfiguration : IHttpControllerTypeResolver - { - protected HttpConfiguration _configuration = new HttpConfiguration(); - - protected virtual void ConfigureProject(bool selfHost, Action terminalStructureMapRegistryConfigExpression) - { - ObjectFactory.Initialize(); - ObjectFactory.Configure(StructureMapBootStrapper.LiveConfiguration); - TerminalBootstrapper.ConfigureLive(); - AutoMapperBootstrapper.ConfigureAutoMapper(); - - if (terminalStructureMapRegistryConfigExpression != null) - { - ObjectFactory.Configure(terminalStructureMapRegistryConfigExpression); - } - - if (selfHost) - { - // Web API routes - _configuration.Services.Replace(typeof(IHttpControllerTypeResolver), this); - } - - - RegisterActivities(); - } - - protected abstract void RegisterActivities(); - - protected virtual void ConfigureFormatters() - { - // Configure formatters - // Enable camelCasing in JSON responses - var formatters = _configuration.Formatters; - var jsonFormatter = formatters.JsonFormatter; - var settings = jsonFormatter.SerializerSettings; - settings.Formatting = Formatting.Indented; - settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); - } - - protected virtual void StartHosting(string terminalName) - { - Task.Run(() => - { - BaseTerminalController curController = new BaseTerminalController(); - curController.AfterStartup(terminalName); - }); - } - - public virtual ICollection GetControllerTypes(IAssembliesResolver assembliesResolver) - { - // this method should be implemented by the child classes; hence virtual but since it - // has to implement IHttpControllerTypeResolver therefore the access is public - throw new NotImplementedException(); - } - } -} diff --git a/terminalBase/BaseClasses/BaseTerminalActivity.cs b/terminalBase/BaseClasses/BaseTerminalActivity.cs deleted file mode 100644 index 8d9b0a7b2d..0000000000 --- a/terminalBase/BaseClasses/BaseTerminalActivity.cs +++ /dev/null @@ -1,122 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using TerminalBase.Infrastructure; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Managers; -using Fr8Data.Manifests; -using Fr8Data.States; -using TerminalBase.Services; - -namespace TerminalBase.BaseClasses -{ - public abstract partial class BaseTerminalActivity : BaseTerminalActivityLegacy - { - private StandardConfigurationControlsCM _configurationControls; - protected StandardConfigurationControlsCM ConfigurationControls => _configurationControls ?? (_configurationControls = GetConfigurationControls()); - - protected BaseTerminalActivity(bool isAuthenticationRequired, ICrateManager crateManager) - : base(crateManager) - { - } - - protected override void InitializeInternalState() - { - CrateSignaller = new CrateSignaller(Storage, MyTemplate.Name, ActivityId); - } - - protected string ExtractPayloadFieldValue(string fieldKey) - { - var fieldValues = Payload.CratesOfType().SelectMany(x => x.Content.GetValues(fieldKey)) - .Where(s => !string.IsNullOrEmpty(s)) - .ToArray(); - if (fieldValues.Length > 0) - return fieldValues[0]; - var baseEvent = new BaseTerminalEvent(); - var exceptionMessage = $"No field found with specified key: {fieldKey}."; - //This is required for proper logging of the Incidents - baseEvent.SendTerminalErrorIncident(MyTemplate.Terminal.Name, exceptionMessage, MyTemplate.Name, CurrentUserId); - - SendEventReport(exceptionMessage); - - throw new ApplicationException(exceptionMessage); - } - - protected StandardConfigurationControlsCM GetConfigurationControls() - { - return ControlHelper.GetConfigurationControls(Storage); - } - - protected T GetControl(string name) where T : ControlDefinitionDTO - { - return ConfigurationControls?.FindByNameNested(name); - } - - protected void RemoveControl(string name) where T : ControlDefinitionDTO - { - ControlHelper.RemoveControl(ConfigurationControls, name); - } - - protected void AddLabelControl(string name, string label, string text) - { - AddControl(ControlHelper.GenerateTextBlock(label, text, "well well-lg", name)); - } - - protected void AddControl(ControlDefinitionDTO control) - { - EnsureControlsCrate(); - ConfigurationControls.Controls.Add(control); - } - - public virtual IEnumerable GetRequiredFields(string crateLabel) - { - var requiredFields = Storage - .CrateContentsOfType(c => c.Label.Equals(crateLabel)) - .SelectMany(f => f.Fields.Where(s => s.IsRequired)); - return requiredFields; - } - - protected void UpdateDesignTimeCrateValue(string label, params FieldDTO[] fields) - { - var crate = Storage.CratesOfType().FirstOrDefault(x => x.Label == label); - - if (crate == null) - { - crate = CrateManager.CreateDesignTimeFieldsCrate(label, fields); - Storage.Add(crate); - } - else - { - crate.Content.Fields.Clear(); - crate.Content.Fields.AddRange(fields); - } - } - - protected Crate PackControlsCrate(params ControlDefinitionDTO[] controlsList) - { - return Crate.FromContent(ConfigurationControlsLabel, new StandardConfigurationControlsCM(controlsList), AvailabilityType.Configuration); - } - - protected Crate PackControls(StandardConfigurationControlsCM page) - { - return PackControlsCrate(page.Controls.ToArray()); - } - - protected Crate EnsureControlsCrate() - { - var controlsCrate = Storage.CratesOfType().FirstOrDefault(); - - if (controlsCrate == null) - { - controlsCrate = CrateManager.CreateStandardConfigurationControlsCrate(ConfigurationControlsLabel); - Storage.Add(controlsCrate); - } - - _configurationControls = controlsCrate.Content; - - return controlsCrate; - } - } -} \ No newline at end of file diff --git a/terminalBase/BaseClasses/BaseTerminalActivityLegacy.cs b/terminalBase/BaseClasses/BaseTerminalActivityLegacy.cs deleted file mode 100644 index bc455f89ff..0000000000 --- a/terminalBase/BaseClasses/BaseTerminalActivityLegacy.cs +++ /dev/null @@ -1,299 +0,0 @@ -using System; -using System.Diagnostics; -using System.Linq; -using System.Threading.Tasks; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Managers; -using Fr8Data.Manifests; -using Fr8Data.States; -using TerminalBase.Helpers; -using TerminalBase.Infrastructure; -using TerminalBase.Models; -using TerminalBase.Services; - -namespace TerminalBase.BaseClasses -{ - // Common helper stuff used in currently implemented activities - public abstract class BaseTerminalActivityLegacy : StatefullTerminalActivity - { - public const string ConfigurationControlsLabel = "Configuration_Controls"; - public const string ValidationCrateLabel = "Validation Results"; - - protected ICrateManager CrateManager { get; private set; } - public CrateSignaller CrateSignaller { get; set; } - protected bool IsAuthenticationRequired { get; } - protected bool DisableValidationOnFollowup { get; set; } - private PlanHelper _planHelper; - private ControlHelper _controlHelper; - private readonly BaseTerminalEvent _eventLogger; - - - protected int LoopIndex => GetLoopIndex(); - protected ControlHelper ControlHelper => _controlHelper ?? (_controlHelper = new ControlHelper(ActivityContext)); - protected ValidationManager ValidationManager { get; set; } - protected PlanHelper PlanHelper => _planHelper ?? (_planHelper = new PlanHelper(HubCommunicator)); - protected Guid ActivityId => ActivityContext.ActivityPayload.Id; - protected string CurrentUserId => ActivityContext.UserId; - protected void SendEventReport(string message) => _eventLogger.SendEventReport(MyTemplate.Terminal.Name, message); - protected UpstreamQueryManager UpstreamQueryManager { get; private set; } - - protected abstract ActivityTemplateDTO MyTemplate { get; } - - protected BaseTerminalActivityLegacy(ICrateManager crateManager) - { - _eventLogger = new BaseTerminalEvent(); - CrateManager = crateManager; - IsAuthenticationRequired = MyTemplate.NeedsAuthentication; - } - - protected override void InitializeInternalState() - { - var terminalAuthType = MyTemplate.Terminal.AuthenticationType; - - switch (terminalAuthType) - { - case AuthenticationType.Internal: - AuthenticationMode = AuthenticationMode.InternalMode; - break; - - case AuthenticationType.External: - AuthenticationMode = AuthenticationMode.ExternalMode; - break; - - case AuthenticationType.InternalWithDomain: - AuthenticationMode = AuthenticationMode.InternalModeWithDomain; - break; - - case AuthenticationType.None: - AuthenticationMode = AuthenticationMode.ExternalMode; - break; - - default: - throw new Exception("Unknown authentication type: " + terminalAuthType); - } - - CrateSignaller = new CrateSignaller(Storage, MyTemplate.Name, ActivityId); - UpstreamQueryManager = new UpstreamQueryManager(ActivityContext, HubCommunicator); - } - - protected override async Task BeforeRun() - { - ValidationManager = CreateValidationManager(); - - await Validate(); - - if (ValidationManager.HasErrors) - { - RaiseError("Activity was incorrectly configured. " + ValidationManager.ValidationResults); - return false; - } - - return true; - } - - protected override async Task BeforeActivate() - { - Storage.Remove(); - - ValidationManager = CreateValidationManager(); - - await Validate(); - - if (ValidationManager.HasErrors) - { - Storage.Add(Crate.FromContent(ValidationCrateLabel, ValidationManager.ValidationResults)); - return false; - } - - return true; - } - - protected override async Task BeforeConfigure(ConfigurationRequestType configurationRequestType) - { - if (configurationRequestType == ConfigurationRequestType.Initial) - { - return true; - } - - Storage.Remove(); - - ValidationManager = CreateValidationManager(); - - ValidationManager.Reset(); - - if (!DisableValidationOnFollowup) - { - await Validate(); - } - - if (ValidationManager.HasErrors) - { - Storage.Add(Crate.FromContent(ValidationCrateLabel, ValidationManager.ValidationResults)); - return false; - } - - return true; - } - - protected virtual ValidationManager CreateValidationManager() - { - return new ValidationManager(IsRuntime ? Payload : null); - } - - protected virtual Task Validate() - { - return Task.FromResult(0); - } - - protected override Task CheckAuthentication() - { - return Task.FromResult(!IsAuthenticationRequired || !NeedsAuthentication()); - } - - public virtual bool NeedsAuthentication() - { - return string.IsNullOrEmpty(AuthorizationToken?.Token); - } - - #region Legacy helpers - /// - /// Method to be used with Loop Action - /// Is a helper method to decouple some of the GetCurrentElement Functionality - /// - /// Index or pointer of the current IEnumerable Object - protected int GetLoopIndex() - { - var loopState = OperationalState.CallStack.FirstOrDefault(x => x.LocalData?.Type == "Loop"); - - if (loopState != null) //this is a loop related data request - { - return loopState.LocalData.ReadAs().Index; - } - - throw new NullReferenceException("No Loop was found inside the provided OperationalStateCM crate"); - } - - protected async Task ConfigureChildActivity(ActivityPayload parent, ActivityPayload child) - { - var result = await HubCommunicator.ConfigureActivity(child); - parent.ChildrenActivities.Remove(child); - parent.ChildrenActivities.Add(result); - return result; - } - - protected async Task AddAndConfigureChildActivity(Guid parentActivityId, ActivityTemplateDTO activityTemplate, string name = null, string label = null, int? order = null) - { - //assign missing properties - label = string.IsNullOrEmpty(label) ? activityTemplate.Label : label; - name = string.IsNullOrEmpty(name) ? activityTemplate.Label : label; - return await HubCommunicator.CreateAndConfigureActivity(activityTemplate.Id, name, order, parentActivityId); - } - - protected async Task AddAndConfigureChildActivity(ActivityPayload parentActivity, ActivityTemplateDTO activityTemplate, string name = null, string label = null, int? order = null) - { - var child = await AddAndConfigureChildActivity(parentActivity.Id, activityTemplate, name, label, order); - parentActivity.ChildrenActivities.Add(child); - return child; - } - - protected async Task GetActivityTemplate(Guid activityTemplateId) - { - var allActivityTemplates = await HubCommunicator.GetActivityTemplates(); - - var foundActivity = allActivityTemplates.FirstOrDefault(a => a.Id == activityTemplateId); - - - if (foundActivity == null) - { - throw new Exception($"ActivityTemplate was not found. Id: {activityTemplateId}"); - } - - return foundActivity; - } - - protected async Task GetActivityTemplate(string terminalName, string activityTemplateName, string activityTemplateVersion = "1", string terminalVersion = "1") - { - var allActivityTemplates = await HubCommunicator.GetActivityTemplates(); - - var foundActivity = allActivityTemplates.FirstOrDefault(a => - a.Terminal.Name == terminalName && a.Terminal.Version == terminalVersion && - a.Name == activityTemplateName && a.Version == activityTemplateVersion); - - if (foundActivity == null) - { - throw new Exception($"ActivityTemplate was not found. TerminalName: {terminalName}\nTerminalVersion: {terminalVersion}\nActivitiyTemplateName: {activityTemplateName}\nActivityTemplateVersion: {activityTemplateVersion}"); - } - - return foundActivity; - } - - protected async Task PushUserNotification(string type, string subject, string message) - { - var notificationMsg = new TerminalNotificationDTO - { - Type = type, - Subject = subject, - Message = message, - ActivityName = MyTemplate.Name, - ActivityVersion = MyTemplate.Version, - TerminalName = MyTemplate.Terminal.Name, - TerminalVersion = MyTemplate.Terminal.Version - }; - await HubCommunicator.NotifyUser(notificationMsg); - } - - protected void AddAdvisoryCrate(string name, string content) - { - var advisoryCrate = Storage.CratesOfType().FirstOrDefault(); - var currentAdvisoryResults = advisoryCrate == null ? new AdvisoryMessagesCM() : advisoryCrate.Content; - - var advisory = currentAdvisoryResults.Advisories.FirstOrDefault(x => x.Name == name); - - if (advisory == null) - { - currentAdvisoryResults.Advisories.Add(new AdvisoryMessageDTO { Name = name, Content = content }); - } - else - { - advisory.Content = content; - } - - Storage.Add(Crate.FromContent("Advisories", currentAdvisoryResults)); - } - - public DocumentationResponseDTO GetDefaultDocumentation(string solutionName, double solutionVersion, string terminalName, string body) - { - var curSolutionPage = new DocumentationResponseDTO - { - Name = solutionName, - Version = solutionVersion, - Terminal = terminalName, - Body = body - }; - - return curSolutionPage; - } - - public DocumentationResponseDTO GenerateErrorResponse(string errorMessage) - { - return new DocumentationResponseDTO - { - Body = errorMessage, - //Type = ActivityResponse.ShowDocumentation.ToString() - }; - } - - - public DocumentationResponseDTO GenerateDocumentationResponse(string documentation) - { - return new DocumentationResponseDTO - { - Body = documentation, - //Type = ActivityResponse.ShowDocumentation.ToString() - }; - } - - #endregion - } -} \ No newline at end of file diff --git a/terminalBase/BaseClasses/BaseTerminalController.cs b/terminalBase/BaseClasses/BaseTerminalController.cs deleted file mode 100644 index eb2784136f..0000000000 --- a/terminalBase/BaseClasses/BaseTerminalController.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Threading.Tasks; -using System.Web.Http; -using TerminalBase.Infrastructure; -using Utilities.Logging; -using Utilities; - -namespace TerminalBase.BaseClasses -{ - //this is a quasi base class. We can't use inheritance directly because it's across project boundaries, but - //we can generate instances of this. - public class BaseTerminalController : ApiController - { - private readonly BaseTerminalEvent _baseTerminalEvent; - - public BaseTerminalController() - { - _baseTerminalEvent = new BaseTerminalEvent(); - } - - /// - /// Reports Terminal Error incident - /// - [HttpGet] - public IHttpActionResult ReportTerminalError(string terminalName, Exception terminalError, string userId = null) - { - var exceptionMessage = terminalError.GetFullExceptionMessage() + " \n\r " + terminalError.ToString();//string.Format("{0}\r\n{1}", terminalError.Message, terminalError.StackTrace); - - try - { - return Json(_baseTerminalEvent.SendTerminalErrorIncident(terminalName, exceptionMessage, terminalError.GetType().Name, userId)); - } - catch (Exception ex) - { - string errorMessage = $"An error has occurred in terminal [{terminalName}]. {exceptionMessage} | Fr8UserId = {userId} \n\r " - + $"Additionally, an error has occurred while trying to post error details to the Hub. {ex.Message}"; - - Logger.LogError(errorMessage); - //Logger.GetLogger().ErrorFormat(errorMessage, terminalName, exceptionMessage, ex.ToString()); - throw; - } - } - - /// - /// Reports start up incident - /// - /// Name of the terminal which is starting up - [HttpGet] - public IHttpActionResult AfterStartup(string terminalName) - { - return null; - - //TODO: Commented during development only. So that app loads fast. - return Json(ReportStartUp(terminalName)); - } - - /// - /// Reports start up event by making a Post request - /// - /// - private Task ReportStartUp(string terminalName) - { - return _baseTerminalEvent.SendEventOrIncidentReport(terminalName, "Terminal Fact"); - } - - - } -} diff --git a/terminalBase/BaseClasses/BaseTerminalWebApiConfig.cs b/terminalBase/BaseClasses/BaseTerminalWebApiConfig.cs deleted file mode 100644 index 8d48d1f544..0000000000 --- a/terminalBase/BaseClasses/BaseTerminalWebApiConfig.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System.Web.Http; -using TerminalBase; -using System.Web; -using System.Web.Routing; - -namespace TerminalBase.BaseClasses -{ - public static class BaseTerminalWebApiConfig - { - public static void Register(string curTerminalName, HttpConfiguration curTerminalConfiguration) - { - - var name = string.Format("terminal_{0}", curTerminalName); - //map attribute routes - curTerminalConfiguration.MapHttpAttributeRoutes(); - - curTerminalConfiguration.Routes.MapHttpRoute( - name: name, - routeTemplate: string.Format("terminal_{0}", curTerminalName) + "/{controller}/{id}", - defaults: new { id = RouteParameter.Optional } - ); - curTerminalConfiguration.Routes.MapHttpRoute( - name: string.Format("Terminal{0}ActivityCatchAll", curTerminalName), - routeTemplate: "activities/{*actionType}", - defaults: new { controller = "Activity", action = "Execute", terminal = name }); //It calls ActionController#Execute in an MVC style - - //add Web API Exception Filter - curTerminalConfiguration.Filters.Add(new WebApiExceptionFilterAttribute()); - } - } -} diff --git a/terminalBase/BaseClasses/EnhancedTerminalActivity.cs b/terminalBase/BaseClasses/EnhancedTerminalActivity.cs deleted file mode 100644 index 6f2f3ab841..0000000000 --- a/terminalBase/BaseClasses/EnhancedTerminalActivity.cs +++ /dev/null @@ -1,212 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Managers; -using Fr8Data.Manifests; -using Fr8Data.States; -using TerminalBase.Helpers; -using TerminalBase.Infrastructure; -using TerminalBase.Services; - -namespace TerminalBase.BaseClasses -{ - public abstract class EnhancedTerminalActivity : BaseTerminalActivityLegacy - where T : StandardConfigurationControlsCM - { - /**********************************************************************************/ - - private const string ConfigurationValuesCrateLabel = "Configuration Values"; - /// - /// Get or sets value of configuration field with the given key stored in current activity storage - /// - /// - /// - protected string this[string key] - { - get - { - CheckCurrentActivityStorageAvailability(); - var crate = Storage.FirstCrateOrDefault(x => x.Label == ConfigurationValuesCrateLabel); - return crate?.Content.Fields.FirstOrDefault(x => x.Key == key)?.Value; - } - set - { - CheckCurrentActivityStorageAvailability(); - var crate = Storage.FirstCrateOrDefault(x => x.Label == ConfigurationValuesCrateLabel); - if (crate == null) - { - crate = Crate.FromContent(ConfigurationValuesCrateLabel, new FieldDescriptionsCM(), AvailabilityType.Configuration); - Storage.Add(crate); - } - var field = crate.Content.Fields.FirstOrDefault(x => x.Key == key); - if (field == null) - { - field = new FieldDTO(key, AvailabilityType.Configuration); - crate.Content.Fields.Add(field); - } - field.Value = value; - Storage.ReplaceByLabel(crate); - } - } - - public T ActivityUI { get; private set; } - - protected UiBuilder UiBuilder { get; } - - /**********************************************************************************/ - // Functions - /**********************************************************************************/ - - protected EnhancedTerminalActivity(ICrateManager crateManager) - : base(crateManager) - { - UiBuilder = new UiBuilder(); - } - - /**********************************************************************************/ - - protected override void InitializeInternalState() - { - base.InitializeInternalState(); - SyncConfControls(false); - } - - /**********************************************************************************/ - - protected override async Task BeforeConfigure(ConfigurationRequestType configurationRequestType) - { - if (configurationRequestType == ConfigurationRequestType.Initial) - { - Storage.Clear(); - Storage.Add(Crate.FromContent(ConfigurationControlsLabel, ActivityUI, AvailabilityType.Configuration)); - } - - return await base.BeforeConfigure(configurationRequestType); - } - - /**********************************************************************************/ - - protected override Task AfterConfigure(ConfigurationRequestType configurationRequestType, Exception ex) - { - SyncConfControlsBack(); - return base.AfterConfigure(configurationRequestType, ex); - } - - /**********************************************************************************/ - - protected override Task AfterActivate(Exception ex) - { - SyncConfControlsBack(); - return base.AfterActivate(ex); - } - - /**********************************************************************************/ - - protected override Task AfterDeactivate(Exception ex) - { - SyncConfControlsBack(); - return base.AfterDeactivate(ex); - } - - /**********************************************************************************/ - - protected T AssignNamesForUnnamedControls(T configurationControls) - { - int controlId = 0; - var controls = configurationControls.EnumerateControlsDefinitions(); - - foreach (var controlDefinition in controls) - { - if (string.IsNullOrWhiteSpace(controlDefinition.Name)) - { - controlDefinition.Name = controlDefinition.GetType().Name + controlId++; - } - } - - return configurationControls; - } - - protected override ValidationManager CreateValidationManager() - { - return new EnhancedValidationManager(this, IsRuntime ? Payload : null); - } - - /**********************************************************************************/ - - protected virtual T CrateActivityUI() - { - var uiBuilderConstructor = typeof(T).GetConstructor(new[] { typeof(UiBuilder) }); - - if (uiBuilderConstructor != null) - { - return AssignNamesForUnnamedControls((T)uiBuilderConstructor.Invoke(new object[] { UiBuilder })); - } - - var defaultConstructor = typeof(T).GetConstructor(new Type[0]); - - if (defaultConstructor == null) - { - throw new InvalidOperationException($"Unable to find default constructor or constructor accepting UiBuilder for type {typeof(T).FullName}"); - } - - return AssignNamesForUnnamedControls((T)defaultConstructor.Invoke(null)); - } - - /**********************************************************************************/ - - private void CheckCurrentActivityStorageAvailability() - { - if (Storage == null) - { - throw new ApplicationException("Current activity storage is not available"); - } - } - - /**********************************************************************************/ - // SyncConfControls and SyncConfControlsBack are pair of methods that serves the following reason: - // We want to work with StandardConfigurationControlsCM in form of ActivityUi that has handy properties to directly access certain controls - // But when we deserialize activity's crate storage we get StandardConfigurationControlsCM. So we need a way to 'convert' StandardConfigurationControlsCM - // from crate storage to ActivityUI. - // SyncConfControls takes properties of controls in StandardConfigurationControlsCM from activity's storage and copies them into ActivityUi. - private void SyncConfControls(bool throwException) - { - var configurationControls = Storage.CrateContentsOfType().FirstOrDefault(); - ActivityUI = CrateActivityUI(); - - if (configurationControls == null) - { - if (throwException) - { - throw new InvalidOperationException("Configuration controls crate is missing"); - } - - return; - } - - ActivityUI.SyncWith(configurationControls); - - if (ActivityUI.Controls != null) - { - ActivityUI.RestoreDynamicControlsFrom(configurationControls); - } - } - - /**********************************************************************************/ - // Activity logic can update state of configuration controls. But as long we have copied configuration controls crate from the storage into - // new instance of ActivityUi changes made to ActivityUi won't be reflected in storage. - // we have to persist in storage changes we've made to ActivityUi. - // we do this in the most simple way by replacing old StandardConfigurationControlsCM with ActivityUi. - private void SyncConfControlsBack() - { - Storage.Remove(); - // we create new StandardConfigurationControlsCM with controls from ActivityUi. - // We do this because ActivityUi can has properties to access specific controls. We don't want those propeties exist in serialized crate. - - var configurationControlsToAdd = new StandardConfigurationControlsCM(ActivityUI.Controls); - Storage.Add(Crate.FromContent(ConfigurationControlsLabel, configurationControlsToAdd, AvailabilityType.Configuration)); - ActivityUI.SaveDynamicControlsTo(configurationControlsToAdd); - } - } -} diff --git a/terminalBase/BaseClasses/RuntimeValidationScope.cs b/terminalBase/BaseClasses/RuntimeValidationScope.cs deleted file mode 100644 index 31d96f51a5..0000000000 --- a/terminalBase/BaseClasses/RuntimeValidationScope.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using Fr8Data.Crates; -using TerminalBase.Infrastructure; - -namespace TerminalBase.BaseClasses -{ - partial class BaseTerminalActivity - { - // Do not use anywere except classes directly dervied from BaseTerminalActivity - // Subject to be removed after going opensoruce - public class RuntimeValidationScope : IDisposable - { - private readonly BaseTerminalActivity _that; - - public readonly ValidationManager ValidationManager; - - public bool HasErrors => ValidationManager.HasErrors; - - public RuntimeValidationScope(BaseTerminalActivity that, ICrateStorage payloadStorage) - { - _that = that; - ValidationManager = new ValidationManager(payloadStorage); - } - - public void Dispose() - { - if (ValidationManager.HasErrors) - { - _that.RaiseError("Activity validation fails: " + ValidationManager.ValidationResults); - } - } - } - } - -} diff --git a/terminalBase/BaseClasses/SimpleActionBase.cs b/terminalBase/BaseClasses/SimpleActionBase.cs deleted file mode 100644 index f75983c29d..0000000000 --- a/terminalBase/BaseClasses/SimpleActionBase.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Data.Crates; -using Data.Entities; -using Data.Interfaces.Manifests; - -namespace TerminalBase.BaseClasses -{ - public class SimpleActionBase : BaseTerminalAction - { - protected CrateStorage CurrentActionStorage { get; private set; } - protected CrateStorage CurrentPayloadStorage { get; private set; } - - protected virtual void Run(AuthorizationTokenDO token) - { - } - - protected virtual void Initialize(AuthorizationTokenDO token) - { - } - - protected virtual void Configure(AuthorizationTokenDO token) - { - } - } - - public class SimpleActionBase : SimpleActionBase - where TUi : StandardConfigurationControlsCM, new() - { - protected TUi Ui { get; set; } - } -} diff --git a/terminalBase/BaseClasses/StatefullTerminalActivity.cs b/terminalBase/BaseClasses/StatefullTerminalActivity.cs deleted file mode 100644 index eab6cf8572..0000000000 --- a/terminalBase/BaseClasses/StatefullTerminalActivity.cs +++ /dev/null @@ -1,674 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using Fr8Data.Constants; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.DataTransferObjects.Helpers; -using Fr8Data.Manifests; -using TerminalBase.Errors; -using TerminalBase.Infrastructure; -using TerminalBase.Interfaces; -using TerminalBase.Models; - -namespace TerminalBase.BaseClasses -{ - // Almost minimal activity implementation - public abstract class StatefullTerminalActivity : IActivity - { - /**********************************************************************************/ - // Declarations - /**********************************************************************************/ - - private OperationalStateCM _operationalState; - private ActivityContext _activityContext; - private ContainerExecutionContext _containerExecutionContext; - - /**********************************************************************************/ - - protected ICrateStorage Payload - { - get - { - CheckRunTime("Payload storage is not available at the design time"); - return _containerExecutionContext.PayloadStorage; - } - } - - protected OperationalStateCM OperationalState - { - get - { - CheckRunTime("Operations state is not available at the design time"); - return _operationalState; - } - } - - protected ContainerExecutionContext ExecutionContext - { - get - { - CheckRunTime("Execution context is not available at the design time"); - return _containerExecutionContext; - } - } - - protected ICrateStorage Storage => _activityContext.ActivityPayload.CrateStorage; - protected ActivityPayload ActivityPayload => _activityContext.ActivityPayload; - protected AuthorizationToken AuthorizationToken => _activityContext.AuthorizationToken; - protected IHubCommunicator HubCommunicator => _activityContext.HubCommunicator; - protected ActivityContext ActivityContext => _activityContext; - protected bool IsRuntime => _containerExecutionContext != null; - protected AuthenticationMode AuthenticationMode { get; set; } = AuthenticationMode.InternalMode; - - /**********************************************************************************/ - // Functions - /**********************************************************************************/ - - private void InitializeInternalState(ActivityContext activityContext, ContainerExecutionContext containerExecutionContext) - { - _activityContext = activityContext; - _containerExecutionContext = containerExecutionContext; - - if (_containerExecutionContext != null) - { - _operationalState = Payload.CrateContentsOfType().FirstOrDefault(); - - if (_operationalState == null) - { - throw new InvalidOperationException("Operational state crate is not found"); - } - } - - InitializeInternalState(); - } - - /**********************************************************************************/ - - protected virtual Task CheckAuthentication() - { - return Task.FromResult(true); - } - - /**********************************************************************************/ - - protected void AddAuthenticationCrate(bool revocation) - { - Storage.Remove(); - Storage.Add(Crate.FromContent("RequiresAuthentication", new StandardAuthenticationCM - { - Mode = AuthenticationMode, - Revocation = revocation - })); - } - - /**********************************************************************************/ - - public async Task Configure(ActivityContext activityContext) - { - InitializeInternalState(activityContext, null); - var configurationType = GetConfigurationRequestType(); - bool afterConfigureFails = false; - - try - { - if (!await CheckAuthentication()) - { - AddAuthenticationCrate(false); - return; - } - - if (!await BeforeConfigure(configurationType)) - { - return; - } - - switch (configurationType) - { - case ConfigurationRequestType.Initial: - await Initialize(); - break; - - case ConfigurationRequestType.Followup: - await FollowUp(); - break; - - default: - throw new ArgumentOutOfRangeException($"Unsupported configuration type: {configurationType}"); - } - try - { - await AfterConfigure(configurationType, null); - } - catch - { - afterConfigureFails = true; - throw; - } - } - catch (AuthorizationTokenExpiredOrInvalidException) - { - AddAuthenticationCrate(true); - } - catch (Exception ex) - { - if (IsInvalidTokenException(ex)) - { - AddAuthenticationCrate(true); - } - else if (!afterConfigureFails) - { - await AfterConfigure(configurationType, ex); - } - } - } - - /**********************************************************************************/ - - private void CheckRunTime(string message = "Not available at the design time") - { - if (!IsRuntime) - { - throw new InvalidOperationException(message); - } - } - - /**********************************************************************************/ - - public async Task Activate(ActivityContext activityContext) - { - InitializeInternalState(activityContext, null); - - if (!await BeforeActivate()) - { - return; - } - - bool afterActivateFails = false; - - try - { - await Activate(); - - try - { - await AfterActivate(null); - } - catch - { - afterActivateFails = true; - throw; - } - } - catch (Exception ex) - { - if (!afterActivateFails) - { - await AfterActivate(ex); - } - } - } - - /**********************************************************************************/ - - public async Task Deactivate(ActivityContext activityContext) - { - InitializeInternalState(activityContext, null); - - if (!await BeforeDeactivate()) - { - return; - } - - bool afterDeactivateFails = false; - - try - { - await Deactivate(); - - try - { - await AfterDeactivate(null); - } - catch - { - afterDeactivateFails = true; - throw; - } - } - catch (Exception ex) - { - if (!afterDeactivateFails) - { - await AfterDeactivate(ex); - } - } - } - - /**********************************************************************************/ - - public Task Run(ActivityContext activityContext, ContainerExecutionContext containerExecutionContext) - { - InitializeInternalState(activityContext, containerExecutionContext); - - return Run(Run); - } - - /**********************************************************************************/ - - public Task RunChildActivities(ActivityContext activityContext, ContainerExecutionContext containerExecutionContext) - { - InitializeInternalState(activityContext, containerExecutionContext); - - return Run(RunChildActivities); - } - - /**********************************************************************************/ - - private async Task Run(Func runMode) - { - if (!await CheckAuthentication()) - { - if (string.IsNullOrWhiteSpace(AuthorizationToken?.Token)) - { - ErrorInvalidToken("No AuthToken provided."); - } - else - { - ErrorInvalidToken("Authorization token is invalid"); - } - - return; - } - - bool afterRunFails = false; - - try - { - OperationalState.CurrentActivityResponse = null; - - if (await BeforeRun()) - { - await runMode(); - - try - { - await AfterRun(null); - } - catch - { - afterRunFails = true; - throw; - } - } - - if (OperationalState.CurrentActivityResponse == null) - { - Success(); - } - } - catch (AuthorizationTokenExpiredOrInvalidException ex) - { - if (!afterRunFails) - { - await AfterRun(ex); - } - - ErrorInvalidToken(ex.Message); - } - catch (ActivityExecutionException ex) - { - if (!afterRunFails) - { - await AfterRun(ex); - } - - Error(ex.Message, ex.ErrorCode); - } - catch (AggregateException ex) - { - if (!afterRunFails) - { - await AfterRun(ex); - } - - foreach (var innerException in ex.InnerExceptions) - { - if (IsInvalidTokenException(innerException)) - { - ErrorInvalidToken(ex.Message); - return; - } - } - - Error(ex.Flatten().Message); - } - catch (Exception ex) - { - if (!afterRunFails) - { - await AfterRun(ex); - } - - if (IsInvalidTokenException(ex)) - { - ErrorInvalidToken(ex.Message); - } - else - { - Error(ex.Message); - } - } - } - - /**********************************************************************************/ - - protected virtual ConfigurationRequestType GetConfigurationRequestType() - { - return Storage.Count == 0 ? ConfigurationRequestType.Initial : ConfigurationRequestType.Followup; - } - - /**********************************************************************************/ - - public abstract Task Initialize(); - public abstract Task FollowUp(); - public abstract Task Run(); - - /**********************************************************************************/ - - protected virtual void InitializeInternalState() - { - } - - /**********************************************************************************/ - - public virtual Task RunChildActivities() - { - return Task.FromResult(0); - } - - /**********************************************************************************/ - - public virtual Task Activate() - { - return Task.FromResult(0); - } - - /**********************************************************************************/ - - public virtual Task Deactivate() - { - return Task.FromResult(0); - } - - /**********************************************************************************/ - - protected virtual Task AfterRun(Exception ex) - { - return Task.FromResult(0); - } - - /**********************************************************************************/ - - protected virtual Task BeforeRun() - { - return Task.FromResult(true); - } - - /**********************************************************************************/ - - protected virtual Task AfterDeactivate(Exception ex) - { - return Task.FromResult(0); - } - - /**********************************************************************************/ - - protected virtual Task BeforeDeactivate() - { - return Task.FromResult(true); - } - - /**********************************************************************************/ - - protected virtual Task AfterActivate(Exception ex) - { - return Task.FromResult(0); - } - - /**********************************************************************************/ - - protected virtual Task BeforeActivate() - { - return Task.FromResult(false); - } - - /**********************************************************************************/ - - protected virtual Task AfterConfigure(ConfigurationRequestType configurationRequestType, Exception ex) - { - return Task.FromResult(0); - } - - /**********************************************************************************/ - - protected virtual Task BeforeConfigure(ConfigurationRequestType configurationRequestType) - { - return Task.FromResult(true); - } - - /**********************************************************************************/ - - protected virtual bool IsInvalidTokenException(Exception ex) - { - return false; - } - - /**********************************************************************************/ - /// - /// Creates a suspend request for hub execution - /// - protected void SuspendHubExecution(string message = null) - { - SetResponse(ActivityResponse.RequestSuspend, message); - } - - /**********************************************************************************/ - /// - /// Creates a terminate request for hub execution - /// after that we could stop throwing exceptions on actions - /// - protected void TerminateHubExecution(string message = null) - { - SetResponse(ActivityResponse.RequestTerminate, message); - } - - /**********************************************************************************/ - /// - /// Creates a terminate request for hub execution - /// after that we could stop throwing exceptions on actions - /// - protected void RequestHubExecutionTermination(string message = null) - { - TerminateHubExecution(message); - } - - /**********************************************************************************/ - /// - /// returns success to hub - /// - protected void Success(string message = null) - { - SetResponse(ActivityResponse.Success, message); - } - - /**********************************************************************************/ - - protected void ExecuteClientActivity(string clientActionName) - { - SetResponse(ActivityResponse.ExecuteClientActivity); - OperationalState.CurrentClientActivityName = clientActionName; - } - - /**********************************************************************************/ - /// - /// skips children of this action - /// - protected void RequestSkipChildren() - { - SetResponse(ActivityResponse.SkipChildren); - } - - /**********************************************************************************/ - /// - /// Call an activity or subplan and return to the current activity - /// - /// - protected void RequestCall(Guid targetNodeId) - { - SetResponse(ActivityResponse.CallAndReturn); - OperationalState.CurrentActivityResponse.AddResponseMessageDTO(new ResponseMessageDTO() { Details = targetNodeId }); - } - - /**********************************************************************************/ - /// - /// Jumps to an activity that resides in same subplan as current activity - /// - /// - protected void RequestJumpToActivity(Guid targetActivityId) - { - SetResponse(ActivityResponse.JumpToActivity); - OperationalState.CurrentActivityResponse.AddResponseMessageDTO(new ResponseMessageDTO() { Details = targetActivityId }); - } - - /**********************************************************************************/ - /// - /// Jumps to an activity that resides in same subplan as current activity - /// - /// - protected void RequestJumpToSubplan(Guid targetSubplanId) - { - SetResponse(ActivityResponse.JumpToSubplan); - OperationalState.CurrentActivityResponse.AddResponseMessageDTO(new ResponseMessageDTO() { Details = targetSubplanId }); - } - - /**********************************************************************************/ - /// - /// Jumps to another plan - /// - /// - protected void LaunchPlan(Guid targetPlanId) - { - SetResponse(ActivityResponse.LaunchAdditionalPlan); - OperationalState.CurrentActivityResponse.AddResponseMessageDTO(new ResponseMessageDTO() { Details = targetPlanId }); - } - - /**********************************************************************************/ - - protected void SetResponse(ActivityResponse response, string message = null, object details = null) - { - OperationalState.CurrentActivityResponse = ActivityResponseDTO.Create(response); - - if (!string.IsNullOrWhiteSpace(message) || details != null) - { - OperationalState.CurrentActivityResponse.AddResponseMessageDTO(new ResponseMessageDTO() { Message = message, Details = details }); - } - } - - /**********************************************************************************/ - /// - /// returns error to hub - /// - protected void Error(string errorMessage = null, ActivityErrorCode? errorCode = null) - { - SetResponse(ActivityResponse.Error); - OperationalState.CurrentActivityErrorCode = errorCode; - OperationalState.CurrentActivityResponse.AddErrorDTO(ErrorDTO.Create(errorMessage, ErrorType.Generic, errorCode.ToString(), null, null, null)); - } - - /**********************************************************************************/ - /// - /// returns error to hub - /// - protected void ErrorInvalidToken(string instructionsToUser = null) - { - SetResponse(ActivityResponse.Error); - var errorCode = ActivityErrorCode.AUTH_TOKEN_NOT_PROVIDED_OR_INVALID; - OperationalState.CurrentActivityErrorCode = errorCode; - OperationalState.CurrentActivityResponse.AddErrorDTO(ErrorDTO.Create(instructionsToUser, ErrorType.Authentication, errorCode.ToString(), null, null, null)); - } - - /**********************************************************************************/ - /// - /// returns error to hub - /// - /// - /// - /// Activity where the error occured - /// Terminal where the error occured - /// - protected void RaiseError(string errorMessage = null, ActivityErrorCode? errorCode = null, string currentActivity = null, string currentTerminal = null) - { - RaiseError(errorMessage, ErrorType.Generic, errorCode, currentActivity, currentTerminal); - } - - /**********************************************************************************/ - /// - /// returns error to hub - /// - /// - /// Activity where the error occured - /// Terminal where the error occured - /// - /// - /// - protected void RaiseError(string errorMessage, ErrorType errorType, ActivityErrorCode? errorCode = null, string currentActivity = null, string currentTerminal = null) - { - OperationalState.CurrentActivityErrorCode = errorCode; - OperationalState.CurrentActivityResponse = ActivityResponseDTO.Create(ActivityResponse.Error); - OperationalState.CurrentActivityResponse.AddErrorDTO(ErrorDTO.Create(errorMessage, errorType, errorCode.ToString(), null, currentActivity, currentTerminal)); - } - - /**********************************************************************************/ - /// - /// Returns Needs authentication error to hub - /// - /// - protected void RaiseNeedsAuthenticationError() - { - RaiseError("No AuthToken provided.", ErrorType.Authentication, ActivityErrorCode.AUTH_TOKEN_NOT_PROVIDED_OR_INVALID); - } - - /**********************************************************************************/ - /// - /// Returns authentication error to hub - /// - /// - protected void RaiseInvalidTokenError(string instructionsToUser = null) - { - RaiseError(instructionsToUser, ErrorType.Authentication, ActivityErrorCode.AUTH_TOKEN_NOT_PROVIDED_OR_INVALID); - } - - /**********************************************************************************/ - - protected virtual Task GetDocumentation(string documentationType) - { - return Task.FromResult(new DocumentationResponseDTO - { - Name = "No Documentation found", - Body = "Please override the GetDocumentation method in the Activity class" - }); - } - - /**********************************************************************************/ - - public async Task GetDocumentation(ActivityContext activityContext, string documentationType) - { - InitializeInternalState(activityContext, null); - - return await GetDocumentation(documentationType); - } - - /**********************************************************************************/ - } -} \ No newline at end of file diff --git a/terminalBase/Errors/ActivityExecutionException.cs b/terminalBase/Errors/ActivityExecutionException.cs deleted file mode 100644 index 89d90f7500..0000000000 --- a/terminalBase/Errors/ActivityExecutionException.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using Fr8Data.Constants; - -namespace TerminalBase.Errors -{ - public class ActivityExecutionException : Exception - { - public ActivityErrorCode? ErrorCode - { - get; - } - - public ActivityExecutionException(string message, ActivityErrorCode? errorCode = null) - : base(message) - { - ErrorCode = errorCode; - } - - public ActivityExecutionException(string message, Exception innerException) - : base(message, innerException) - { - } - - public ActivityExecutionException() - { - } - } -} \ No newline at end of file diff --git a/terminalBase/Errors/AuthorizationTokenExpiredOrInvalidException.cs b/terminalBase/Errors/AuthorizationTokenExpiredOrInvalidException.cs deleted file mode 100644 index ed02bf312d..0000000000 --- a/terminalBase/Errors/AuthorizationTokenExpiredOrInvalidException.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Runtime.Serialization; - -namespace TerminalBase.Errors -{ - public class AuthorizationTokenExpiredOrInvalidException : Exception - { - public AuthorizationTokenExpiredOrInvalidException(): base(string.Empty) - { - } - - public AuthorizationTokenExpiredOrInvalidException(string message) - : base(message) - { - } - - public AuthorizationTokenExpiredOrInvalidException(string message, Exception innerException) - : base(message, innerException) - { - } - - protected AuthorizationTokenExpiredOrInvalidException(SerializationInfo info, StreamingContext context) - : base(info, context) - { - } - } -} diff --git a/terminalBase/Errors/TerminalCodedException.cs b/terminalBase/Errors/TerminalCodedException.cs deleted file mode 100644 index 409f485ab2..0000000000 --- a/terminalBase/Errors/TerminalCodedException.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; -using System.Threading.Tasks; -using Utilities; - -namespace TerminalBase -{ - public class TerminalCodedException : Exception - { - public HttpStatusCode StatusCode { get; private set; } - public TerminalErrorCode ErrorCode { get; private set; } - private string Details { get; set; } - - public override string Message { - get { - return (!string.IsNullOrEmpty(Details) ? string.Format("{0}: {1}", base.Message, Details) : base.Message); - } - } - - public TerminalCodedException(TerminalErrorCode errorCode, string details = null) : base(errorCode.GetEnumDescription()) { - ErrorCode = errorCode; - StatusCode = HttpStatusCode.InternalServerError; - Details = details; - } - } -} diff --git a/terminalBase/Errors/TerminalErrorCode.cs b/terminalBase/Errors/TerminalErrorCode.cs deleted file mode 100644 index a7dd794b30..0000000000 --- a/terminalBase/Errors/TerminalErrorCode.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace TerminalBase -{ - //TODO remove this? - public enum TerminalErrorCode - { - [Description("The terminal was passed a request that required a connection string, and it was not found.")] - SQL_SERVER_CONNECTION_STRING_MISSING = 10000, - [Description("The terminal was unable to connect with the provided database connection string.")] - SQL_SERVER_CONNECTION_FAILED, - PAYLOAD_DATA_MISSING, - PAYLOAD_DATA_INVALID - } -} diff --git a/terminalBase/Helpers/ActivityHelper.cs b/terminalBase/Helpers/ActivityHelper.cs deleted file mode 100644 index aa8c4a972b..0000000000 --- a/terminalBase/Helpers/ActivityHelper.cs +++ /dev/null @@ -1,173 +0,0 @@ -using System; -using System.Collections; -using System.Linq; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Helpers; -using Fr8Data.Managers; -using Fr8Data.Manifests; -using TerminalBase.BaseClasses; -using TerminalBase.Models; - -namespace TerminalBase.Helpers -{ - public static class ActivityHelper - { - /// - /// Lets you update activity UI control values without need to unpack and repack control crates - /// - public static ActivityDTO UpdateControls(this ActivityDTO activity, Action action) where TActivityUi : StandardConfigurationControlsCM, new() - { - if (activity == null) - { - throw new ArgumentNullException(nameof(activity)); - } - - var crateManager = new CrateManager(); - using (var storage = crateManager.GetUpdatableStorage(activity)) - { - UpdateControls(storage, action); - } - - return activity; - } - - public static void UpdateControls(this ICrateStorage storage, Action action) where TActivityUi : StandardConfigurationControlsCM, new() - { - - if (action == null) - { - throw new ArgumentNullException(nameof(action)); - } - var controlsCrate = storage.FirstCrate(); - var activityUi = new TActivityUi().ClonePropertiesFrom(controlsCrate.Content) as TActivityUi; - activityUi.RestoreDynamicControlsFrom(controlsCrate.Content); - action(activityUi); - var newControls = new StandardConfigurationControlsCM(activityUi.Controls.ToArray()); - storage.ReplaceByLabel(Crate.FromContent(controlsCrate.Label, newControls)); - activityUi.SaveDynamicControlsTo(newControls); - } - - internal static string GetDynamicControlName(string controlName, string controlOwnerName) - { - return $"{controlOwnerName}_{controlName}"; - } - - private static readonly Tuple EmptyDynamicControlNameAndOwner = new Tuple(String.Empty, String.Empty); - - internal static Tuple GetDynamicControlNameAndOwner(string dynamicControlName) - { - if (String.IsNullOrWhiteSpace(dynamicControlName)) - { - return EmptyDynamicControlNameAndOwner; - } - var delim = dynamicControlName.IndexOf('_'); - if (delim <= 0) - { - return EmptyDynamicControlNameAndOwner; - } - return new Tuple(dynamicControlName.Substring(delim + 1), dynamicControlName.Substring(0, delim)); - } - - internal static void RestoreDynamicControlsFrom(this TActivityUi source, StandardConfigurationControlsCM destination) - { - if (destination == null) - { - throw new ArgumentNullException(nameof(destination)); - } - if (source == null) - { - throw new ArgumentNullException(nameof(source)); - } - var dynamicControlsCollection = Fr8ReflectionHelper.GetMembers(source.GetType()).Where(x => x.CanRead - && x.GetCustomAttribute() != null - && Fr8ReflectionHelper.CheckIfMemberIsCollectionOf(x)) - .ToDictionary(x => x.Name, x => x); - - if (dynamicControlsCollection.Count > 0) - { - foreach (var control in destination.Controls) - { - var nameAndOwner = GetDynamicControlNameAndOwner(control.Name); - if (String.IsNullOrEmpty(nameAndOwner.Item2)) - { - continue; - } - IMemberAccessor member; - - if (!dynamicControlsCollection.TryGetValue(nameAndOwner.Item2, out member)) - { - continue; - } - - var controlsCollection = (IList)member.GetValue(source); - - if (controlsCollection == null && (!member.CanWrite || member.MemberType.IsAbstract || member.MemberType.IsInterface)) - { - continue; - } - - if (controlsCollection == null) - { - controlsCollection = (IList)Activator.CreateInstance(member.MemberType); - member.SetValue(source, controlsCollection); - } - - control.Name = nameAndOwner.Item1; - controlsCollection.Add(control); - } - } - } - - internal static void SaveDynamicControlsTo(this TActivityUi source, StandardConfigurationControlsCM destination) - { - if (source == null) - { - throw new ArgumentNullException(nameof(source)); - } - var insertIndex = 0; - - foreach (var member in Fr8ReflectionHelper.GetMembers(source.GetType()).Where(x => x.CanRead)) - { - if (member.GetCustomAttribute() != null && Fr8ReflectionHelper.CheckIfMemberIsCollectionOf(member)) - { - var collection = member.GetValue(source) as IList; - - if (collection != null) - { - foreach (var control in collection.Cast().OfType()) - { - control.Name = GetDynamicControlName(control.Name, member.Name); - destination.Controls.Insert(insertIndex, control); - insertIndex++; - } - } - } - - var controlDef = member.GetValue(source) as IControlDefinition; - if (!String.IsNullOrWhiteSpace(controlDef?.Name)) - { - for (int i = 0; i < destination.Controls.Count; i++) - { - if (destination.Controls[i].Name == controlDef.Name) - { - insertIndex = i + 1; - break; - } - } - } - } - } - - /// - /// Returns a copy of AcvitityUI for the given activity - /// - public static TActivityUi GetReadonlyActivityUi(this ICrateStorage storage) where TActivityUi : StandardConfigurationControlsCM, new() - { - var controls = storage.FirstCrateOrDefault()?.Content; - var activityUi = new TActivityUi().ClonePropertiesFrom(controls) as TActivityUi; - activityUi.RestoreDynamicControlsFrom(controls); - return activityUi; - } - } -} \ No newline at end of file diff --git a/terminalBase/Helpers/ControlHelper.cs b/terminalBase/Helpers/ControlHelper.cs deleted file mode 100644 index 1d20ff80fd..0000000000 --- a/terminalBase/Helpers/ControlHelper.cs +++ /dev/null @@ -1,314 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Fr8Data.Control; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Managers; -using Fr8Data.Manifests; -using Fr8Data.States; -using TerminalBase.BaseClasses; -using TerminalBase.Infrastructure; -using TerminalBase.Models; - -namespace TerminalBase.Helpers -{ - public class ControlHelper - { - private readonly IHubCommunicator _hubCommunicator; - private readonly ActivityContext _activityContext; - - public ControlHelper(ActivityContext activityContext) - { - _hubCommunicator = activityContext.HubCommunicator; - _activityContext = activityContext; - } - - public StandardConfigurationControlsCM GetConfigurationControls(ICrateStorage storage) - { - return storage.CrateContentsOfType(c => c.Label == BaseTerminalActivity.ConfigurationControlsLabel).FirstOrDefault(); - } - - public T GetControl(StandardConfigurationControlsCM configurationControls, string name, string controlType = null) where T : ControlDefinitionDTO - { - Func predicate = x => x.Name == name; - if (controlType != null) - { - predicate = x => x.Type == controlType && x.Name == name; - } - - return (T)configurationControls?.Controls?.FirstOrDefault(predicate); - } - - /// - /// This is a generic function for creating a CrateChooser which is suitable for most use-cases - /// - /// - /// - /// - /// - /// - /// - /// - public CrateChooser GenerateCrateChooser( - string name, - string label, - bool singleManifest, - bool requestUpstream = false, - bool requestConfig = false) - { - var control = new CrateChooser - { - Label = label, - Name = name, - SingleManifestOnly = singleManifest, - RequestUpstream = true - }; - - if (requestConfig) - { - control.Events.Add(new ControlEvent("onChange", "requestConfig")); - } - - return control; - } - - /// - /// Creates TextBlock control and fills it with label, value and CssClass - /// - /// Label - /// Value - /// Css Class - /// Name - /// TextBlock control - public TextBlock GenerateTextBlock(string curLabel, string curValue, string curCssClass, string curName = "unnamed") - { - return new TextBlock - { - Name = curName, - Label = curLabel, - Value = curValue, - CssClass = curCssClass - }; - } - - public UpstreamCrateChooser CreateUpstreamCrateChooser(string name, string label, bool isMultiSelection = true) - { - - var manifestDdlb = new DropDownList { Name = name + "_mnfst_dropdown_0", Source = new FieldSourceDTO(CrateManifestTypes.StandardDesignTimeFields, "AvailableUpstreamManifests") }; - var labelDdlb = new DropDownList { Name = name + "_lbl_dropdown_0", Source = new FieldSourceDTO(CrateManifestTypes.StandardDesignTimeFields, "AvailableUpstreamLabels") }; - - var ctrl = new UpstreamCrateChooser - { - Name = name, - Label = label, - SelectedCrates = new List { new CrateDetails { Label = labelDdlb, ManifestType = manifestDdlb } }, - MultiSelection = isMultiSelection - }; - - return ctrl; - } - - /// - /// Creates RadioButtonGroup to enter specific value or choose value from upstream crate. - /// - public TextSource CreateSpecificOrUpstreamValueChooser( - string label, - string controlName, - string upstreamSourceLabel = "", - string filterByTag = "", - bool addRequestConfigEvent = false, - bool requestUpstream = false) - { - var control = new TextSource(label, upstreamSourceLabel, controlName) - { - Source = new FieldSourceDTO - { - Label = upstreamSourceLabel, - ManifestType = CrateManifestTypes.StandardDesignTimeFields, - FilterByTag = filterByTag, - RequestUpstream = requestUpstream - } - }; - if (addRequestConfigEvent) - { - control.Events.Add(new ControlEvent("onChange", "requestConfig")); - } - - return control; - } - - /// - /// specify selected FieldDO for DropDownList - /// specify Value (TimeSpan) for Duration - /// - public void SetControlValue(ActivityPayload activity, string controlFullName, object value) - { - var crateStorage = activity.CrateStorage; - var controls = GetConfigurationControls(crateStorage); - - if (controls != null) - { - var control = TraverseNestedControls(controls.Controls, controlFullName); - - if (control != null) - { - switch (control.Type) - { - case "TextBlock": - case "TextBox": - case "BuildMessageAppender": - case ControlTypes.TextArea: - control.Value = (string)value; - break; - - case "CheckBox": - control.Selected = true; - break; - - case "DropDownList": - var ddlb = control as DropDownList; - var val = value as ListItem; - ddlb.selectedKey = val.Key; - ddlb.Value = val.Value; - //ddlb.ListItems are not loaded yet - break; - - case "Duration": - var duration = control as Duration; - var timespan = (TimeSpan)value; - duration.Days = timespan.Days; - duration.Hours = timespan.Hours; - duration.Minutes = timespan.Minutes; - break; - - default: - throw new NotSupportedException($"Unsupported control type {control.Type}"); - } - } - } - } - - private ControlDefinitionDTO TraverseNestedControls(List controls, string childControl) - { - ControlDefinitionDTO controlDefinitionDTO = null; - var controlNames = childControl.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries); - if (controlNames.Length > 0 && controls.Count > 0) - { - var control = controls.FirstOrDefault(a => a.Name == controlNames[0]); - - if (control != null) - { - if (controlNames.Count() == 1) - { - controlDefinitionDTO = control; - } - else - { - List nestedControls = null; - - if (control.Type == "RadioButtonGroup") - { - var radio = (control as RadioButtonGroup).Radios.FirstOrDefault(a => a.Name == controlNames[1]); - if (radio != null) - { - radio.Selected = true; - nestedControls = radio.Controls.ToList(); - - controlDefinitionDTO = TraverseNestedControls(nestedControls, string.Join(".", controlNames.Skip(2))); - } - } - //TODO: Add support for future controls with nested child controls - else - throw new NotImplementedException("Can't search for controls inside of " + control.Type); - } - } - } - - return controlDefinitionDTO; - } - - public void RemoveControl(StandardConfigurationControlsCM configurationControls, string name) where T : ControlDefinitionDTO - { - var control = GetControl(configurationControls, name); - if (control != null) - { - configurationControls.Controls.Remove(control); - } - } - - public string ParseConditionToText(List filterData) - { - var parsedConditions = new List(); - - filterData?.ForEach(condition => - { - string parsedCondition = condition.Field; - - switch (condition.Operator) - { - case "eq": - parsedCondition += " = "; - break; - case "neq": - parsedCondition += " != "; - break; - case "gt": - parsedCondition += " > "; - break; - case "gte": - parsedCondition += " >= "; - break; - case "lt": - parsedCondition += " < "; - break; - case "lte": - parsedCondition += " <= "; - break; - default: - throw new NotSupportedException(string.Format("Not supported operator: {0}", condition.Operator)); - } - - parsedCondition += string.Format("'{0}'", condition.Value); - parsedConditions.Add(parsedCondition); - }); - - var finalCondition = string.Join(" AND ", parsedConditions); - - return finalCondition; - } - - /// - /// Creates StandardConfigurationControlsCM with TextSource control - /// - /// Initial Label for the text source control - /// Name of the text source control - /// Label for the upstream source - /// Filter for upstream source, Empty by default - /// True if onChange event needs to be configured, False otherwise. True by default - /// True if the control is required, False otherwise. False by default - public TextSource CreateTextSourceControl( - string label, - string controlName, - string upstreamSourceLabel, - string filterByTag = "", - bool addRequestConfigEvent = false, - bool required = false, - bool requestUpstream = false) - { - var textSourceControl = CreateSpecificOrUpstreamValueChooser( - label, - controlName, - upstreamSourceLabel, - filterByTag, - addRequestConfigEvent, - requestUpstream - ); - textSourceControl.Required = required; - - return textSourceControl; - } - } -} diff --git a/terminalBase/Helpers/PlanHelper.cs b/terminalBase/Helpers/PlanHelper.cs deleted file mode 100644 index f0621a680e..0000000000 --- a/terminalBase/Helpers/PlanHelper.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System; -using System.Threading.Tasks; -using AutoMapper; -using Fr8Data.DataTransferObjects; -using TerminalBase.Infrastructure; - -namespace TerminalBase.Helpers -{ - public class PlanHelper - { - private readonly IHubCommunicator _hubCommunicator; - - public PlanHelper(IHubCommunicator hubCommunicator) - { - _hubCommunicator = hubCommunicator; - } - - protected async Task GetPlansByActivity(string activityId) - { - return await _hubCommunicator.GetPlansByActivity(activityId); - } - - protected async Task UpdatePlan(PlanNoChildrenDTO plan) - { - return await _hubCommunicator.UpdatePlan(plan); - } - - /// - /// Update Plan name if the current Plan name is the same as the passed parameter OriginalPlanName to avoid overwriting the changes made by the user - /// - /// - /// - /// - public async Task UpdatePlanName(Guid activityId, string OriginalPlanName, string NewPlanName) - { - try - { - PlanDTO plan = await GetPlansByActivity(activityId.ToString()); - if (plan != null && plan.Plan.Name.Equals(OriginalPlanName, StringComparison.OrdinalIgnoreCase)) - { - plan.Plan.Name = NewPlanName; - - var emptyPlanDTO = Mapper.Map(plan.Plan); - plan = await UpdatePlan(emptyPlanDTO); - } - - return plan.Plan; - - } - catch (Exception ex) - { - } - return null; - } - - public async Task UpdatePlanCategory(Guid activityId, string category) - { - PlanDTO plan = await GetPlansByActivity(activityId.ToString()); - if (plan != null && plan.Plan != null) - { - plan.Plan.Category = category; - - var emptyPlanDTO = Mapper.Map(plan.Plan); - plan = await UpdatePlan(emptyPlanDTO); - } - - return plan.Plan; - } - } -} diff --git a/terminalBase/Infrastructure/AutoMapperBootstrapper.cs b/terminalBase/Infrastructure/AutoMapperBootstrapper.cs deleted file mode 100644 index b7c0444f9c..0000000000 --- a/terminalBase/Infrastructure/AutoMapperBootstrapper.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using AutoMapper; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Managers; -using StructureMap; -using TerminalBase.Models; - -namespace TerminalBase.Infrastructure -{ - public class AutoMapperBootstrapper - { - public static void ConfigureAutoMapper() - { - Mapper.CreateMap() - .ForMember(x => x.Id, opts => opts.MapFrom(src => src.Id)) - .ForMember(x => x.Token, opts => opts.MapFrom(src => src.Token)) - .ForMember(x => x.ExternalAccountId, opts => opts.MapFrom(src => src.ExternalAccountId)) - .ForMember(x => x.ExternalAccountName, opts => opts.MapFrom(src => src.ExternalAccountName)) - .ForMember(x => x.ExternalDomainId, opts => opts.MapFrom(src => src.ExternalDomainId)) - .ForMember(x => x.ExternalDomainName, opts => opts.MapFrom(src => src.ExternalDomainName)) - .ForMember(x => x.UserId, opts => opts.MapFrom(src => src.UserId)) - .ForMember(x => x.ExternalStateToken, opts => opts.MapFrom(src => src.ExternalStateToken)) - .ForMember(x => x.AdditionalAttributes, opts => opts.MapFrom(src => src.AdditionalAttributes)) - .ForMember(x => x.Error, opts => opts.MapFrom(src => src.Error)) - .ForMember(x => x.AuthCompletedNotificationRequired, opts => opts.MapFrom(src => src.AuthCompletedNotificationRequired)); - - Mapper.CreateMap() - .ForMember(x => x.ChildrenActivities, opts => opts.MapFrom(src => src.ChildrenActivities != null ? src.ChildrenActivities.ToList() : new List())) - .ForMember(x => x.CrateStorage, opts => opts.Ignore()) - .AfterMap((activityDTO, activityPayload) => - { - //there are some mapping inheritance problems in automapper - //that is why i am solving this on afterMap - //TODO inspect this - activityPayload.CrateStorage = GetCrateStorage(activityDTO); - }); - - Mapper.CreateMap() - .ForMember(x => x.ChildrenActivities, opts => opts.MapFrom(x => x.ChildrenActivities.ToArray())) - .ForMember(x => x.CrateStorage, opts => opts.ResolveUsing(CrateStorageDTOResolver)); - - Mapper.CreateMap() - .ForMember(x => x.UserId, opts => opts.MapFrom(x => x.ActivityDTO.AuthToken.UserId)) - .ForMember(x => x.AuthorizationToken,opts => opts.MapFrom(x => x.ActivityDTO.AuthToken)) - .ForMember(x => x.ActivityPayload, opts => opts.MapFrom(x => x.ActivityDTO)); - - Mapper.CreateMap() - .ForMember(x => x.ContainerId, opts => opts.MapFrom(src => src.ContainerId)) - .ForMember(x => x.CrateStorage, opts => opts.ResolveUsing(CrateStorageDTOResolver)); - } - - public static ICrateStorage GetCrateStorage(ActivityDTO activityDTO) - { - var crateManager = ObjectFactory.GetInstance(); - return crateManager.GetStorage(activityDTO); - } - - public static CrateStorageDTO CrateStorageDTOResolver(ContainerExecutionContext executionContext) - { - var crateManager = ObjectFactory.GetInstance(); - return crateManager.ToDto(executionContext.PayloadStorage); - } - - public static CrateStorageDTO CrateStorageDTOResolver(ActivityPayload activityPayload) - { - var crateManager = ObjectFactory.GetInstance(); - return crateManager.ToDto(activityPayload.CrateStorage); - } - } -} diff --git a/terminalBase/Infrastructure/BaseTerminalEvent.cs b/terminalBase/Infrastructure/BaseTerminalEvent.cs deleted file mode 100644 index 27b0ecb5a3..0000000000 --- a/terminalBase/Infrastructure/BaseTerminalEvent.cs +++ /dev/null @@ -1,160 +0,0 @@ -using StructureMap; -using System; -using System.Net.Http; -using System.Threading.Tasks; -using Fr8Data.Crates; -using Fr8Data.Crates.Helpers; -using Fr8Data.DataTransferObjects; -using Fr8Data.Managers; -using Fr8Infrastructure.Interfaces; -using Utilities.Configuration.Azure; - -namespace TerminalBase.Infrastructure -{ - public class BaseTerminalEvent - { - private readonly EventReportCrateFactory _eventReportCrateFactory; - private readonly LoggingDataCrateFactory _loggingDataCrateFactory; - private readonly ICrateManager _crateManager; - - public delegate Task EventParser(string externalEventPayload); - - private string eventWebServerUrl = string.Empty; - private bool eventsDisabled = false; - - public BaseTerminalEvent() - { - //Missing CoreWebServerUrl most likely means that terminal is running in an integration test environment. - //Disable event distribution in such case since we don't need it (nor do we have a Hub instance - //to send events too). - eventWebServerUrl = CloudConfigurationManager.GetSetting("CoreWebServerUrl"); - if (string.IsNullOrEmpty(eventWebServerUrl)) - { - eventsDisabled = true; - } - else - { - eventWebServerUrl += "api/v1/events"; - } - - _eventReportCrateFactory = new EventReportCrateFactory(); - _loggingDataCrateFactory = new LoggingDataCrateFactory(); - _crateManager = ObjectFactory.GetInstance(); - } - - - public Task SendEventOrIncidentReport(string terminalName, string eventType) - { - if (eventsDisabled) return Task.FromResult(string.Empty); - //SF DEBUG -- Skip this event call for local testing - //return; - //make Post call - var restClient = PrepareRestClient(); - var loggingDataCrate = _loggingDataCrateFactory.Create(new LoggingDataCM - { - ObjectId = terminalName, - Data = "service_start_up", - PrimaryCategory = "Operations", - SecondaryCategory = "System Startup", - Activity = "system startup" - }); - //TODO inpect this - //I am not sure what to supply for parameters eventName and palletId, so i passed terminalName and eventType - return restClient.PostAsync(new Uri(eventWebServerUrl, UriKind.Absolute), - _crateManager.ToDto(_eventReportCrateFactory.Create(eventType, terminalName, loggingDataCrate))); - } - - public Task SendEventReport(string terminalName, string message) - { - //SF DEBUG -- Skip this event call for local testing - //return; - if (eventsDisabled) return Task.FromResult(string.Empty); - //make Post call - var restClient = PrepareRestClient(); - var loggingDataCrate = _loggingDataCrateFactory.Create(new LoggingDataCM - { - ObjectId = terminalName, - Data = message, - PrimaryCategory = "Operations", - SecondaryCategory = "System Startup", - Activity = "system startup" - }); - //TODO inpect this - //I am not sure what to supply for parameters eventName and palletId, so i passed terminalName and eventType - return restClient.PostAsync(new Uri(eventWebServerUrl, UriKind.Absolute), - _crateManager.ToDto(_eventReportCrateFactory.Create("Terminal Fact", terminalName, loggingDataCrate))); - } - - /// - /// Sends "Terminal Incident" to report terminal Error - /// - /// Name of the terminal where the exception occured - /// Exception Message - /// Name of the occured exception - /// Id of the current user. It should be obtained from AuthorizationToken - /// Response from the fr8 Event Controller - public Task SendTerminalErrorIncident(string terminalName, string exceptionMessage, string exceptionName, string fr8UserId=null) - { - if (eventsDisabled) return Task.FromResult(string.Empty); - - //prepare the REST client to make the POST to fr8's Event Controller - var restClient = PrepareRestClient(); - - //create event logging data with required information - var loggingDataCrate = _loggingDataCrateFactory.Create(new LoggingDataCM - { - Fr8UserId = fr8UserId, - ObjectId = terminalName, - Data = exceptionMessage, - PrimaryCategory = "TerminalError", - SecondaryCategory = exceptionName, - Activity = "Occured" - }); - - //return the response from the fr8's Event Controller - return restClient.PostAsync(new Uri(eventWebServerUrl, UriKind.Absolute), - _crateManager.ToDto(_eventReportCrateFactory.Create("Terminal Incident", terminalName, loggingDataCrate))); - } - - /// - /// Initializes a new rest call - /// - /// The protected access specifier is only for Unit Test purpose. - /// In all other scenarios it should be teated as private - protected virtual IRestfulServiceClient PrepareRestClient() - { - return ObjectFactory.GetInstance(); - } - - /// - /// Processing the external event pay load received - /// - /// event pay load received - /// delegate method - public async Task Process(string curExternalEventPayload, EventParser parser) - { - var client = ObjectFactory.GetInstance(); - - var fr8EventUrl = CloudConfigurationManager.GetSetting("CoreWebServerUrl") + "api/v1/events"; - var eventReportCrateDTO = _crateManager.ToDto(await parser.Invoke(curExternalEventPayload)); - - if (eventReportCrateDTO != null) - { - Uri url = new Uri(fr8EventUrl, UriKind.Absolute); - try - { - //TODO are we expecting a timeout?? - await client.PostAsync(url, eventReportCrateDTO); - } - catch (TaskCanceledException) - { - //Timeout - throw new TimeoutException( - String.Format("Timeout while making HTTP request. \r\nURL: {0}, \r\nMethod: {1}", - url.ToString(), - HttpMethod.Post.Method)); - } - } - } - } -} \ No newline at end of file diff --git a/terminalBase/Infrastructure/Behaviors/BaseControlMappingBehavior.cs b/terminalBase/Infrastructure/Behaviors/BaseControlMappingBehavior.cs deleted file mode 100644 index 645759a71f..0000000000 --- a/terminalBase/Infrastructure/Behaviors/BaseControlMappingBehavior.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System.Linq; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Managers; -using Fr8Data.Manifests; -using StructureMap; - -namespace TerminalBase.Infrastructure.Behaviors -{ - public abstract class BaseControlMappingBehavior where T : ControlDefinitionDTO - { - public const string ConfigurationControlsLabel = "Configuration_Controls"; - public static string BehaviorPrefix = ""; - - protected ICrateManager _crateManager; - protected ICrateStorage _crateStorage; - protected string _behaviorName; - - protected BaseControlMappingBehavior(ICrateStorage crateStorage,string behaviorName) - { - _crateManager = ObjectFactory.GetInstance(); - _crateStorage = crateStorage; - BehaviorPrefix = behaviorName; - } - - public ICrateStorage CrateStorage - { - get { return _crateStorage; } - } - protected StandardConfigurationControlsCM GetOrCreateStandardConfigurationControlsCM() - { - var controlsCM = _crateStorage - .CrateContentsOfType() - .FirstOrDefault(); - - if (controlsCM == null) - { - var crate = _crateManager.CreateStandardConfigurationControlsCrate(ConfigurationControlsLabel); - _crateStorage.Add(crate); - - controlsCM = crate.Content; - } - - return controlsCM; - } - - protected bool IsBehaviorControl(ControlDefinitionDTO control) - { - return control.Name != null && control.Name.StartsWith(BehaviorPrefix); - } - - protected string GetFieldId(ControlDefinitionDTO control) - { - return control.Name.Substring(BehaviorPrefix.Length); - } - - public void Clear() - { - var controlsCM = GetOrCreateStandardConfigurationControlsCM(); - - var controls = controlsCM.Controls.Where(IsBehaviorControl) - .OfType() - .ToList(); - - foreach (var control in controls) - { - controlsCM.Controls.Remove(control); - } - } - } -} diff --git a/terminalBase/Infrastructure/Behaviors/CheckBoxMappingBehavior.cs b/terminalBase/Infrastructure/Behaviors/CheckBoxMappingBehavior.cs deleted file mode 100644 index bf22c2031b..0000000000 --- a/terminalBase/Infrastructure/Behaviors/CheckBoxMappingBehavior.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Control; -using Fr8Data.Crates; - -namespace TerminalBase.Infrastructure.Behaviors -{ - public class CheckBoxMappingBehavior : BaseControlMappingBehavior - { - public CheckBoxMappingBehavior(ICrateStorage crateStorage, string behaviorName) - : base(crateStorage, behaviorName) - { - // BehaviorPrefix = behaviorName; - } - - public void Append(string fieldId, string label) - { - var controlsCM = GetOrCreateStandardConfigurationControlsCM(); - - var name = string.Concat(BehaviorPrefix, fieldId); - - var textSource = new CheckBox() - { - Label = label, - Name = name - }; - controlsCM.Controls.Add(textSource); - } - - public List GetValues(ICrateStorage payload = null) - { - var controlsCM = GetOrCreateStandardConfigurationControlsCM(); - - var checkBoxes = controlsCM - .Controls.Where(IsBehaviorControl).OfType(); - var checkBoxesResult = new List(); - foreach (var checkBox in checkBoxes) - { - checkBox.Name = GetFieldId(checkBox); - checkBoxesResult.Add(checkBox); - } - - return checkBoxesResult; - } - } -} diff --git a/terminalBase/Infrastructure/Behaviors/DropDownListMappingBehavior.cs b/terminalBase/Infrastructure/Behaviors/DropDownListMappingBehavior.cs deleted file mode 100644 index 156c298671..0000000000 --- a/terminalBase/Infrastructure/Behaviors/DropDownListMappingBehavior.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Control; -using Fr8Data.Crates; - -namespace TerminalBase.Infrastructure.Behaviors -{ - public class DropDownListMappingBehavior : BaseControlMappingBehavior - { - public DropDownListMappingBehavior(ICrateStorage crateStorage, string behaviorName) - : base(crateStorage, behaviorName) - { - // BehaviorPrefix = "DropDownListMappingBehavior-"; - } - - public void Append(string name, string labelName, List items) - { - var controlsCM = GetOrCreateStandardConfigurationControlsCM(); - - var theName = string.Concat(BehaviorPrefix, name); - - var userDefinedDropDownList = new DropDownList() - { - Name = theName, - Label = labelName, - ListItems = items - }; - - //set selected key to first item - var firstItem = items.FirstOrDefault(); - if (firstItem != null) - { - userDefinedDropDownList.selectedKey = firstItem.Key; - } - - controlsCM.Controls.Add(userDefinedDropDownList); - } - - public List GetValues(ICrateStorage payload = null) - { - var controlsCM = GetOrCreateStandardConfigurationControlsCM(); - - var dropDownLists = controlsCM - .Controls.Where(IsBehaviorControl).OfType(); - var resultDropDownCollection = new List(); - foreach (var list in dropDownLists) - { - list.Name = GetFieldId(list); - resultDropDownCollection.Add(list); - } - - return resultDropDownCollection; - } - } - } diff --git a/terminalBase/Infrastructure/Behaviors/RadioButtonGroupMappingBehavior.cs b/terminalBase/Infrastructure/Behaviors/RadioButtonGroupMappingBehavior.cs deleted file mode 100644 index acf84c440e..0000000000 --- a/terminalBase/Infrastructure/Behaviors/RadioButtonGroupMappingBehavior.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Control; -using Fr8Data.Crates; - -namespace TerminalBase.Infrastructure.Behaviors -{ - public class RadioButtonGroupMappingBehavior : BaseControlMappingBehavior - { - public RadioButtonGroupMappingBehavior(ICrateStorage crateStorage, string behaviorName) - : base(crateStorage, behaviorName) - { - // BehaviorPrefix = "RadioButtonGroupMappingBehavior-"; - } - - public void Append(string name, string label, List radios ) - { - var controlsCM = GetOrCreateStandardConfigurationControlsCM(); - - var mappingName = string.Concat(BehaviorPrefix, name); - - var userDefinedRadioButtonGroup = new RadioButtonGroup() - { - GroupName = mappingName, - Name = mappingName, - Label = string.IsNullOrEmpty(label) ? name : label, - Radios = radios - }; - - controlsCM.Controls.Add(userDefinedRadioButtonGroup); - } - - public List GetValues(ICrateStorage payload = null) - { - var controlsCM = GetOrCreateStandardConfigurationControlsCM(); - - var radioButtonGroups = controlsCM - .Controls.Where(IsBehaviorControl).OfType(); - - foreach (var rbGroup in radioButtonGroups) - { - rbGroup.GroupName = GetFieldId(rbGroup); - } - - return radioButtonGroups.ToList(); - } - } -} diff --git a/terminalBase/Infrastructure/Behaviors/ReconfigurationListBehavior.cs b/terminalBase/Infrastructure/Behaviors/ReconfigurationListBehavior.cs deleted file mode 100644 index ee9ce49724..0000000000 --- a/terminalBase/Infrastructure/Behaviors/ReconfigurationListBehavior.cs +++ /dev/null @@ -1,147 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Fr8Data.DataTransferObjects; -using TerminalBase.Models; - -namespace TerminalBase.Infrastructure.Behaviors -{ - /// - /// A single ReconfigurationList item. - /// - public class ConfigurationRequest - { - /// - /// Delegate that used by ReconfigurationList algorithm to check whether activity exists in the list of solution's child-nodes. - /// - public Func> HasActivityMethod { get; set; } - - /// - /// Delegate that used by ReconfigurationList algorithm to create a new activity and add it to solution child-nodes. - /// - public Func> CreateActivityMethod { get; set; } - - /// - /// Delegate that used by ReconfigurationList algorithm to configure existing activity in the list of solution child-nodes. - /// - public Func> ConfigureActivityMethod { get; set; } - - /// - /// Ordering number of a child activity to be configured. - /// - public int ChildActivityIndex { get; set; } - } - - /// - /// Context of ReconfigurationList behavior that is passed to ConfigurationRequest's delegates. - /// - public class ReconfigurationContext - { - public ReconfigurationContext() - { - AdditionalRequests = new List(); - } - - /// - /// Solution activity that ReconfigurationLists is run for. - /// - public ActivityPayload SolutionActivity { get; set; } - - /// - /// Current AuthToken. - /// - public AuthorizationToken AuthToken { get; set; } - - /// - /// The list of initial requests. - /// - public IReadOnlyList Requests { get; set; } - - /// - /// The list of additional requests, that is generated by one of ConfigurationRequest's delegates. - /// List of additional requests is added to the end of ReconfigurationList's processing queue. - /// - public List AdditionalRequests { get; set; } - } - - - /// - /// Class that implements ReconfigurationList algorithm. - /// Algorithm: - /// ReconfigureList = all child activities - /// While (ReconfigureList is not empty) (i.e. for each child activity in the list): - /// If (Child activity does not exist): - /// CreateNewChildActivity - /// Else - /// ReconfigureChildActivity - /// - /// If (a downstream activity is dependend on current activity): - /// Add downstream activity to processing queue - /// - /// RemoveActivityFromList - /// End of Algorithm. - /// - /// ReconfigurationListBehavior targets scenarios, whens solution pre-configures child activities from different terminals which require authentication. - /// As an example we can take a look at Mail_Merge solution, when user adds GoogleSheet and Send_DocuSign_Envelope activities, - /// and both Google and DocuSign terminal to not have default auth-tokens. - /// In such case Hub asks user to perform authentication, assigns auth-tokens to child activities, and reconfigures the entire solution again. - /// ReconfigurationList helps to structure the code to ease entire solution reconfiguration scenarios. - /// See https://maginot.atlassian.net/browse/FR-2488 for more details. - /// - public class ReconfigurationListBehavior - { - /// - /// ReconfigurationList algorithm. - /// - public async Task ReconfigureActivities(ActivityPayload solution, - AuthorizationToken authToken, IReadOnlyList items) - { - var queue = new Queue(items); - - if (solution.ChildrenActivities == null) - { - solution.ChildrenActivities = new List(); - } - - while (queue.Count > 0) - { - var item = queue.Dequeue(); - - var context = new ReconfigurationContext() - { - SolutionActivity = solution, - AuthToken = authToken, - Requests = items - }; - - if (!await item.HasActivityMethod(context)) - { - var childActivityByIndex = solution.ChildrenActivities - .SingleOrDefault(x => x.Ordering == item.ChildActivityIndex); - - if (childActivityByIndex != null) - { - solution.ChildrenActivities.Remove(childActivityByIndex); - } - await item.CreateActivityMethod(context); - } - else - { - await item.ConfigureActivityMethod(context); - } - - if (context.AdditionalRequests.Count > 0) - { - foreach (var additionalItem in context.AdditionalRequests) - { - if (queue.All(x => x.ChildActivityIndex != additionalItem.ChildActivityIndex)) - { - queue.Enqueue(additionalItem); - } - } - } - } - } - } -} diff --git a/terminalBase/Infrastructure/Behaviors/TextSourceMappingBehavior.cs b/terminalBase/Infrastructure/Behaviors/TextSourceMappingBehavior.cs deleted file mode 100644 index f0bc4fd1d1..0000000000 --- a/terminalBase/Infrastructure/Behaviors/TextSourceMappingBehavior.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Control; -using Fr8Data.Crates; -using Fr8Data.Manifests; -using Fr8Data.States; - -namespace TerminalBase.Infrastructure.Behaviors -{ - public class TextSourceMappingBehavior : BaseControlMappingBehavior - { - private readonly bool _reqeustUpstream; - - public TextSourceMappingBehavior(ICrateStorage crateStorage, string behaviorName, bool requestUpstream) - : base(crateStorage, behaviorName) - { - _reqeustUpstream = requestUpstream; - - //BehaviorPrefix = "TextSourceMappingBehavior-"; - } - - public void Append(IEnumerable fieldIds, string upstreamSourceLabel, AvailabilityType availability = AvailabilityType.NotSet) - { - var controlsCM = GetOrCreateStandardConfigurationControlsCM(); - - foreach (var fieldId in fieldIds) - { - var name = string.Concat(BehaviorPrefix, fieldId); - - var textSource = new TextSource(fieldId, upstreamSourceLabel, name); - if (_reqeustUpstream) - { - textSource.Source = new FieldSourceDTO() - { - ManifestType = CrateManifestTypes.StandardDesignTimeFields, - RequestUpstream = true, - AvailabilityType = availability - }; - } - - controlsCM.Controls.Add(textSource); - } - } - - public IDictionary GetValues(ICrateStorage payload = null) - { - var controlsCM = GetOrCreateStandardConfigurationControlsCM(); - var result = new Dictionary(); - - var textSources = controlsCM - .Controls - .Where(IsBehaviorControl) - .OfType(); - - foreach (var textSource in textSources) - { - var fieldId = GetFieldId(textSource); - string value = null; - try - { - value = textSource.GetValue(payload ?? _crateStorage); - } - catch { } - result.Add(fieldId, value); - } - - return result; - } - } -} diff --git a/terminalBase/Infrastructure/DynamicControlsAttribute.cs b/terminalBase/Infrastructure/DynamicControlsAttribute.cs deleted file mode 100644 index 1e310b58af..0000000000 --- a/terminalBase/Infrastructure/DynamicControlsAttribute.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; - -namespace TerminalBase.BaseClasses -{ - // Mark collection property in your ActivityUi class to enable this collection to sync with dynamic controls list - // See https://maginot.atlassian.net/wiki/display/DDW/Support+for+dynamic+controls+in+ETA for more details - [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] - public sealed class DynamicControlsAttribute : Attribute - { - } -} \ No newline at end of file diff --git a/terminalBase/Infrastructure/EnhancedValidationManager.cs b/terminalBase/Infrastructure/EnhancedValidationManager.cs deleted file mode 100644 index 9864efe7ac..0000000000 --- a/terminalBase/Infrastructure/EnhancedValidationManager.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Helpers; -using Fr8Data.Manifests; -using TerminalBase.BaseClasses; -using TerminalBase.Helpers; - -namespace TerminalBase.Infrastructure -{ - public class EnhancedValidationManager : ValidationManager where TActivityUi : StandardConfigurationControlsCM - { - private readonly TActivityUi _activityUi; - //'Owner' in this context is the name of property holding the collection that contains particular control - private readonly Dictionary _ownerNameByControl; - - - public EnhancedValidationManager(EnhancedTerminalActivity activity, ICrateStorage payload) - : base(payload) - { - if (activity == null) - { - throw new ArgumentNullException(nameof(activity)); - } - - _activityUi = activity.ActivityUI; - _ownerNameByControl = new Dictionary(); - - FillOwnerByControl(); - } - - private void FillOwnerByControl() - { - foreach (var collectionProperty in Fr8ReflectionHelper.GetMembers(typeof(TActivityUi)).Where(x => x.CanRead - && x.GetCustomAttribute() != null - && Fr8ReflectionHelper.CheckIfMemberIsCollectionOf(x))) - { - var collection = collectionProperty.GetValue(_activityUi) as IEnumerable; - if (collection == null) - { - continue; - } - foreach (var control in collection) - { - _ownerNameByControl.Add(control, collectionProperty.Name); - } - } - } - - protected override string ResolveControlName(ControlDefinitionDTO control) - { - string ownerName; - return _ownerNameByControl.TryGetValue(control, out ownerName) - ? ActivityHelper.GetDynamicControlName(control.Name, ownerName) - : base.ResolveControlName(control); - } - } -} \ No newline at end of file diff --git a/terminalBase/Infrastructure/JsonParser.cs b/terminalBase/Infrastructure/JsonParser.cs deleted file mode 100644 index 94b2357c91..0000000000 --- a/terminalBase/Infrastructure/JsonParser.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using Newtonsoft.Json.Linq; - -namespace TerminalBase.Infrastructure -{ - /// - /// JSON utility class, to help parse JSON data in terminals. - /// - public static class JsonParser - { - /// - /// Extract property value from JSON object. - /// - public static T ExtractPropertyValue(this JObject obj, string propertyName) - { - var valueToken = obj.GetValue(propertyName); - if (valueToken == null - || valueToken.ToObject() == null) - { - throw new Exception(string.Format("\"{0}\" attribute is not specified", propertyName)); - } - - var result = valueToken.ToObject(); - return result; - } - } -} diff --git a/terminalBase/Infrastructure/States/ConfigurationRequestType.cs b/terminalBase/Infrastructure/States/ConfigurationRequestType.cs deleted file mode 100644 index dda3a76181..0000000000 --- a/terminalBase/Infrastructure/States/ConfigurationRequestType.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace TerminalBase.Infrastructure -{ - public enum ConfigurationRequestType - { - Initial, - Followup - } -} diff --git a/terminalBase/Infrastructure/TerminalBootstrapper.cs b/terminalBase/Infrastructure/TerminalBootstrapper.cs deleted file mode 100644 index 33399be0c4..0000000000 --- a/terminalBase/Infrastructure/TerminalBootstrapper.cs +++ /dev/null @@ -1,46 +0,0 @@ -using Fr8Data.Managers; -using StructureMap; -using StructureMap.Configuration.DSL; -using TerminalBase.Services; -using Utilities; - -namespace TerminalBase.Infrastructure -{ - public class TerminalBootstrapper - { - public const string TestHubCommunicatorKey = "TestHubCommunicator"; - - - public static void ConfigureLive() - { - ObjectFactory.Configure(x => x.AddRegistry()); - } - - public static void ConfigureTest() - { - ObjectFactory.Configure(x => x.AddRegistry()); - } - - public class LiveMode : Registry - { - public LiveMode() - { - For().Use(); - For().Use(); - For().Use(); - For().Use(); - } - } - - public class TestMode : Registry - { - public TestMode() - { - For().Use(); - For().Use(); - For().Use(); - For().Use(); - } - } - } -} diff --git a/terminalBase/Infrastructure/ValidationExtensions.cs b/terminalBase/Infrastructure/ValidationExtensions.cs deleted file mode 100644 index 293e9548c0..0000000000 --- a/terminalBase/Infrastructure/ValidationExtensions.cs +++ /dev/null @@ -1,85 +0,0 @@ -using Fr8Data.Control; -using Fr8Data.DataTransferObjects; -using PhoneNumbers; -using Utilities; - -namespace TerminalBase.Infrastructure -{ - public static class ValidationExtensions - { - public static void ValidateEmail(this ValidationManager validationManager, ControlDefinitionDTO control, string errorMessage = null) - { - if (!Utilities.RegexUtilities.IsValidEmailAddress(control.Value)) - { - validationManager.SetError(errorMessage ?? "Not a valid e-mail address", control); - } - } - - public static void ValidateEmail(this ValidationManager validationManager, TextSource textSource, string errorMessage = null) - { - //The validation actually won't go further only if Upstream is set as source but payload is not avaialable. That means we can't yet validate - if (!textSource.CanGetValue(validationManager.Payload) && !textSource.ValueSourceIsNotSet) - { - return; - } - var value = textSource.CanGetValue(validationManager.Payload) ? textSource.GetValue(validationManager.Payload) : string.Empty; - if (!RegexUtilities.IsValidEmailAddress(value)) - { - validationManager.SetError(errorMessage ?? "Not a valid e-mail address", textSource); - } - } - - public static bool ValidatePhoneNumber(this ValidationManager validationManager, string number, TextSource control) - { - try - { - PhoneNumberUtil phoneUtil = PhoneNumberUtil.GetInstance(); - - bool isAlphaNumber = phoneUtil.IsAlphaNumber(number); - PhoneNumber phoneNumber = phoneUtil.Parse(number, ""); - if (isAlphaNumber || !phoneUtil.IsValidNumber(phoneNumber)) - { - validationManager.SetError(control.InitialLabel + " Is Invalid", control); - return false; - } - - } - catch (NumberParseException npe) - { - validationManager.SetError("Failed to parse " + control.InitialLabel + " " + npe.Message, control); - return false; - } - - return true; - } - - - public static bool ValidateTextSourceNotEmpty(this ValidationManager validationManager, TextSource control, string errorMessage) - { - if (control != null && control.CanGetValue(validationManager.Payload) && string.IsNullOrWhiteSpace(control.GetValue(validationManager.Payload))) - { - validationManager.SetError(errorMessage, control); - return false; - } - - return true; - } - - public static bool ValidateCrateChooserNotEmpty(this ValidationManager validationManager, CrateChooser crateChooser, string errorMessage) - { - if (!crateChooser.HasValue) - { - validationManager.SetError(errorMessage, crateChooser); - return false; - } - - if (crateChooser.CanGetValue(validationManager.Payload) && crateChooser.GetValue(validationManager.Payload) == null) - { - validationManager.SetError(errorMessage, crateChooser); - return false; - } - - return true; - } - } -} diff --git a/terminalBase/Infrastructure/ValidationManager.cs b/terminalBase/Infrastructure/ValidationManager.cs deleted file mode 100644 index cb7ea9f4c7..0000000000 --- a/terminalBase/Infrastructure/ValidationManager.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Manifests; - -namespace TerminalBase.Infrastructure -{ - public class ValidationManager - { - private readonly ValidationResultsCM _validationResults; - - public bool HasErrors => _validationResults?.ValidationErrors?.Count > 0; - public ValidationResultsCM ValidationResults => _validationResults; - public ICrateStorage Payload { get; } - - public ValidationManager(ICrateStorage payload) - { - _validationResults = new ValidationResultsCM(); - Payload = payload; - } - - /// - /// Clears all validation errors - /// - public void Reset() - { - CheckSettings(); - - _validationResults.ValidationErrors?.Clear(); - } - - public void SetError(string errorMessage, params ControlDefinitionDTO[] controls) - { - SetError(errorMessage, controls.Select(ResolveControlName).Where(x => !string.IsNullOrWhiteSpace(x)).ToArray()); - } - - public void SetError(string errorMessage) - { - SetError(errorMessage, (string[])null); - } - - public void SetError(string errorMessage, params string[] controlNames) - { - CheckSettings(); - - if (_validationResults.ValidationErrors == null) - { - _validationResults.ValidationErrors = new List(); - } - - _validationResults.ValidationErrors.Add(new ValidationResultDTO - { - ErrorMessage = errorMessage, - ControlNames = controlNames != null ? new List(controlNames) : null - }); - } - - protected virtual string ResolveControlName(ControlDefinitionDTO control) - { - return control?.Name; - } - - private void CheckSettings() - { - if (_validationResults == null) - { - throw new InvalidOperationException("ValidationResultsCM was not set."); - } - } - } -} diff --git a/terminalBase/Infrastructure/fr8TerminalHMACAuthenticateAttribute.cs b/terminalBase/Infrastructure/fr8TerminalHMACAuthenticateAttribute.cs deleted file mode 100644 index 83fa30785d..0000000000 --- a/terminalBase/Infrastructure/fr8TerminalHMACAuthenticateAttribute.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Configuration; -using System.Security.Principal; -using System.Threading.Tasks; -using System.Web; -using System.Web.Http.Filters; -using Utilities.Configuration.Azure; -using System.Threading; -using Fr8Infrastructure.Security; - -namespace TerminalBase.Infrastructure -{ - public class fr8TerminalHMACAuthenticateAttribute : fr8HMACAuthenticateAttribute - { - protected string TerminalSecret { get; set; } - protected string TerminalId { get; set; } - public fr8TerminalHMACAuthenticateAttribute(string terminalName) - { - TerminalSecret = CloudConfigurationManager.GetSetting("TerminalSecret"); - TerminalId = CloudConfigurationManager.GetSetting("TerminalId"); - - //we might be on integration test currently - if (TerminalSecret == null || TerminalId == null) - { - TerminalSecret = ConfigurationManager.AppSettings[terminalName + "TerminalSecret"]; - TerminalId = ConfigurationManager.AppSettings[terminalName + "TerminalId"]; - } - } - - protected override void Success(HttpAuthenticationContext context, string terminalId, string userId) - { - var identity = new GenericIdentity("terminal-" + terminalId, userId); - var principle = new GenericPrincipal(identity, new string[] { }); - Thread.CurrentPrincipal = principle; - context.Principal = principle; - if (HttpContext.Current != null) - { - HttpContext.Current.User = principle; - } - } - - protected override async Task GetTerminalSecret(string terminalId) - { - if (terminalId == TerminalId) - { - return TerminalSecret; - } - - return null; - } - - protected override Task CheckPermission(string terminalId, string userId) - { - return Task.FromResult(true); - } - } -} \ No newline at end of file diff --git a/terminalBase/Interfaces/IActivity.cs b/terminalBase/Interfaces/IActivity.cs deleted file mode 100644 index b6b63363e8..0000000000 --- a/terminalBase/Interfaces/IActivity.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Threading.Tasks; -using Fr8Data.DataTransferObjects; -using TerminalBase.Models; - -namespace TerminalBase.Interfaces -{ - public interface IActivity - { - Task Run(ActivityContext activityContext, ContainerExecutionContext containerExecutionContext); - Task RunChildActivities(ActivityContext activityContext, ContainerExecutionContext containerExecutionContext); - Task Configure(ActivityContext activityContext); - Task Activate(ActivityContext activityContext); - Task Deactivate(ActivityContext activityContext); - Task GetDocumentation(ActivityContext activityContext, string documentationType); - } -} diff --git a/terminalBase/Interfaces/IActivityFactory.cs b/terminalBase/Interfaces/IActivityFactory.cs deleted file mode 100644 index 7e8f3ec39b..0000000000 --- a/terminalBase/Interfaces/IActivityFactory.cs +++ /dev/null @@ -1,9 +0,0 @@ -using TerminalBase.Models; - -namespace TerminalBase.Interfaces -{ - public interface IActivityFactory - { - IActivity Create(); - } -} diff --git a/terminalBase/Interfaces/IHubCommunicator.cs b/terminalBase/Interfaces/IHubCommunicator.cs deleted file mode 100644 index 4e618748f8..0000000000 --- a/terminalBase/Interfaces/IHubCommunicator.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Threading.Tasks; -using Fr8Data.Constants; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Manifests; -using Fr8Data.States; -using TerminalBase.Models; - -namespace TerminalBase.Infrastructure -{ - public interface IHubCommunicator - { - string UserId { get; } - - void Configure(string terminalName, string userId); - - Task GetPayload(Guid containerId); - Task GetCurrentUser(); - Task GetAvailableData(Guid activityId, CrateDirection direction, AvailabilityType availability); - Task>> GetCratesByDirection(Guid activityId, CrateDirection direction); - Task> GetCratesByDirection(Guid activityId, CrateDirection direction); - Task CreateAlarm(AlarmDTO alarmDTO); - Task> GetActivityTemplates(bool getLatestsVersionsOnly = false); - Task> GetActivityTemplates(ActivityCategory category, bool getLatestsVersionsOnly = false); - Task> GetActivityTemplates(string tag, bool getLatestsVersionsOnly = false); - Task> ValidateFields(List fields); - Task GetAuthToken(string authTokenId); - Task ScheduleEvent(string externalAccountId, string minutes); - Task ConfigureActivity(ActivityPayload activityPayload); - Task SaveActivity(ActivityPayload activityPayload); - Task CreateAndConfigureActivity(Guid templateId, string name = null, int? order = null, Guid? parentNodeId = null, bool createPlan = false, Guid? authorizationTokenId = null); - Task CreatePlan(PlanNoChildrenDTO planDTO); - Task RunPlan(Guid planId, List payload); - Task> GetStoredManifests(List cratesForMTRequest); - Task> GetPlansByName(string name, PlanVisibility visibility = PlanVisibility.Standard); - Task SaveFile(string name, Stream stream); - Task DownloadFile(int fileId); - Task> GetFiles(); - Task ApplyNewToken(Guid activityId, Guid authTokenId); - Task DeletePlan(Guid planId); - Task DeleteActivity(Guid curActivityId); - Task DeleteExistingChildNodesFromActivity(Guid curActivityId); - Task GetPlansByActivity(string activityId); - Task UpdatePlan(PlanNoChildrenDTO plan); - Task NotifyUser(TerminalNotificationDTO notificationMessage); - Task RenewToken(AuthorizationTokenDTO token); - } -} diff --git a/terminalBase/Models/ActivityContext.cs b/terminalBase/Models/ActivityContext.cs deleted file mode 100644 index eda487f331..0000000000 --- a/terminalBase/Models/ActivityContext.cs +++ /dev/null @@ -1,15 +0,0 @@ -using TerminalBase.Infrastructure; - -namespace TerminalBase.Models -{ - // This is for data requiered for generic activity requests processing - // We use dedicated class to avoid ugly Win32 API-like methods with enormous number of parameters - // Also this will help to add new parameters without forcing ALL activities to be rewritten beacuse of signature change. - public class ActivityContext - { - public ActivityPayload ActivityPayload { get; set; } - public AuthorizationToken AuthorizationToken { get; set; } - public string UserId { get; set; } - public IHubCommunicator HubCommunicator { get; set; } - } -} diff --git a/terminalBase/Models/ActivityPayload.cs b/terminalBase/Models/ActivityPayload.cs deleted file mode 100644 index ab149c8ee7..0000000000 --- a/terminalBase/Models/ActivityPayload.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; - -namespace TerminalBase.Models -{ - public class ActivityPayload - { - public Guid Id { get; set; } - public string Label { get; set; } - public string Name { get; set; } - public List ChildrenActivities { get; set; } - public ActivityTemplateDTO ActivityTemplate { get; set; } - public ICrateStorage CrateStorage { get; set; } - public Guid? RootPlanNodeId { get; set; } - public Guid? ParentPlanNodeId { get; set; } - public int Ordering { get; set; } - } -} diff --git a/terminalBase/Models/ActivityRegistrationKey.cs b/terminalBase/Models/ActivityRegistrationKey.cs deleted file mode 100644 index d9be0897fb..0000000000 --- a/terminalBase/Models/ActivityRegistrationKey.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Fr8Data.DataTransferObjects; - -namespace TerminalBase.Models -{ - public struct ActivityRegistrationKey - { - public readonly ActivityTemplateDTO ActivityTemplateDTO; - - public ActivityRegistrationKey(ActivityTemplateDTO activityTemplateDTO) - { - ActivityTemplateDTO = activityTemplateDTO; - } - - public bool Equals(ActivityRegistrationKey other) - { - return string.Equals(ActivityTemplateDTO.Name, other.ActivityTemplateDTO.Name) && string.Equals(ActivityTemplateDTO.Version, other.ActivityTemplateDTO.Version); - } - - public override bool Equals(object obj) - { - if (ReferenceEquals(null, obj)) return false; - return obj is ActivityRegistrationKey && Equals((ActivityRegistrationKey)obj); - } - - public override int GetHashCode() - { - unchecked - { - return ((ActivityTemplateDTO.Name?.GetHashCode() ?? 0) * 397) ^ (ActivityTemplateDTO.Version?.GetHashCode() ?? 0); - } - } - } -} diff --git a/terminalBase/Models/AuthorizationToken.cs b/terminalBase/Models/AuthorizationToken.cs deleted file mode 100644 index d49980bcb8..0000000000 --- a/terminalBase/Models/AuthorizationToken.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace TerminalBase.Models -{ - public class AuthorizationToken - { - public string Id { get; set; } - public string Token { get; set; } - public string ExternalAccountId { get; set; } - public string ExternalDomainId { get; set; } - public string ExternalAccountName { get; set; } - public string ExternalDomainName { get; set; } - public string UserId { get; set; } - public string ExternalStateToken { get; set; } - public string AdditionalAttributes { get; set; } - public string Error { get; set; } - public bool AuthCompletedNotificationRequired { get; set; } - public int TerminalID { get; set; } - } -} diff --git a/terminalBase/Models/ContainerExecutionContext.cs b/terminalBase/Models/ContainerExecutionContext.cs deleted file mode 100644 index 16e42f759e..0000000000 --- a/terminalBase/Models/ContainerExecutionContext.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Fr8Data.Crates; - -namespace TerminalBase.Models -{ - public class ContainerExecutionContext - { - public ICrateStorage PayloadStorage { get; set; } - public Guid ContainerId { get; set; } - } -} diff --git a/terminalBase/Properties/AssemblyInfo.cs b/terminalBase/Properties/AssemblyInfo.cs deleted file mode 100644 index 43e2fd30de..0000000000 --- a/terminalBase/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TerminalBase")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("TerminalBase")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2015")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("2fe10b5a-76b8-4eb1-ba4a-313f1e4916a8")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/terminalBase/Services/ActivityExecutor.cs b/terminalBase/Services/ActivityExecutor.cs deleted file mode 100644 index 46f431ef68..0000000000 --- a/terminalBase/Services/ActivityExecutor.cs +++ /dev/null @@ -1,155 +0,0 @@ -using System; -using System.Threading.Tasks; -using AutoMapper; -using Fr8Data.DataTransferObjects; -using Fr8Data.Managers; -using StructureMap; -using TerminalBase.Infrastructure; -using TerminalBase.Interfaces; -using TerminalBase.Models; - -namespace TerminalBase.Services -{ - public class ActivityExecutor - { - private IHubCommunicator _hubCommunicator; - - protected readonly ICrateManager CrateManager; - - public ActivityExecutor(IHubCommunicator hubCommunicator, ICrateManager crateManager) - { - _hubCommunicator = hubCommunicator; - CrateManager = crateManager; - } - - public async Task HandleFr8Request(string curTerminal, string curActionPath, Fr8DataDTO curDataDTO) - { - if (curDataDTO == null) - { - throw new ArgumentNullException(nameof(curDataDTO)); - } - if (curDataDTO.ActivityDTO == null) - { - throw new ArgumentException(nameof(curDataDTO.ActivityDTO) + " is null"); - } - if (curDataDTO.ActivityDTO.ActivityTemplate == null) - { - throw new ArgumentException(nameof(curDataDTO.ActivityDTO.ActivityTemplate) + " is null"); - } - - - ActivityContext activityContext = DeserializeRequest(curDataDTO); - - //we should remove this mode - var activityTemplate = curDataDTO.ActivityDTO.ActivityTemplate; - IActivityFactory factory; - - - if (activityTemplate.Name.EndsWith("_TEST")) - { - var originalName = activityTemplate.Name; - - _hubCommunicator = new TestMonitoringHubCommunicator(curDataDTO.ExplicitData); - activityTemplate.Name = activityTemplate.Name.Substring(0, activityTemplate.Name.Length - "_TEST".Length); - - factory = ActivityStore.GetValue(activityTemplate); - - activityTemplate.Name = originalName; - } - else - { - factory = ActivityStore.GetValue(curDataDTO.ActivityDTO.ActivityTemplate); - } - - - if (factory == null) - { - throw new ArgumentException($"Activity template registration for [Name = '{curDataDTO.ActivityDTO.ActivityTemplate.Name}', Version = '{curDataDTO.ActivityDTO.ActivityTemplate.Version}'] not found"); - } - - var activity = factory.Create(); - - _hubCommunicator.Configure(curTerminal, activityContext.UserId); - - activityContext.HubCommunicator = _hubCommunicator; - - ContainerExecutionContext executionContext; - - switch (curActionPath.ToLower()) - { - case "configure": - await activity.Configure(activityContext); - return SerializeResponse(activityContext); - - case "activate": - await activity.Activate(activityContext); - return SerializeResponse(activityContext); - - case "deactivate": - await activity.Deactivate(activityContext); - return SerializeResponse(activityContext); - - case "run": - executionContext = await CreateContainerExecutionContext(curDataDTO); - await activity.Run(activityContext, executionContext); - return SerializeResponse(executionContext); - - case "executechildactivities": - executionContext = await CreateContainerExecutionContext(curDataDTO); - await activity.RunChildActivities(activityContext, executionContext); - return SerializeResponse(executionContext); - - case "documentation": - var documentation = await activity.GetDocumentation(activityContext, curDataDTO.ActivityDTO.Documentation); - return SerializeResponse(documentation); - - } - - throw new ArgumentException("Unsupported request: " + curActionPath); - } - - private async Task CreateContainerExecutionContext(Fr8DataDTO curDataDTO) - { - //this is just to keep integrations tests running - //integration tests don't provide a containerid - //we should modify integration tests - //disabled for integration tests - var containerId = curDataDTO.ContainerId ?? Guid.NewGuid(); - - /* - if (curDataDTO.ContainerId == null) - { - throw new ArgumentNullException(nameof(curDataDTO.ContainerId), "Container Id is missing"); - } - */ - - var payload = await _hubCommunicator.GetPayload(containerId); - - return new ContainerExecutionContext - { - PayloadStorage = CrateManager.GetUpdatableStorage(payload), - ContainerId = containerId - }; - } - - private ActivityContext DeserializeRequest(Fr8DataDTO activityDto) - { - return Mapper.Map(activityDto); - } - - private ActivityDTO SerializeResponse(ActivityContext activityContext) - { - return Mapper.Map(activityContext.ActivityPayload); - } - - private PayloadDTO SerializeResponse(ContainerExecutionContext activityContext) - { - return Mapper.Map(activityContext); - } - - private DocumentationResponseDTO SerializeResponse(DocumentationResponseDTO documentation) - { - return documentation; - } - } -} \ No newline at end of file diff --git a/terminalBase/Services/ActivityStore.cs b/terminalBase/Services/ActivityStore.cs deleted file mode 100644 index 40948e5b49..0000000000 --- a/terminalBase/Services/ActivityStore.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; -using Fr8Data.DataTransferObjects; -using TerminalBase.Interfaces; -using TerminalBase.Models; - -namespace TerminalBase.Services -{ - - public static class ActivityStore - { - public static readonly ConcurrentDictionary _activityRegistrations = new ConcurrentDictionary(); - public static void RegisterActivity(ActivityTemplateDTO activityTemplate, IActivityFactory activityFactory) - { - if (!_activityRegistrations.TryAdd(new ActivityRegistrationKey(activityTemplate), activityFactory)) - { - throw new Exception("Unable to add ActivityRegistration to Dictionary"); - } - } - - /// - /// Registers activity with default Activity Factory - /// - /// Type of activity - /// - public static void RegisterActivity(ActivityTemplateDTO activityTemplate) where T : IActivity - { - RegisterActivity(activityTemplate, new DefaultActivityFactory(typeof(T))); - } - - public static IActivityFactory GetValue(ActivityTemplateDTO activityTemplate) - { - IActivityFactory factory; - if (!_activityRegistrations.TryGetValue(new ActivityRegistrationKey(activityTemplate), out factory)) - { - return null; - } - return factory; - } - /// - /// - /// - /// - /// Terminals on integrations tests share same environment - /// so we are providing terminal information to seperate terminal activities - /// - /// - public static List GetAllActivities(TerminalDTO terminal) - { - return _activityRegistrations - .Select(y => y.Key.ActivityTemplateDTO) - .Where(t => t.Terminal.Name == terminal.Name) - .ToList(); - } - } -} diff --git a/terminalBase/Services/CrateSignaller.cs b/terminalBase/Services/CrateSignaller.cs deleted file mode 100644 index 80be1875c8..0000000000 --- a/terminalBase/Services/CrateSignaller.cs +++ /dev/null @@ -1,158 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Helpers; -using Fr8Data.Manifests; -using Fr8Data.States; - -namespace TerminalBase.Services -{ - public class CrateSignaller - { - public class FieldConfigurator - { - private readonly List _fields; - private readonly string _label; - private readonly CrateManifestType _manifestType; - private readonly Guid _sourceActivityId; - private readonly AvailabilityType _availabilityType; - - public FieldConfigurator(List fields, string label, CrateManifestType manifestType, Guid sourceActivityId, AvailabilityType availabilityType) - { - _fields = fields; - _label = label; - _manifestType = manifestType; - _sourceActivityId = sourceActivityId; - _availabilityType = availabilityType; - } - - public FieldConfigurator AddFields(IEnumerable fields) - { - foreach (var fieldDto in fields) - { - AddField(fieldDto); - } - - return this; - } - - public FieldConfigurator AddField(FieldDTO field) - { - field = field.Clone(); - field.SourceCrateLabel = _label; - field.SourceCrateManifest = _manifestType; - field.SourceActivityId = _sourceActivityId.ToString(); - field.Availability = _availabilityType; - - _fields.Add(field); - return this; - } - - public FieldConfigurator AddField(string name) - { - return AddField(new FieldDTO(name, AvailabilityType.RunTime) - { - SourceCrateManifest = _manifestType, - SourceCrateLabel = _label, - SourceActivityId = _sourceActivityId.ToString() - }); - } - } - - private readonly ICrateStorage _crateStorage; - - private readonly string _owner; - - private readonly Guid _sourceActivityId; - - public const string RuntimeCrateDescriptionsCrateLabel = "Runtime Available Crates"; - - private CrateDescriptionCM _availableData; - - public CrateSignaller(ICrateStorage crateStorage, string owner, Guid sourceActivityId) - { - _crateStorage = crateStorage; - _owner = owner; - _sourceActivityId = sourceActivityId; - } - - private void EnsureAvailableDataCrate() - { - if (_availableData == null) - { - _availableData = _crateStorage.CrateContentsOfType(x => x.Label == RuntimeCrateDescriptionsCrateLabel).FirstOrDefault(); - - if (_availableData == null) - { - _availableData = new CrateDescriptionCM(); - _crateStorage.Add(Crate.FromContent(RuntimeCrateDescriptionsCrateLabel, _availableData)); - } - } - } - - public void ClearAvailableCrates() - { - if (_availableData == null) - { - _availableData = _crateStorage.CrateContentsOfType(x => x.Label == RuntimeCrateDescriptionsCrateLabel).FirstOrDefault(); - _availableData?.CrateDescriptions?.Clear(); - } - } - - public FieldConfigurator MarkAvailableAtRuntime(string label, bool suppressFieldDiscovery = false) - where TManifest : Manifest - { - return MarkAvailable(label, AvailabilityType.RunTime, suppressFieldDiscovery); - } - - public FieldConfigurator MarkAvailableAtDesignTime(string label, bool suppressFieldDiscovery = false) - where TManifest : Manifest - { - return MarkAvailable(label, AvailabilityType.Configuration, suppressFieldDiscovery); - } - - public FieldConfigurator MarkAvailableAlways(string label, bool suppressFieldDiscovery = false) - where TManifest : Manifest - { - return MarkAvailable(label, AvailabilityType.Always, suppressFieldDiscovery); - } - - public FieldConfigurator MarkAvailable(string label, AvailabilityType availabilityType, bool suppressFieldDiscovery = false) - where TManifest : Manifest - { - EnsureAvailableDataCrate(); - - var manifestType = ManifestDiscovery.Default.GetManifestType(); - var fields = new List(); - - if (!suppressFieldDiscovery) - { - var members = Fr8ReflectionHelper.GetMembers(typeof(TManifest)) - .Where(x => Fr8ReflectionHelper.IsPrimitiveType(x.MemberType)) - .Where(x => Fr8ReflectionHelper.CheckAttributeOrTrue(x, y => !y.IsHidden)); - - foreach (var memberAccessor in members) - { - fields.Add(new FieldDTO(memberAccessor.Name, AvailabilityType.RunTime) - { - SourceCrateLabel = label, - SourceCrateManifest = manifestType - }); - } - } - - _availableData.AddOrUpdate(new CrateDescriptionDTO - { - Label = label, - ManifestId = manifestType.Id, - ManifestType = manifestType.Type, - ProducedBy = _owner, - Fields = fields - }); - - return new FieldConfigurator(fields, label, manifestType, _sourceActivityId, availabilityType); - } - } -} diff --git a/terminalBase/Services/DataHubCommunicatorBase.cs b/terminalBase/Services/DataHubCommunicatorBase.cs deleted file mode 100644 index 6e656cd93d..0000000000 --- a/terminalBase/Services/DataHubCommunicatorBase.cs +++ /dev/null @@ -1,322 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Configuration; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using System.Xml.Schema; -using Fr8Data.Constants; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Managers; -using Fr8Data.Manifests; -using Fr8Data.States; -using Fr8Infrastructure.Interfaces; -using Newtonsoft.Json; -using StructureMap; -using TerminalBase.Infrastructure; -using TerminalBase.Models; -using Utilities.Configuration.Azure; - -namespace TerminalBase.Services -{ - public abstract class DataHubCommunicatorBase : IHubCommunicator - { - public ICrateManager Crate { get; set; } - public string ExplicitData { get; set; } - protected string TerminalSecret { get; set; } - protected string TerminalId { get; set; } - - private string _userId; - - public string UserId => _userId; - - protected DataHubCommunicatorBase(string explicitData) - { - Crate = ObjectFactory.GetInstance(); - ExplicitData = explicitData; - } - - public void Configure(string terminalName, string userId) - { - if (string.IsNullOrEmpty(terminalName)) - throw new ArgumentNullException(nameof(terminalName)); - - TerminalSecret = CloudConfigurationManager.GetSetting("TerminalSecret"); - TerminalId = CloudConfigurationManager.GetSetting("TerminalId"); - - //we might be on integration test currently - if (TerminalSecret == null || TerminalId == null) - { - TerminalSecret = ConfigurationManager.AppSettings[terminalName + "TerminalSecret"]; - TerminalId = ConfigurationManager.AppSettings[terminalName + "TerminalId"]; - } - _userId = userId; - IsConfigured = true; - } - - protected abstract string LabelPrefix { get; } - - public bool IsConfigured - { - get; set; - } - - private void StripLabelPrefix(IEnumerable crates, string prefix) - { - foreach (var crate in crates) - { - if (crate.Label != prefix && crate.Label.StartsWith(prefix + "_")) - { - crate.Label = crate.Label.Substring((prefix + "_").Length); - } - } - } - - public Task GetPayload(Guid containerId) - { - var payload = new PayloadDTO(containerId) - { - CrateStorage = new CrateStorageDTO() - }; - - var crateStorage = Crate.GetStorage(ExplicitData); - using (var updatableStorage = Crate.GetUpdatableStorage(payload)) - { - var crates = crateStorage - .Where(x => x.Label.StartsWith(LabelPrefix + "_PayloadCrate")) - .ToList(); - - StripLabelPrefix(crates, LabelPrefix + "_PayloadCrate"); - - updatableStorage.AddRange(crates); - } - - return Task.FromResult(payload); - } - - public Task GetCurrentUser() - { - return Task.FromResult( - new UserDTO() - { - EmailAddress = "integration_test_runner@fr8.company", - FirstName = "Test", - LastName = "User", - UserName = "integration_test_runner@fr8.company" - } - ); - } - - public Task>> GetCratesByDirection(Guid activityId, CrateDirection direction) - { - var searchLabel = direction == CrateDirection.Upstream - ? LabelPrefix + "_UpstreamCrate" - : LabelPrefix + "_DownstreamCrate"; - - var crateStorage = Crate.GetStorage(ExplicitData); - var crates = crateStorage - .CratesOfType(x => x.Label.StartsWith(searchLabel)) - .ToList(); - - StripLabelPrefix(crates, searchLabel); - - return Task.FromResult(crates); - } - - public Task> GetCratesByDirection(Guid activityId, CrateDirection direction) - { - var searchLabel = direction == CrateDirection.Upstream - ? LabelPrefix + "_UpstreamCrate" - : LabelPrefix + "_DownstreamCrate"; - - var crateStorage = Crate.GetStorage(ExplicitData); - var crates = crateStorage - .Where(x => x.Label.StartsWith(searchLabel)) - .ToList(); - - StripLabelPrefix(crates, searchLabel); - - return Task.FromResult(crates); - } - - public async Task CreateAlarm(AlarmDTO alarmDTO) - { - - } - - public Task SaveFile(string name, Stream stream) - { - var fileDO = new FileDTO - { - OriginalFileName = name, - }; - - return Task.FromResult(fileDO); - } - - public Task> GetActivityTemplates(bool getLatestsVersionsOnly = false) - { - var searchLabel = LabelPrefix + "_ActivityTemplate"; - - var crateStorage = Crate.GetStorage(ExplicitData); - var activityTemplates = crateStorage - .Where(x => x.Label == searchLabel) - .Select(x => JsonConvert.DeserializeObject( - x.Get().Fields[0].Value - ) - ) - .ToList(); - - return Task.FromResult(activityTemplates); - } - - public async Task> GetActivityTemplates(ActivityCategory category, bool getLatestsVersionsOnly = false) - { - var allTemplates = await GetActivityTemplates(); - var activityTemplates = allTemplates - .Where(x => x.Category == category) - .ToList(); - - return activityTemplates; - } - - public async Task> GetActivityTemplates(string tag, bool getLatestsVersionsOnly = false) - { - var allTemplates = await GetActivityTemplates(); - if (string.IsNullOrEmpty(tag)) - { - return allTemplates; - } - - var activityTemplates = allTemplates - .Where(x => x.Tags != null && x.Tags.Split(',').Any(y => y.Equals(tag, StringComparison.InvariantCultureIgnoreCase))) - .ToList(); - - return activityTemplates; - } - - public Task> ValidateFields(List fields) - { - return Task.FromResult(new List()); - } - - public async Task GetAvailableData(Guid activityId, CrateDirection direction, AvailabilityType availability) - { - var fields = await GetCratesByDirection(activityId, direction); - var crates = await GetCratesByDirection(activityId, direction); - var availableData = new IncomingCratesDTO(); - - availableData.AvailableFields.AddRange(fields.SelectMany(x => x.Content.Fields).Where(x => availability == AvailabilityType.NotSet || (x.Availability & availability) != 0)); - availableData.AvailableFields.AddRange(crates.SelectMany(x => x.Content.CrateDescriptions).Where(x => availability == AvailabilityType.NotSet || (x.Availability & availability) != 0).SelectMany(x => x.Fields)); - availableData.AvailableCrates.AddRange(crates.SelectMany(x => x.Content.CrateDescriptions).Where(x => availability == AvailabilityType.NotSet || (x.Availability & availability) != 0)); - - return availableData; - } - - public async Task ApplyNewToken(Guid activityId, Guid authTokenId) - { - throw new NotImplementedException(); - } - - public Task ConfigureActivity(ActivityPayload activityPayload) - { - throw new NotImplementedException(); - } - - public Task SaveActivity(ActivityPayload activityPayload) - { - throw new NotImplementedException(); - } - - public Task CreateAndConfigureActivity(Guid templateId, string name = null, int? order = null, Guid? parentNodeId = default(Guid?), bool createPlan = false, Guid? authorizationTokenId = null) - { - throw new NotImplementedException(); - } - - public Task CreatePlan(PlanNoChildrenDTO planDTO) - { - throw new NotImplementedException(); - } - - public Task RunPlan(Guid planId, List payload) - { - throw new NotImplementedException(); - } - - public Task> GetPlansByName(string name, PlanVisibility visibility = PlanVisibility.Standard) - { - throw new NotImplementedException(); - } - - public Task GetPlansByActivity(string activityId) - { - throw new NotImplementedException(); - } - - public Task UpdatePlan(PlanNoChildrenDTO plan) - { - throw new NotImplementedException(); - } - - public Task NotifyUser(TerminalNotificationDTO notificationMessage) - { - return Task.FromResult(0); - } - - public Task RenewToken(AuthorizationTokenDTO token) - { - return Task.FromResult(0); - } - - public Task RenewToken(string id, string externalAccountId, string token) - { - throw new NotImplementedException(); - } - - public Task DeletePlan(Guid planId) - { - throw new NotImplementedException(); - } - - public async Task DownloadFile(string filePath) - { - throw new NotImplementedException(); - } - - public Task> GetFiles() - { - throw new NotImplementedException(); - } - - public Task DownloadFile(int fileId) - { - throw new NotImplementedException(); - } - - public Task DeleteExistingChildNodesFromActivity(Guid curActivityId) - { - throw new NotImplementedException(); - } - - public Task DeleteActivity(Guid curActivityId) - { - throw new NotImplementedException(); - } - - public Task> GetStoredManifests(List cratesForMTRequest) - { - throw new NotImplementedException(); - } - - public Task GetAuthToken(string authTokenId) - { - throw new NotImplementedException(); - } - - public Task ScheduleEvent(string externalAccountId, string minutes) - { - throw new NotImplementedException(); - } - } -} diff --git a/terminalBase/Services/DefaultActivityFactory.cs b/terminalBase/Services/DefaultActivityFactory.cs deleted file mode 100644 index a5d0364cfa..0000000000 --- a/terminalBase/Services/DefaultActivityFactory.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Linq; -using StructureMap; -using TerminalBase.Interfaces; - -namespace TerminalBase.Services -{ - public class DefaultActivityFactory : IActivityFactory - { - private readonly Type _type; - - public DefaultActivityFactory(Type type) - { - _type = type; - } - - public IActivity Create() - { - var firstConstructor = _type.GetConstructors().OrderBy(x => x.GetParameters().Length).FirstOrDefault(); - - if (firstConstructor == null) - { - throw new Exception("Unable to find constructor for activity type: " + _type); - } - - var parameters = firstConstructor.GetParameters(); - var paramArguments = new object[parameters.Length]; - - for (int index = 0; index < parameters.Length; index++) - { - var parameterInfo = parameters[index]; - paramArguments[index] = ObjectFactory.GetInstance(parameterInfo.ParameterType); - } - - var instance = firstConstructor.Invoke(paramArguments.ToArray()) as IActivity; - - if (instance == null) - { - throw new Exception("Unable to create instance of type: " + _type); - } - - return instance; - } - } -} \ No newline at end of file diff --git a/terminalBase/Services/DefaultHubCommunicator.cs b/terminalBase/Services/DefaultHubCommunicator.cs deleted file mode 100644 index 5f778e13ec..0000000000 --- a/terminalBase/Services/DefaultHubCommunicator.cs +++ /dev/null @@ -1,411 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Configuration; -using System.IO; -using System.Linq; -using System.Net.Http; -using System.Text; -using System.Threading.Tasks; -using AutoMapper; -using Fr8Data.Constants; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Managers; -using Fr8Data.Manifests; -using Fr8Data.States; -using Fr8Infrastructure.Interfaces; -using Newtonsoft.Json; -using StructureMap; -using TerminalBase.Infrastructure; -using TerminalBase.Models; -using Utilities.Configuration.Azure; - -namespace TerminalBase.Services -{ - public class DefaultHubCommunicator : IHubCommunicator - { - private readonly IRestfulServiceClient _restfulServiceClient; - private readonly IHMACService _hmacService; - private readonly ICrateManager _crate; - private string _userId; - private ActivityContext _activityContext; - - protected string TerminalSecret { get; set; } - protected string TerminalId { get; set; } - - public string UserId => _userId; - - public DefaultHubCommunicator() - { - _restfulServiceClient = ObjectFactory.GetInstance(); - _crate = ObjectFactory.GetInstance(); - _hmacService = ObjectFactory.GetInstance(); - } - - public void Configure(string terminalName, string userId) - { - if (string.IsNullOrEmpty(terminalName)) - throw new ArgumentNullException(nameof(terminalName)); - - TerminalSecret = CloudConfigurationManager.GetSetting("TerminalSecret"); - TerminalId = CloudConfigurationManager.GetSetting("TerminalId"); - - //we might be on integration test currently - if (TerminalSecret == null || TerminalId == null) - { - TerminalSecret = ConfigurationManager.AppSettings[terminalName + "TerminalSecret"]; - TerminalId = ConfigurationManager.AppSettings[terminalName + "TerminalId"]; - } - - _userId = userId; - } - - #region HMAC - - private async Task> GetHMACHeader(Uri requestUri) - { - /*if (!IsConfigured) - throw new InvalidOperationException("Please call Configure() before using the class.");*/ - - return await _hmacService.GenerateHMACHeader(requestUri, TerminalId, TerminalSecret, _userId); - } - - private async Task> GetHMACHeader(Uri requestUri, T content) - { - /*if (!IsConfigured) - throw new InvalidOperationException("Please call Configure() before using the class.");*/ - - return await _hmacService.GenerateHMACHeader(requestUri, TerminalId, TerminalSecret, _userId, content); - } - - private async Task> GetHMACHeader(Uri requestUri, HttpContent content) - { - /*if (!IsConfigured) - throw new InvalidOperationException("Please call Configure() before using the class.");*/ - - return await _hmacService.GenerateHMACHeader(requestUri, TerminalId, TerminalSecret, _userId, content); - } - - #endregion - - public async Task GetPayload(Guid containerId) - { - var uri = new Uri($"{GetHubUrlWithApiVersion()}/containers/payload?id={containerId.ToString("D")}", UriKind.Absolute); - var payloadDTOTask = await _restfulServiceClient.GetAsync(uri, containerId.ToString(), await GetHMACHeader(uri)); - return payloadDTOTask; - } - - public async Task GetCurrentUser() - { - var uri = new Uri($"{GetHubUrlWithApiVersion()}/users/userdata?id={_userId}", UriKind.Absolute); - var curUser = await _restfulServiceClient.GetAsync(uri, null, await GetHMACHeader(uri)); - return curUser; - } - - public async Task>> GetCratesByDirection(Guid activityId, CrateDirection direction) - { - var directionSuffix = direction == CrateDirection.Upstream - ? "upstream" - : "downstream"; - var uri = new Uri($"{GetHubUrlWithApiVersion()}/plan_nodes?id={activityId}&direction={directionSuffix}", UriKind.Absolute); - var curActivities = await _restfulServiceClient.GetAsync>(uri, null, await GetHMACHeader(uri)); - var curCrates = new List>(); - - foreach (var curAction in curActivities) - { - var storage = _crate.FromDto(curAction.CrateStorage); - - curCrates.AddRange(storage.CratesOfType()); - } - - return curCrates; - } - - public async Task> GetCratesByDirection(Guid activityId, CrateDirection direction) - { - var directionSuffix = direction == CrateDirection.Upstream - ? "upstream" - : "downstream"; - - var uri = new Uri($"{GetHubUrlWithApiVersion()}/plan_nodes?id={activityId}&direction={directionSuffix}", UriKind.Absolute); - var curActivities = await _restfulServiceClient.GetAsync>(uri, null, await GetHMACHeader(uri)); - var curCrates = new List(); - - foreach (var curAction in curActivities) - { - var storage = _crate.FromDto(curAction.CrateStorage); - curCrates.AddRange(storage); - } - - return curCrates; - } - - public async Task GetAvailableData(Guid activityId, CrateDirection direction, AvailabilityType availability) - { - var url = $"{GetHubUrlWithApiVersion()}/plan_nodes/signals?id={activityId}&direction={(int)direction}&availability={(int)availability}"; - var uri = new Uri(url, UriKind.Absolute); - var availableData = await _restfulServiceClient.GetAsync(uri, null, await GetHMACHeader(uri)); - return availableData; - } - - public async Task CreateAlarm(AlarmDTO alarmDTO) - { - var hubAlarmsUrl = $"{GetHubUrlWithApiVersion()}/alarms"; - var uri = new Uri(hubAlarmsUrl); - await _restfulServiceClient.PostAsync(uri, alarmDTO, null, await GetHMACHeader(uri, alarmDTO)); - } - - public async Task> GetActivityTemplates( bool getLatestsVersionsOnly = false) - { - var hubUri = new Uri($"{GetHubUrlWithApiVersion()}/activity_templates"); - var allCategories = await _restfulServiceClient.GetAsync>(hubUri, null, await GetHMACHeader(hubUri)); - var templates = allCategories.SelectMany(x => x.Activities); - return getLatestsVersionsOnly ? GetLatestsVersionsOnly(templates) : templates.ToList(); - } - - public async Task> GetActivityTemplates(ActivityCategory category, bool getLatestsVersionsOnly = false) - { - var allTemplates = await GetActivityTemplates(getLatestsVersionsOnly); - var templates = allTemplates.Where(x => x.Category == category); - return templates.ToList(); - } - - public async Task> GetActivityTemplates(string tag, bool getLatestsVersionsOnly = false) - { - var hubUrl = $"{GetHubUrlWithApiVersion()}/activity_templates?tag={(string.IsNullOrEmpty(tag) ? "[all]" : tag)}"; - var uri = new Uri(hubUrl); - var templates = await _restfulServiceClient.GetAsync>(uri, null, await GetHMACHeader(uri)); - return getLatestsVersionsOnly ? GetLatestsVersionsOnly(templates) : templates; - } - - private List GetLatestsVersionsOnly(IEnumerable templates) - { - if (templates == null) - { - return new List(0); - } - var result = templates.GroupBy(x => new { x.Name, TerminalName = x.Terminal.Name }) - .Select(x => x.OrderByDescending(y => int.Parse(y.Version)).First()) - .ToList(); - return result; - } - - public async Task> ValidateFields(List fields) - { - var url = $"{GetHubUrlWithApiVersion()}/field/exists"; - var uri = new Uri(url); - return await _restfulServiceClient.PostAsync, List>(uri, fields, null, await GetHMACHeader(uri, fields)); - } - - public async Task ApplyNewToken(Guid activityId, Guid authTokenId) - { - var applyToken = new AuthenticationTokenGrantDTO() - { - ActivityId = activityId, - AuthTokenId = authTokenId, - IsMain = false - }; - - var token = new[] { applyToken }; - - var url = $"{GetHubUrlWithApiVersion()}/authentication/tokens/grant"; - var uri = new Uri(url); - await _restfulServiceClient.PostAsync(uri, token, null, await GetHMACHeader(uri, token)); - } - - public async Task ConfigureActivity(ActivityPayload activityPayload) - { - var url = $"{GetHubUrlWithApiVersion()}/activities/configure"; - var uri = new Uri(url); - var activityDTO = Mapper.Map(activityPayload); - var resultActivityDTO = await _restfulServiceClient.PostAsync(uri, activityDTO, null, await GetHMACHeader(uri, activityDTO)); - return Mapper.Map(resultActivityDTO); - } - - public async Task SaveActivity(ActivityPayload activityPayload) - { - var url = $"{GetHubUrlWithApiVersion()}/activities/save"; - var uri = new Uri(url); - var activityDTO = Mapper.Map(activityPayload); - var resultActivityDTO = await _restfulServiceClient.PostAsync(uri, activityDTO, null, await GetHMACHeader(uri, activityDTO)); - return Mapper.Map(resultActivityDTO); - } - - public async Task CreateAndConfigureActivity(Guid templateId, string name = null, int? order = null, Guid? parentNodeId = null, bool createPlan = false, Guid? authorizationTokenId = null) - { - var url = $"{GetHubUrlWithApiVersion()}/activities/create"; - var postUrl = $"?activityTemplateId={templateId}&createPlan={createPlan}"; - if (name != null) - { - postUrl += "&name=" + name; - } - if (parentNodeId != null) - { - postUrl += "&parentNodeId=" + parentNodeId; - } - if (authorizationTokenId != null) - { - postUrl += "&authorizationTokenId=" + authorizationTokenId; - } - if (order != null) - { - postUrl += "&order=" + order; - } - - var uri = new Uri(url + postUrl); - var resultActivityDTO = await _restfulServiceClient.PostAsync(uri, null, await GetHMACHeader(uri)); - return Mapper.Map(resultActivityDTO); - } - - public async Task CreatePlan(PlanNoChildrenDTO planDTO) - { - var url = $"{GetHubUrlWithApiVersion()}/plans"; - var uri = new Uri(url); - return await _restfulServiceClient.PostAsync(uri, planDTO, null, await GetHMACHeader(uri, planDTO)); - } - - public async Task RunPlan(Guid planId, List payload) - { - var url = $"{GetHubUrlWithApiVersion()}/plans/run?planId=" + planId; - var uri = new Uri(url); - await _restfulServiceClient.PostAsync>(uri, payload, null, await GetHMACHeader(uri, payload)); - } - - public async Task> GetPlansByName(string name, PlanVisibility visibility = PlanVisibility.Standard) - { - var url = $"{GetHubUrlWithApiVersion()}/plans?name={name}&visibility={visibility}"; - var uri = new Uri(url); - return await _restfulServiceClient.GetAsync>(uri, null, await GetHMACHeader(uri)); - } - - public async Task GetPlansByActivity(string activityId) - { - var url = $"{GetHubUrlWithApiVersion()}/plans?activity_id={activityId}"; - var uri = new Uri(url); - return await _restfulServiceClient.GetAsync(uri, null, await GetHMACHeader(uri)); - } - - public async Task UpdatePlan(PlanNoChildrenDTO plan) - { - var jsonObject = JsonConvert.SerializeObject(plan); - HttpContent jsonContent = new StringContent(jsonObject, Encoding.UTF8, "application/json"); - - var hubUrl = $"{GetHubUrlWithApiVersion()}/plans/"; - var uri = new Uri(hubUrl); - return await _restfulServiceClient.PostAsync(uri, jsonContent, null, await GetHMACHeader(uri, jsonContent)); - } - - public async Task NotifyUser(TerminalNotificationDTO notificationMessage) - { - var hubUrl = $"{GetHubUrlWithApiVersion()}/notifications"; - var uri = new Uri(hubUrl); - await _restfulServiceClient.PostAsync(uri, notificationMessage, null, await GetHMACHeader(uri, notificationMessage)); - } - - public async Task DeletePlan(Guid planId) - { - var hubUrl = $"{GetHubUrlWithApiVersion()}/plans?id={planId}"; - var uri = new Uri(hubUrl); - await _restfulServiceClient.DeleteAsync(uri, null, await GetHMACHeader(uri)); - } - - public async Task DeleteExistingChildNodesFromActivity(Guid curActivityId) - { - //var hubAlarmsUrl = $"{GetHubUrlWithApiVersion()}/activities/deletechildnodes?activityId={curActivityId}"; - var hubAlarmsUrl = $"{GetHubUrlWithApiVersion()}/activities?id={curActivityId}&delete_child_nodes=true"; - var uri = new Uri(hubAlarmsUrl); - await _restfulServiceClient.DeleteAsync(uri, null, await GetHMACHeader(uri)); - } - - public async Task DeleteActivity(Guid curActivityId) - { - //var hubDeleteUrl = $"{GetHubUrlWithApiVersion()}/activities/deleteactivity?id={curActivityId}"; - var hubDeleteUrl = $"{GetHubUrlWithApiVersion()}/activities?id={curActivityId}"; - var uri = new Uri(hubDeleteUrl); - var headers = await GetHMACHeader(uri); - await _restfulServiceClient.DeleteAsync(uri, null, headers); - } - - public static byte[] ReadFully(Stream input) - { - var buffer = new byte[16 * 1024]; - using (var ms = new MemoryStream()) - { - int read; - while ((read = input.Read(buffer, 0, buffer.Length)) > 0) - { - ms.Write(buffer, 0, read); - } - return ms.ToArray(); - } - } - - public async Task SaveFile(string name, Stream stream) - { - var hubUrl = $"{GetHubUrlWithApiVersion()}/files"; - var multiPartData = new MultipartFormDataContent(); - var byteData = ReadFully(stream); - multiPartData.Add(new ByteArrayContent(byteData), name, name); - var uri = new Uri(hubUrl); - return await _restfulServiceClient.PostAsync(uri, multiPartData, null, await GetHMACHeader(uri, (HttpContent)multiPartData)); - } - - public async Task> GetFiles() - { - var hubUrl = $"{GetHubUrlWithApiVersion()}/files"; - var uri = new Uri(hubUrl); - return await _restfulServiceClient.GetAsync>(uri, null, await GetHMACHeader(uri)); - } - - public async Task DownloadFile(int fileId) - { - var hubUrl = $"{GetHubUrlWithApiVersion()}/files/{fileId}"; - var uri = new Uri(hubUrl); - return await _restfulServiceClient.DownloadAsync(uri, null, await GetHMACHeader(uri)); - } - - public async Task> GetStoredManifests(List cratesForMTRequest) - { - var hubUrl = $"{GetHubUrlWithApiVersion()}/warehouse?userId={_userId}"; - var uri = new Uri(hubUrl); - return await _restfulServiceClient.PostAsync, List>(uri, cratesForMTRequest, null, await GetHMACHeader(uri, cratesForMTRequest)); - } - - public async Task GetAuthToken(string externalAccountId) - { - var url = $"{GetHubUrlWithApiVersion()}/authentication/GetAuthToken?externalAccountId={externalAccountId}&terminalId={TerminalId}"; - var uri = new Uri(url); - var authTokenDTO = await _restfulServiceClient.GetAsync(uri, null, await GetHMACHeader(uri)); - return Mapper.Map(authTokenDTO); - } - - public async Task RenewToken(string id, string externalAccountId, string token) - { - var url = $"{GetHubUrlWithApiVersion()}/authentication/renewtoken?id={id}&externalAccountId={externalAccountId}&token={token}"; - var uri = new Uri(url); - await _restfulServiceClient.PostAsync(uri, null, await GetHMACHeader(uri)); - } - - public async Task RenewToken(AuthorizationTokenDTO token) - { - var url = $"{GetHubUrlWithApiVersion()}/authentication/renewtoken"; - var uri = new Uri(url); - await _restfulServiceClient.PostAsync(uri, token, null, await GetHMACHeader(uri, token)); - } - - public async Task ScheduleEvent(string externalAccountId, string minutes) - { - var hubAlarmsUrl = CloudConfigurationManager.GetSetting("CoreWebServerUrl") - + "api/" + CloudConfigurationManager.GetSetting("HubApiVersion") - + string.Format("/alarms/polling?job_id={0}&fr8_account_id={1}&minutes={2}&terminal_id={3}", - externalAccountId, _userId, minutes, TerminalId); - var uri = new Uri(hubAlarmsUrl); - await _restfulServiceClient.PostAsync(uri, null, await GetHMACHeader(uri)); - } - - private static string GetHubUrlWithApiVersion() - { - return $"{CloudConfigurationManager.GetSetting("CoreWebServerUrl")}api/{CloudConfigurationManager.GetSetting("HubApiVersion")}"; - } - } -} diff --git a/terminalBase/Services/ExplicitDataHubCommunicator.cs b/terminalBase/Services/ExplicitDataHubCommunicator.cs deleted file mode 100644 index 3a9f7da637..0000000000 --- a/terminalBase/Services/ExplicitDataHubCommunicator.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace TerminalBase.Services -{ - public class ExplicitDataHubCommunicator : DataHubCommunicatorBase - { - protected override string LabelPrefix - { - get { return "ExplicitData"; } - } - - public ExplicitDataHubCommunicator(string explicitData) : base(explicitData) - { - } - } -} diff --git a/terminalBase/Services/TestMonitoringHubCommunicator.cs b/terminalBase/Services/TestMonitoringHubCommunicator.cs deleted file mode 100644 index ff2b220a0f..0000000000 --- a/terminalBase/Services/TestMonitoringHubCommunicator.cs +++ /dev/null @@ -1,15 +0,0 @@ - -namespace TerminalBase.Services -{ - public class TestMonitoringHubCommunicator : DataHubCommunicatorBase - { - protected override string LabelPrefix - { - get { return "HealthMonitor"; } - } - - public TestMonitoringHubCommunicator(string explicitData) : base(explicitData) - { - } - } -} diff --git a/terminalBase/Services/UiBuilder.cs b/terminalBase/Services/UiBuilder.cs deleted file mode 100644 index bf19ab467f..0000000000 --- a/terminalBase/Services/UiBuilder.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System.Collections.Generic; -using Fr8Data.Control; -using Fr8Data.Manifests; -using Fr8Data.States; - -namespace TerminalBase.Services -{ - public class UiBuilder - { - /// - /// This is a generic function for creating a CrateChooser which is suitable for most use-cases - /// - /// - /// - /// - /// - /// - public CrateChooser CreateCrateChooser(string name, - string label, - bool singleManifest, - bool requestConfig = false) - { - var control = new CrateChooser - { - Label = label, - Name = name, - SingleManifestOnly = singleManifest, - RequestUpstream = true - }; - - if (requestConfig) - { - control.Events.Add(new ControlEvent("onChange", "requestConfig")); - } - - return control; - } - - /// - /// Creates RadioButtonGroup to enter specific value or choose value from upstream crate. - /// - public TextSource CreateSpecificOrUpstreamValueChooser(string label, - string controlName, - string upstreamSourceLabel = "", - string filterByTag = "", - bool addRequestConfigEvent = false, - bool requestUpstream = false, - AvailabilityType availability = AvailabilityType.NotSet) - { - var control = new TextSource(label, upstreamSourceLabel, controlName) - { - Source = new FieldSourceDTO - { - Label = upstreamSourceLabel, - ManifestType = CrateManifestTypes.StandardDesignTimeFields, - FilterByTag = filterByTag, - RequestUpstream = requestUpstream, - AvailabilityType = availability - } - }; - - if (addRequestConfigEvent) - { - control.Events.Add(new ControlEvent("onChange", "requestConfig")); - } - - return control; - } - - public UpstreamCrateChooser CreateUpstreamCrateChooser(string name, string label, bool isMultiSelection = true) - { - var manifestDdlb = new DropDownList { Name = name + "_mnfst_dropdown_0", Source = new FieldSourceDTO(CrateManifestTypes.StandardDesignTimeFields, "AvailableUpstreamManifests") }; - var labelDdlb = new DropDownList { Name = name + "_lbl_dropdown_0", Source = new FieldSourceDTO(CrateManifestTypes.StandardDesignTimeFields, "AvailableUpstreamLabels") }; - - var ctrl = new UpstreamCrateChooser - { - Name = name, - Label = label, - SelectedCrates = new List { new CrateDetails { Label = labelDdlb, ManifestType = manifestDdlb } }, - MultiSelection = isMultiSelection - }; - - return ctrl; - } - } -} diff --git a/terminalBase/Services/UpstreamQueryManager.cs b/terminalBase/Services/UpstreamQueryManager.cs deleted file mode 100644 index 8c03cee019..0000000000 --- a/terminalBase/Services/UpstreamQueryManager.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Fr8Data.Crates; -using Fr8Data.DataTransferObjects; -using Fr8Data.Manifests; -using Fr8Data.States; -using TerminalBase.Infrastructure; -using TerminalBase.Models; - -namespace TerminalBase.Services -{ - public class UpstreamQueryManager - { - private readonly ActivityContext _activityContext; - private readonly IHubCommunicator _hubCommunicator; - private Guid ActivityId => _activityContext.ActivityPayload.Id; - - public UpstreamQueryManager(ActivityContext activityContext, IHubCommunicator hubCommunicator) - { - _activityContext = activityContext; - _hubCommunicator = hubCommunicator; - } - - - } -} diff --git a/terminalBase/TerminalBase.csproj b/terminalBase/TerminalBase.csproj deleted file mode 100644 index 7b7b62691c..0000000000 --- a/terminalBase/TerminalBase.csproj +++ /dev/null @@ -1,186 +0,0 @@ - - - - - Debug - AnyCPU - {D6A0A493-E926-439A-9CE2-E093E75132CD} - Library - Properties - TerminalBase - TerminalBase - v4.5 - 512 - ..\dockyard\ - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\Dev\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\Demo\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - - False - ..\packages\AutoMapper.4.0.4\lib\net45\AutoMapper.dll - - - ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll - - - ..\packages\log4net.2.0.3\lib\net40-full\log4net.dll - True - - - ..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll - True - - - ..\packages\Microsoft.AspNet.Identity.Core.2.0.1\lib\net45\Microsoft.AspNet.Identity.Core.dll - - - ..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.1\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll - - - ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll - True - - - ..\packages\libphonenumber-csharp.7.2.5\lib\PhoneNumbers.dll - True - - - False - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.dll - - - False - ..\packages\structuremap.3.1.6.186\lib\net40\StructureMap.Net4.dll - - - - - - - False - ..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll - - - - False - ..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll - - - False - ..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - \ No newline at end of file diff --git a/terminalBase/WebApiExceptionFilterAttribute.cs b/terminalBase/WebApiExceptionFilterAttribute.cs deleted file mode 100644 index de2339489b..0000000000 --- a/terminalBase/WebApiExceptionFilterAttribute.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System; -using System.Net; -using System.Net.Http; -using System.Text; -using System.Web.Http.Controllers; -using System.Web.Http.Filters; -using Newtonsoft.Json; -using TerminalBase.BaseClasses; -using TerminalBase.Errors; -using Utilities; -using Microsoft.ApplicationInsights; -using System.Collections.Generic; - -namespace TerminalBase -{ - public class WebApiExceptionFilterAttribute : ExceptionFilterAttribute - { - public override void OnException(HttpActionExecutedContext actionExecutedContext) - { - //if (actionExecutedContext.Exception is TaskCanceledException) - //{ - // // TaskCanceledException is an exception representing a successful task cancellation - // // Don't need to log it - // // Ref: https://msdn.microsoft.com/en-us/library/dd997396(v=vs.110).aspx - // return; - //} - - //get the terminal error details - var curTerminalError = actionExecutedContext.Exception; - var curController = actionExecutedContext.ActionContext.ControllerContext.Controller; - var terminalName = GetTerminalName(curController); - - HttpStatusCode statusCode = HttpStatusCode.InternalServerError; - - if (curTerminalError is AuthorizationTokenExpiredOrInvalidException) - { - statusCode = (HttpStatusCode)419; - } - else if (curTerminalError is AggregateException) - { - foreach (var innerEx in ((AggregateException)curTerminalError).InnerExceptions) - { - if (innerEx is AuthorizationTokenExpiredOrInvalidException) - { - statusCode = (HttpStatusCode)419; - } - } - } - - //Post exception information to AppInsights - Dictionary properties = new Dictionary(); - foreach (KeyValuePair arg in actionExecutedContext.ActionContext.ActionArguments) - { - properties.Add(arg.Key, JsonConvert.SerializeObject(arg.Value)); - } - properties.Add("Terminal", terminalName); - new TelemetryClient().TrackException(curTerminalError, properties); - - string userId = null; - if(!String.IsNullOrEmpty(actionExecutedContext.ActionContext.ControllerContext.RequestContext.Principal.Identity.AuthenticationType)) - { - userId = actionExecutedContext.ActionContext.ControllerContext.RequestContext.Principal.Identity.AuthenticationType; - } - - //POST event to fr8 about this terminal error - new BaseTerminalController().ReportTerminalError(terminalName, curTerminalError,userId); - - - //prepare the response JSON based on the exception type - actionExecutedContext.Response = new HttpResponseMessage(statusCode); - if (curTerminalError is TerminalCodedException) - { - //if terminal error is terminal Coded Exception, place the error code description in message - var terminalEx = (TerminalCodedException)curTerminalError; - var terminalError = - JsonConvert.SerializeObject(new { status = "terminal_error", message = terminalEx.ErrorCode.GetEnumDescription() }); - actionExecutedContext.Response.Content = new StringContent(terminalError, Encoding.UTF8, "application/json"); - } - else - { - var detailedMessage = - JsonConvert.SerializeObject(new { status = "terminal_error", message = curTerminalError.Message }); - actionExecutedContext.Response.Content = new StringContent(detailedMessage, Encoding.UTF8, "application/json"); - } - } - - private string GetTerminalName(IHttpController curController) - { - string assemblyName = curController.GetType().Assembly.FullName.Split(new char[] { ',' })[0]; - return assemblyName; - } - } -} diff --git a/terminalBase/app.config b/terminalBase/app.config deleted file mode 100644 index f2d84bcd84..0000000000 --- a/terminalBase/app.config +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/terminalBase/fr8TerminalBase.nuspec b/terminalBase/fr8TerminalBase.nuspec deleted file mode 100644 index bf0f92e4c4..0000000000 --- a/terminalBase/fr8TerminalBase.nuspec +++ /dev/null @@ -1,18 +0,0 @@ - - - - $id$ - $version$ - $title$ - $author$ - $author$ - https://github.com/Fr8org/Fr8Core.NET - https://github.com/Fr8org/Fr8Core.NET - https://fr8.co/Content/img/dockyard_logo_white.png - false - $description$ - Initial release - Copyright 2016 - fr8 fr8Terminal fr8TerminalBase - - \ No newline at end of file diff --git a/terminalBase/packages.config b/terminalBase/packages.config deleted file mode 100644 index 195933fbd7..0000000000 --- a/terminalBase/packages.config +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/terminalTelegram/Web.Debug.config b/terminalTelegram/Web.Debug.config deleted file mode 100644 index 2e302f9f95..0000000000 --- a/terminalTelegram/Web.Debug.config +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/terminalUtilities/LICENSE b/terminalUtilities/LICENSE deleted file mode 100644 index 0444cdaaa8..0000000000 --- a/terminalUtilities/LICENSE +++ /dev/null @@ -1,180 +0,0 @@ - Common Public Attribution License Version 1.0 (CPAL-1.0) - Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. - - The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) - - 1. “Definitions” - - 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. - - 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. - - 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. - - 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. - - 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. - - 1.5 “Executable” means Covered Code in any form other than Source Code. - - 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. - - 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. - - 1.8 “License” means this document. - - 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. - - 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: - - A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. - B. Any new file that contains any part of the Original Code or previous Modifications. - - 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. - - 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. - - 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. - - 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. - - 2. Source Code License. - - 2.1 The Initial Developer Grant. - - The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: - - (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and - (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). - (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. - (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. - - 2.2 Contributor Grant. - - Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license - - (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and - (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). - (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. - (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. - - 3. Distribution Obligations. - - 3.1 Application of License. - - The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. - - 3.2 Availability of Source Code. - - Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. - - 3.3 Description of Modifications. - - You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. - - 3.4 Intellectual Property Matters - - (a) Third Party Claims. - If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. - (b) Contributor APIs. - If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. - (c) Representations. - Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. - - 3.5 Required Notices. - - You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. - - 3.6 Distribution of Executable Versions. - - You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. - - 3.7 Larger Works. - - You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. - - 4. Inability to Comply Due to Statute or Regulation. - - If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. - - 5. Application of this License. - - This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. - - 6. Versions of the License. - - 6.1 New Versions. - - Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. - - 6.2 Effect of New Versions. - - Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. - - 6.3 Derivative Works. - - If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) - - 7. DISCLAIMER OF WARRANTY. - - COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - - 8. TERMINATION. - - 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. - - 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: - - (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. - (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. - - 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. - - 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. - - 9. LIMITATION OF LIABILITY. - - UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. - - 10. U.S. GOVERNMENT END USERS. - - The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. - - 11. MISCELLANEOUS. - - This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. - - 12. RESPONSIBILITY FOR CLAIMS. - - As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. - - 13. MULTIPLE-LICENSED CODE. - - Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. - - 14. ADDITIONAL TERM: ATTRIBUTION - - (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. - (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). - (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. - (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. - - 15. ADDITIONAL TERM: NETWORK USE. - - The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. - EXHIBIT A. Common Public Attribution License Version 1.0. - “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. - Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - The Original Code is____Fr8 Terminal Code__________________. - The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. - The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. - Contributor ______________________. - Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. - If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” - [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] - EXHIBIT B. Attribution Information - Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ - Attribution Phrase (not exceeding 10 words): _______________________ - Attribution URL: _______________________ - Graphic Image as provided in the Covered Code, if any. - Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalYammer/LICENSE b/terminalYammer/LICENSE deleted file mode 100644 index 0444cdaaa8..0000000000 --- a/terminalYammer/LICENSE +++ /dev/null @@ -1,180 +0,0 @@ - Common Public Attribution License Version 1.0 (CPAL-1.0) - Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. - - The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) - - 1. “Definitions” - - 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. - - 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. - - 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. - - 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. - - 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. - - 1.5 “Executable” means Covered Code in any form other than Source Code. - - 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. - - 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. - - 1.8 “License” means this document. - - 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. - - 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: - - A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. - B. Any new file that contains any part of the Original Code or previous Modifications. - - 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. - - 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. - - 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. - - 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. - - 2. Source Code License. - - 2.1 The Initial Developer Grant. - - The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: - - (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and - (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). - (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. - (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. - - 2.2 Contributor Grant. - - Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license - - (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and - (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). - (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. - (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. - - 3. Distribution Obligations. - - 3.1 Application of License. - - The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. - - 3.2 Availability of Source Code. - - Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. - - 3.3 Description of Modifications. - - You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. - - 3.4 Intellectual Property Matters - - (a) Third Party Claims. - If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. - (b) Contributor APIs. - If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. - (c) Representations. - Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. - - 3.5 Required Notices. - - You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. - - 3.6 Distribution of Executable Versions. - - You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. - - 3.7 Larger Works. - - You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. - - 4. Inability to Comply Due to Statute or Regulation. - - If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. - - 5. Application of this License. - - This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. - - 6. Versions of the License. - - 6.1 New Versions. - - Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. - - 6.2 Effect of New Versions. - - Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. - - 6.3 Derivative Works. - - If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) - - 7. DISCLAIMER OF WARRANTY. - - COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - - 8. TERMINATION. - - 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. - - 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: - - (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. - (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. - - 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. - - 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. - - 9. LIMITATION OF LIABILITY. - - UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. - - 10. U.S. GOVERNMENT END USERS. - - The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. - - 11. MISCELLANEOUS. - - This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. - - 12. RESPONSIBILITY FOR CLAIMS. - - As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. - - 13. MULTIPLE-LICENSED CODE. - - Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. - - 14. ADDITIONAL TERM: ATTRIBUTION - - (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. - (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). - (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. - (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. - - 15. ADDITIONAL TERM: NETWORK USE. - - The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. - EXHIBIT A. Common Public Attribution License Version 1.0. - “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. - Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - The Original Code is____Fr8 Terminal Code__________________. - The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. - The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. - Contributor ______________________. - Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. - If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” - [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] - EXHIBIT B. Attribution Information - Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ - Attribution Phrase (not exceeding 10 words): _______________________ - Attribution URL: _______________________ - Graphic Image as provided in the Covered Code, if any. - Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file