├── .gitattributes ├── .gitignore ├── .gitkeep ├── .md ├── README.md ├── Src ├── AssemblyInfo │ ├── ApacheLicense-2.0.txt │ ├── SharedAssemblyInfo.cs │ └── UpdateVersion.ps1 ├── PiO.Console │ ├── LightwaveMessage.cs │ ├── PiO.Console.csproj │ ├── Program.cs │ └── Properties │ │ ├── PublishProfiles │ │ ├── FolderProfile.pubxml │ │ └── FolderProfileArm.pubxml │ │ └── launchSettings.json ├── PiOStubSender │ ├── PiOStubSender.csproj │ └── Program.cs ├── README.md ├── Test.Xigadee.Api.NetCore │ ├── Controllers │ │ └── ValuesController.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Startup.cs │ ├── Test.Xigadee.Api.NetCore.csproj │ └── appsettings.json ├── Test.Xigadee.AspNetCore │ ├── Controllers │ │ └── ValuesController.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Startup.cs │ ├── Test.Xigadee.AspNetCore.csproj │ ├── appsettings.Development.json │ └── appsettings.json ├── Test.Xigadee.Azure.KeyVault │ ├── ConfigResolverKeyVaultTest.cs │ └── Test.Xigadee.Azure.KeyVault.csproj ├── Test.Xigadee.Azure.Storage │ ├── ConfigResolverTableStorageTests.cs │ └── Test.Xigadee.Azure.Storage.csproj ├── Test.Xigadee.Helper │ ├── ConfigResolverSetTestContext.cs │ ├── ConfigResolverTestContext.cs │ ├── Test.Xigadee.Helper.csproj │ ├── TestContextSettingException.cs │ └── TestExtensionHelper.cs ├── Test.Xigadee.Sample.HiC │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Test.Xigadee.Sample.HiC.csproj │ ├── UnitTest1.cs │ ├── app.config │ └── packages.config ├── Test │ ├── Test.Xigadee.Api.Client │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Test.Xigadee.Api.Client.csproj │ │ ├── app.config │ │ └── packages.config │ ├── Test.Xigadee.Api.Server │ │ ├── App_Start │ │ │ ├── RouteConfig.cs │ │ │ ├── SwaggerConfig.cs │ │ │ └── UnityConfig.cs │ │ ├── Areas │ │ │ └── HelpPage │ │ │ │ ├── ApiDescriptionExtensions.cs │ │ │ │ ├── App_Start │ │ │ │ └── HelpPageConfig.cs │ │ │ │ ├── Controllers │ │ │ │ └── HelpController.cs │ │ │ │ ├── HelpPage.css │ │ │ │ ├── HelpPageAreaRegistration.cs │ │ │ │ ├── HelpPageConfigurationExtensions.cs │ │ │ │ ├── ModelDescriptions │ │ │ │ ├── CollectionModelDescription.cs │ │ │ │ ├── ComplexTypeModelDescription.cs │ │ │ │ ├── DictionaryModelDescription.cs │ │ │ │ ├── EnumTypeModelDescription.cs │ │ │ │ ├── EnumValueDescription.cs │ │ │ │ ├── IModelDocumentationProvider.cs │ │ │ │ ├── KeyValuePairModelDescription.cs │ │ │ │ ├── ModelDescription.cs │ │ │ │ ├── ModelDescriptionGenerator.cs │ │ │ │ ├── ModelNameAttribute.cs │ │ │ │ ├── ModelNameHelper.cs │ │ │ │ ├── ParameterAnnotation.cs │ │ │ │ ├── ParameterDescription.cs │ │ │ │ └── SimpleTypeModelDescription.cs │ │ │ │ ├── Models │ │ │ │ └── HelpPageApiModel.cs │ │ │ │ ├── SampleGeneration │ │ │ │ ├── HelpPageSampleGenerator.cs │ │ │ │ ├── HelpPageSampleKey.cs │ │ │ │ ├── ImageSample.cs │ │ │ │ ├── InvalidSample.cs │ │ │ │ ├── ObjectGenerator.cs │ │ │ │ ├── SampleDirection.cs │ │ │ │ └── TextSample.cs │ │ │ │ ├── Views │ │ │ │ ├── Help │ │ │ │ │ ├── Api.cshtml │ │ │ │ │ ├── DisplayTemplates │ │ │ │ │ │ ├── ApiGroup.cshtml │ │ │ │ │ │ ├── CollectionModelDescription.cshtml │ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml │ │ │ │ │ │ ├── DictionaryModelDescription.cshtml │ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml │ │ │ │ │ │ ├── HelpPageApiModel.cshtml │ │ │ │ │ │ ├── ImageSample.cshtml │ │ │ │ │ │ ├── InvalidSample.cshtml │ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml │ │ │ │ │ │ ├── ModelDescriptionLink.cshtml │ │ │ │ │ │ ├── Parameters.cshtml │ │ │ │ │ │ ├── Samples.cshtml │ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml │ │ │ │ │ │ └── TextSample.cshtml │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ └── ResourceModel.cshtml │ │ │ │ ├── Shared │ │ │ │ │ └── _Layout.cshtml │ │ │ │ ├── Web.config │ │ │ │ └── _ViewStart.cshtml │ │ │ │ └── XmlDocumentationProvider.cs │ │ ├── Content │ │ │ ├── bootstrap-grid.css │ │ │ ├── bootstrap-grid.css.map │ │ │ ├── bootstrap-grid.min.css │ │ │ ├── bootstrap-grid.min.css.map │ │ │ ├── bootstrap-reboot.css │ │ │ ├── bootstrap-reboot.css.map │ │ │ ├── bootstrap-reboot.min.css │ │ │ ├── bootstrap-reboot.min.css.map │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── Controllers │ │ │ ├── AccountController.cs │ │ │ ├── ApiRequestsController.cs │ │ │ ├── BlahController.cs │ │ │ ├── ComplexEntityController.cs │ │ │ ├── MondayMorningBluesController.cs │ │ │ ├── OData4Controller.cs │ │ │ └── SecurityController.cs │ │ ├── Microservice │ │ │ ├── PopulatorWebApi.cs │ │ │ ├── TestConfigApi.cs │ │ │ └── TestMicroserviceApi.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Provider │ │ │ ├── ProviderLocal.cs │ │ │ └── ProviderTransmit.cs │ │ ├── Scripts │ │ │ ├── README.md │ │ │ ├── bootstrap.bundle.js │ │ │ ├── bootstrap.bundle.js.map │ │ │ ├── bootstrap.bundle.min.js │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.js.map │ │ │ ├── bootstrap.min.js │ │ │ ├── bootstrap.min.js.map │ │ │ ├── esm │ │ │ │ ├── popper-utils.js │ │ │ │ ├── popper-utils.js.map │ │ │ │ ├── popper-utils.min.js │ │ │ │ ├── popper-utils.min.js.map │ │ │ │ ├── popper.js │ │ │ │ ├── popper.js.map │ │ │ │ ├── popper.min.js │ │ │ │ └── popper.min.js.map │ │ │ ├── index.d.ts │ │ │ ├── jquery-3.3.1.intellisense.js │ │ │ ├── jquery-3.3.1.js │ │ │ ├── jquery-3.3.1.min.js │ │ │ ├── jquery-3.3.1.min.map │ │ │ ├── jquery-3.3.1.slim.js │ │ │ ├── jquery-3.3.1.slim.min.js │ │ │ ├── jquery-3.3.1.slim.min.map │ │ │ ├── jquery.validate-vsdoc.js │ │ │ ├── jquery.validate.js │ │ │ ├── jquery.validate.min.js │ │ │ ├── jquery.validate.unobtrusive.js │ │ │ ├── jquery.validate.unobtrusive.min.js │ │ │ ├── popper-utils.js │ │ │ ├── popper-utils.js.map │ │ │ ├── popper-utils.min.js │ │ │ ├── popper-utils.min.js.map │ │ │ ├── popper.js │ │ │ ├── popper.js.map │ │ │ ├── popper.min.js │ │ │ ├── popper.min.js.map │ │ │ └── umd │ │ │ │ ├── popper-utils.js │ │ │ │ ├── popper-utils.js.map │ │ │ │ ├── popper-utils.min.js │ │ │ │ ├── popper-utils.min.js.map │ │ │ │ ├── popper.js │ │ │ │ ├── popper.js.map │ │ │ │ ├── popper.min.js │ │ │ │ └── popper.min.js.map │ │ ├── Startup.cs │ │ ├── StartupPipeline.cs │ │ ├── Test.Xigadee.Api.Server.csproj │ │ ├── Test.Xigadee.Api.Server.licenseheader │ │ ├── Web.Debug.config │ │ ├── Web.Release.config │ │ ├── Web.config │ │ └── packages.config │ ├── Test.Xigadee.Api.Web │ │ ├── App_Start │ │ │ ├── BundleConfig.cs │ │ │ ├── FilterConfig.cs │ │ │ ├── IdentityConfig.cs │ │ │ ├── RouteConfig.cs │ │ │ └── Startup.Auth.cs │ │ ├── Content │ │ │ ├── Site.css │ │ │ ├── bootstrap-theme.css │ │ │ ├── bootstrap-theme.css.map │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap-theme.min.css.map │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── Controllers │ │ │ ├── AccountController.cs │ │ │ ├── HomeController.cs │ │ │ └── ManageController.cs │ │ ├── Global.asax │ │ ├── Global.asax.cs │ │ ├── Models │ │ │ ├── AccountViewModels.cs │ │ │ ├── IdentityModels.cs │ │ │ └── ManageViewModels.cs │ │ ├── Project_Readme.html │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Scripts │ │ │ ├── _references.js │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.min.js │ │ │ ├── jquery-2.2.4.intellisense.js │ │ │ ├── jquery-2.2.4.js │ │ │ ├── jquery-2.2.4.min.js │ │ │ ├── jquery-2.2.4.min.map │ │ │ ├── jquery.validate-vsdoc.js │ │ │ ├── jquery.validate.js │ │ │ ├── jquery.validate.min.js │ │ │ ├── jquery.validate.unobtrusive.js │ │ │ ├── jquery.validate.unobtrusive.min.js │ │ │ ├── modernizr-2.8.3.js │ │ │ ├── respond.js │ │ │ ├── respond.matchmedia.addListener.js │ │ │ ├── respond.matchmedia.addListener.min.js │ │ │ └── respond.min.js │ │ ├── Startup.cs │ │ ├── Test.Xigadee.Api.Web.csproj │ │ ├── Test.Xigadee.Api.Web.licenseheader │ │ ├── Views │ │ │ ├── Account │ │ │ │ ├── ConfirmEmail.cshtml │ │ │ │ ├── ExternalLoginConfirmation.cshtml │ │ │ │ ├── ExternalLoginFailure.cshtml │ │ │ │ ├── ForgotPassword.cshtml │ │ │ │ ├── ForgotPasswordConfirmation.cshtml │ │ │ │ ├── Login.cshtml │ │ │ │ ├── Register.cshtml │ │ │ │ ├── ResetPassword.cshtml │ │ │ │ ├── ResetPasswordConfirmation.cshtml │ │ │ │ ├── SendCode.cshtml │ │ │ │ ├── VerifyCode.cshtml │ │ │ │ └── _ExternalLoginsListPartial.cshtml │ │ │ ├── Home │ │ │ │ ├── About.cshtml │ │ │ │ ├── Contact.cshtml │ │ │ │ └── Index.cshtml │ │ │ ├── Manage │ │ │ │ ├── AddPhoneNumber.cshtml │ │ │ │ ├── ChangePassword.cshtml │ │ │ │ ├── Index.cshtml │ │ │ │ ├── ManageLogins.cshtml │ │ │ │ ├── SetPassword.cshtml │ │ │ │ └── VerifyPhoneNumber.cshtml │ │ │ ├── Shared │ │ │ │ ├── Error.cshtml │ │ │ │ ├── Lockout.cshtml │ │ │ │ ├── _Layout.cshtml │ │ │ │ └── _LoginPartial.cshtml │ │ │ ├── Web.config │ │ │ └── _ViewStart.cshtml │ │ ├── Web.Debug.config │ │ ├── Web.Release.config │ │ ├── Web.config │ │ ├── app_offline.htm │ │ ├── favicon.ico │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── packages.config │ ├── Test.Xigadee.Api.Web2 │ │ ├── App_Start │ │ │ ├── FilterConfig.cs │ │ │ ├── RouteConfig.cs │ │ │ └── WebApiConfig.cs │ │ ├── Controllers │ │ │ └── ValuesController.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── StartUp.cs │ │ ├── Test.Xigadee.Api.Web2.csproj │ │ ├── Web.Debug.config │ │ ├── Web.Release.config │ │ ├── Web.config │ │ └── packages.config │ ├── Test.Xigadee.Api │ │ ├── JwtTestBase.cs │ │ ├── JwtTests.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── StartUp │ │ │ ├── StartUp.cs │ │ │ └── StartUpCommand.cs │ │ ├── Test.Xigadee.Api.csproj │ │ ├── _docs │ │ │ └── ReadMe.md │ │ ├── app.config │ │ └── packages.config │ ├── Test.Xigadee.Azure.Console │ │ ├── App.config │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Test.Xigadee.Azure.Console.csproj │ │ └── packages.config │ ├── Test.Xigadee.Azure.ServiceBus │ │ ├── AzureQueue.cs │ │ ├── PersistenceServiceBus.cs │ │ ├── Pipeline1.cs │ │ ├── ServiceBusHarnessTests.cs │ │ └── Test.Xigadee.Azure.ServiceBus.csproj │ ├── Test.Xigadee.Azure │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Test.Xigadee.Azure.csproj │ │ ├── _docs │ │ │ └── ReadMe.md │ │ ├── app.config │ │ ├── default.runsettings │ │ └── packages.config │ ├── Test.Xigadee.DebugConsole │ │ ├── App.config │ │ ├── Context │ │ │ ├── ConsoleSettings.cs │ │ │ ├── ContextPersistence.cs │ │ │ ├── EntityState.cs │ │ │ └── Wrapper │ │ │ │ ├── ApiPersistenceConnector.cs │ │ │ │ ├── MicroserviceWrapper.cs │ │ │ │ └── WrapperBase.cs │ │ ├── Helper │ │ │ ├── Channels.cs │ │ │ └── EnumOptions.cs │ │ ├── Jobs │ │ │ ├── DelayProcessingJob.cs │ │ │ ├── DoNothingJob.cs │ │ │ ├── TestMasterJob.cs │ │ │ └── TestMasterJob2.cs │ │ ├── Populator │ │ │ ├── CommandRegisterEventArgs.cs │ │ │ ├── ConfigConsole.cs │ │ │ ├── IConsolePersistence.cs │ │ │ ├── PopulatorApiService.cs │ │ │ ├── PopulatorClient.cs │ │ │ └── PopulatorConsoleBase.cs │ │ ├── Program.cs │ │ ├── Program_Menu.cs │ │ ├── Program_Menu_Persistence.cs │ │ ├── Program_Menu_Settings_Communication.cs │ │ ├── Program_Menu_Settings_Configuration.cs │ │ ├── Program_Menu_Settings_Persistence.cs │ │ ├── Program_Microservice_Api.cs │ │ ├── Program_Microservice_Client.cs │ │ ├── Program_Microservice_Server.cs │ │ ├── Program_PersistenceMenuHelper.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Test.Xigadee.DebugConsole.csproj │ │ ├── Test.Xigadee.DebugConsole.licenseheader │ │ ├── _docs │ │ │ └── ReadMe.md │ │ └── packages.config │ ├── Test.Xigadee.Pipeline │ │ ├── PipelineBasic.cs │ │ ├── PipelineChannel.cs │ │ ├── PipelineUnityWebApi.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Samples │ │ │ └── APISample1.cs │ │ ├── Security │ │ │ ├── SecurityScaffoldBase.cs │ │ │ └── SecurityScaffoldTest1.cs │ │ ├── Test.Xigadee.Pipeline.csproj │ │ ├── _docs │ │ │ └── ReadMe.md │ │ ├── app.config │ │ └── packages.config │ ├── Test.Xigadee.Shared │ │ ├── Entities │ │ │ ├── Blah.cs │ │ │ ├── ComplexEntity │ │ │ │ ├── ComplexEntity.cs │ │ │ │ ├── ComplexKey.cs │ │ │ │ └── ComplexKeyMapper.cs │ │ │ └── MondayMorningBlues.cs │ │ ├── Persistence │ │ │ ├── MondayMorningBlues │ │ │ │ ├── MondayMorningBluesHelper.cs │ │ │ │ ├── PersistenceMondayMorningBluesBlob.cs │ │ │ │ ├── PersistenceMondayMorningBluesDocDb.cs │ │ │ │ ├── PersistenceMondayMorningBluesDocDbSdk.cs │ │ │ │ ├── PersistenceMondayMorningBluesMemory.cs │ │ │ │ ├── PersistenceMondayMorningBluesRedis.cs │ │ │ │ └── PersistenceMondayMorningBluesSql.cs │ │ │ ├── PersistenceBlahMemory.cs │ │ │ └── PersistenceComplexEntityMemory.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Test.Xigadee.Shared.csproj │ │ ├── Test.Xigadee.Shared.licenseheader │ │ ├── Tests │ │ │ └── PersistenceTests.cs │ │ ├── Xsd │ │ │ └── Blah.xsd │ │ ├── _docs │ │ │ └── ReadMe.md │ │ ├── app.config │ │ └── packages.config │ ├── Test.Xigadee.Sql │ │ ├── External │ │ │ └── MondayMorningBlues │ │ │ │ ├── Create.sql │ │ │ │ ├── Delete.sql │ │ │ │ ├── DeleteByReference.sql │ │ │ │ ├── Helper │ │ │ │ ├── FnEntityVersion.sql │ │ │ │ ├── FnMondayMorningBlues.sql │ │ │ │ ├── MondayMorningBlues_Resolve.sql │ │ │ │ └── MondayMorningBlues_ResolveByRef.sql │ │ │ │ ├── Read.sql │ │ │ │ ├── ReadByReference.sql │ │ │ │ ├── Update.sql │ │ │ │ ├── Version.sql │ │ │ │ └── VersionByReference.sql │ │ ├── MondayMorningBlues.sql │ │ ├── Schema.sql │ │ └── Test.Xigadee.Sql.sqlproj │ └── Test.Xigadee │ │ ├── Channel │ │ ├── ChannelRedirect.cs │ │ └── Channels.cs │ │ ├── CommandInitiator │ │ └── CommandInitiatorTest1.cs │ │ ├── Commands │ │ ├── CommandBug180Test.cs │ │ ├── CommandReflectionInheritanceTest.cs │ │ ├── CommandReflectionUnitTest.cs │ │ ├── CommandUnitTestBase.cs │ │ ├── Harness │ │ │ ├── Harness1.cs │ │ │ ├── HarnessMasterJob.cs │ │ │ ├── HarnessOutgoing.cs │ │ │ └── HarnessPolicyReflection.cs │ │ ├── InheritedCommand.cs │ │ ├── MasterJobs │ │ │ ├── MasterJobCommand.cs │ │ │ └── MasterJobTests.cs │ │ ├── Microservice_Validate_CommandOutgoingRequests.cs │ │ ├── Microservice_Validate_CommandRequest.cs │ │ ├── Schedule │ │ │ └── ScheduleAttribute.cs │ │ ├── ServiceMessageHeaderFragmentTests.cs │ │ ├── ServiceMessageHeaderTests.cs │ │ ├── SimpleCommand.cs │ │ ├── SimpleCommand1.cs │ │ ├── SimpleCommand2.cs │ │ └── SimpleCommand3.cs │ │ ├── Communication │ │ ├── Algorithms │ │ │ └── MultipleClientPollSlotAllocationAlgorithmTests.cs │ │ ├── Bridge │ │ │ ├── CommunicationBridgeReroute.cs │ │ │ ├── CommunicationBridgeTests.cs │ │ │ └── CommunicationRedirectTests.cs │ │ └── Tcp │ │ │ ├── CommunicationTcp.cs │ │ │ ├── Connector.cs │ │ │ ├── HttpSamples │ │ │ ├── HTTPChuckedTest1.txt │ │ │ ├── http1_rq.txt │ │ │ ├── http1_rq_cont.txt │ │ │ ├── http1_rs.txt │ │ │ ├── http2_rq.txt │ │ │ ├── http2_rs.txt │ │ │ ├── http3_rq.txt │ │ │ ├── http3_rs.txt │ │ │ └── httpMime1.txt │ │ │ └── ValidateHttpMessaging.cs │ │ ├── Configuration │ │ └── Config1.cs │ │ ├── Dispatcher │ │ ├── Commands │ │ │ └── DispatcherCommand.cs │ │ ├── DispatcherRetry.cs │ │ ├── DispatcherTestRouting.cs │ │ ├── DispatcherTestSecurity.cs │ │ └── ErrorPolicy │ │ │ ├── ErrorPolicy.cs │ │ │ └── UnitTest1.cs │ │ ├── EventTestCommand.cs │ │ ├── Microservice │ │ └── ServiceIdentifierValidation.cs │ │ ├── Persistence │ │ ├── Microservice_Validate_Persistence.cs │ │ └── PersistenceHarness.cs │ │ ├── Pipeline │ │ ├── Pipeline1.cs │ │ ├── Pipeline2.cs │ │ └── Pipeline3.cs │ │ ├── PipelineAI1.cs │ │ ├── PopulatorExtensions.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── ResourceTracker │ │ ├── ResourcePipeline1.cs │ │ └── UnitTest1.cs │ │ ├── Samples │ │ ├── CommandLocal.cs │ │ └── PersistenceLocal.cs │ │ ├── Security │ │ ├── AesEncryptionTests.cs │ │ ├── JWTUnitTests.cs │ │ ├── SignatureHelper.cs │ │ ├── TransportEncryptionTests.cs │ │ └── TransportVerificationTests.cs │ │ ├── Serialization │ │ ├── Compressors │ │ │ └── TestCompressors.cs │ │ ├── SerializationContainerTests.cs │ │ ├── SerializationHolderTests.cs │ │ ├── SerializationTests.cs │ │ └── Serializers │ │ │ ├── JsonContractTests.cs │ │ │ └── JsonRawTests.cs │ │ ├── ServiceMessageHelper │ │ └── Test_ServiceMessageHeader.cs │ │ ├── Setup │ │ └── UnitTest1.cs │ │ ├── TaskManager │ │ ├── CaseSensitiveCommands.cs │ │ └── PolicyTaskManagerTests.cs │ │ ├── Test.Xigadee.csproj │ │ ├── Test.Xigadee.licenseheader │ │ ├── _docs │ │ └── ReadMe.md │ │ ├── app.config │ │ └── packages.config ├── Xigadee.AWS │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Xigadee.AWS.csproj │ ├── Xigadee.AWS.nuspec │ └── packages.config ├── Xigadee.Abstractions │ ├── AsyncWaitHandle.cs │ ├── Communication │ │ ├── Base │ │ │ └── PartitionConfig.cs │ │ ├── Channel │ │ │ ├── Channel.cs │ │ │ ├── ChannelDirection.cs │ │ │ └── MessageRedirectRule.cs │ │ └── Exceptions │ │ │ └── MessagingException.cs │ ├── Components │ │ ├── EventBase.cs │ │ ├── ServiceStatus.cs │ │ ├── Statistics │ │ │ ├── MessagingStatistics.cs │ │ │ ├── StatisticsBase.cs │ │ │ ├── StatsContainer.cs │ │ │ └── StatsCounter.cs │ │ └── StatusBase.cs │ ├── Configuration │ │ └── ConfigResolver │ │ │ ├── ConfigResolver.cs │ │ │ ├── ConfigResolverFunction.cs │ │ │ └── ConfigResolverMemory.cs │ ├── DataCollection │ │ └── DataCollectionSupport.cs │ ├── Helper │ │ ├── ArrayHelper │ │ │ ├── ArrayHelper.cs │ │ │ ├── ArrayHelper_Binary.cs │ │ │ ├── ArrayHelper_Contains.cs │ │ │ ├── ArrayHelper_FindFirstPosition.cs │ │ │ ├── ArrayHelper_MatchCollection.cs │ │ │ ├── ArrayHelper_MatchSequence.cs │ │ │ ├── ArrayHelper_Range.cs │ │ │ ├── ArrayHelper_SlidingWindow.cs │ │ │ ├── MatchCollection │ │ │ │ ├── MatchCollection.cs │ │ │ │ ├── MatchCollectionState.cs │ │ │ │ └── Terminators │ │ │ │ │ ├── MatchExceptionTerminator.cs │ │ │ │ │ ├── MatchSequenceSkipOrFailTerminator.cs │ │ │ │ │ ├── MatchSequenceTerminator.cs │ │ │ │ │ ├── MatchSkipTerminator.cs │ │ │ │ │ ├── MatchTerminator.cs │ │ │ │ │ ├── MatchTerminatorResult.cs │ │ │ │ │ └── MatchTerminatorStatus.cs │ │ │ └── MatchSequence │ │ │ │ └── MatchState.cs │ │ ├── Bit │ │ │ ├── BitHelper.cs │ │ │ └── BitMask.cs │ │ └── Conversion │ │ │ ├── Conversion.cs │ │ │ ├── Conversion_Delta.cs │ │ │ └── Conversion_Xml.cs │ ├── Interfaces │ │ ├── Contracts │ │ │ ├── ContractAttribute.cs │ │ │ └── IMessageContract.cs │ │ ├── IChannelService.cs │ │ ├── ICollectionStatistics.cs │ │ ├── IContainerService.cs │ │ ├── IDataCollection.cs │ │ ├── ISchedule.cs │ │ ├── IService.cs │ │ ├── IServiceHandlers.cs │ │ ├── ISharedService.cs │ │ ├── IStatisticsBase.cs │ │ └── Require │ │ │ ├── IRequireChannelService.cs │ │ │ ├── IRequireDataCollector.cs │ │ │ ├── IRequirePayloadSerialization.cs │ │ │ ├── IRequireScheduler.cs │ │ │ ├── IRequireServiceOriginator.cs │ │ │ └── IRequireSharedServices.cs │ ├── LinqHelper.cs │ ├── Messaging │ │ ├── Exceptions │ │ │ ├── ContractException.cs │ │ │ └── InvalidMessageContractException.cs │ │ ├── MessageFilterWrapper.cs │ │ ├── ProcessOptions.cs │ │ ├── RateLimitSignal.cs │ │ ├── ServiceMessage │ │ │ ├── ServiceMessage.cs │ │ │ ├── ServiceMessageHeader.cs │ │ │ ├── ServiceMessageHeaderFragment.cs │ │ │ └── ServiceMessageHelper.cs │ │ └── TransmissionPayload │ │ │ ├── TransmissionPayload.cs │ │ │ ├── TransmissionPayloadHelper.cs │ │ │ └── TransmissionPayloadTraceEventArgs.cs │ ├── Microservice │ │ ├── MicroserviceId.cs │ │ └── MicroserviceIdNotValidException.cs │ ├── Persistence │ │ ├── Entities │ │ │ ├── History │ │ │ │ ├── HistoryBase.cs │ │ │ │ ├── HistoryRequest.cs │ │ │ │ └── HistoryResponse.cs │ │ │ └── Search │ │ │ │ ├── SearchOData4Base.cs │ │ │ │ ├── SearchRequest.cs │ │ │ │ └── SearchResponse.cs │ │ ├── Interfaces │ │ │ ├── IRepositoryAsync.cs │ │ │ ├── IRequestOptions.cs │ │ │ └── IResponseHolder.cs │ │ ├── RepositoryHolder.cs │ │ ├── RepositoryOptions.cs │ │ ├── RepositorySettings.cs │ │ ├── RequestSettings.cs │ │ └── ResponseHolder.cs │ ├── ResourceTracker │ │ ├── Entities │ │ │ ├── ResourceBase.cs │ │ │ └── ResourceProfile.cs │ │ └── Interfaces │ │ │ └── IResourceBase.cs │ ├── Scheduler │ │ ├── ExceptionHolder.cs │ │ ├── Schedule.cs │ │ ├── ScheduleRecalculateException.cs │ │ └── ScheduleTimerConfig.cs │ ├── ServiceHandler │ │ ├── Exceptions │ │ │ ├── PayloadSerializerCollectionEmptyException.cs │ │ │ ├── SerializationBlobLimitExceededException.cs │ │ │ ├── SerializationHolderContentTypeException.cs │ │ │ └── ServiceHandlerDuplicationException.cs │ │ ├── Handlers │ │ │ ├── Interfaces │ │ │ │ ├── IServiceHandler.cs │ │ │ │ ├── IServiceHandlerAuthentication.cs │ │ │ │ ├── IServiceHandlerCompression.cs │ │ │ │ ├── IServiceHandlerEncryption.cs │ │ │ │ └── IServiceHandlerSerialization.cs │ │ │ ├── Serializers │ │ │ │ ├── JsonContractSerializer.cs │ │ │ │ ├── JsonRawSerializer.cs │ │ │ │ ├── MagicByteSerializerBase.cs │ │ │ │ └── SerializerBase.cs │ │ │ └── ServiceHandlerCollection.cs │ │ ├── Ids │ │ │ ├── AuthenticationHandlerId.cs │ │ │ ├── CompressionHandlerId.cs │ │ │ ├── EncryptionHandlerId.cs │ │ │ ├── SerializationHandlerId.cs │ │ │ └── ServiceHandlerIdBase.cs │ │ ├── Interfaces │ │ │ └── ISystemHandlerSerializationMagicBytes.cs │ │ └── ServiceHandlerContext.cs │ ├── StringHelper.cs │ ├── Xigadee.Abstractions.csproj │ ├── Xigadee.Abstractions.nuspec │ └── _Docs │ │ └── Introduction.md ├── Xigadee.Api.Client.DNS2 │ ├── Class1.cs │ └── Xigadee.Api.Client.DNS2.csproj ├── Xigadee.Api.Client │ ├── ApiProviderAsyncBase.cs │ ├── ApiProviderAsyncQueryHelper.cs │ ├── ApiProviderAsyncV2.cs │ ├── ApiProviderBase.cs │ ├── ApiRepositoryOptions.cs │ ├── Auth │ │ ├── ApiProviderAuthApim.cs │ │ ├── ApiProviderAuthJwt.cs │ │ ├── ApiProviderAuthNone.cs │ │ └── IApiProviderAuthBase.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Xigadee.Api.Client.csproj │ ├── Xigadee.Api.Client.licenseheader │ ├── Xigadee.Api.Client.nuspec │ ├── _docs │ │ └── Introduction.md │ └── packages.config ├── Xigadee.Api.DNS2 │ ├── Class1.cs │ └── Xigadee.Api.DNS2.csproj ├── Xigadee.Api.Server.DNS2 │ ├── Class1.cs │ └── Xigadee.Api.Server.DNS2.csproj ├── Xigadee.Api.Server.Unity │ ├── App_Start │ │ └── UnityConfig.cs │ ├── Pipeline │ │ ├── Ability.cs │ │ ├── Add │ │ │ └── AddCommandUnity.cs │ │ ├── Attach │ │ │ ├── AttachCommandUnity.cs │ │ │ └── AttachPersistenceMessageInitiatorUnity.cs │ │ ├── Exceptions │ │ │ └── UnityWebApiMicroservicePipelineInvalidException.cs │ │ ├── Inspect.cs │ │ ├── Interfaces │ │ │ └── IPipelineWebApiUnity.cs │ │ ├── ToUnityContainer.cs │ │ ├── ToUnityWebApiMicroservicePipeline.cs │ │ └── UnityWebApiMicroservicePipeline.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Xigadee.Api.Server.Unity.csproj │ ├── Xigadee.Api.Server.Unity.licenseheader │ ├── Xigadee.Api.Server.Unity.nuspec │ ├── _docs │ │ └── Introduction.md │ ├── app.config │ └── packages.config ├── Xigadee.Api.Server │ ├── Apim │ │ ├── ApimConnector.cs │ │ ├── ApimIdentity.cs │ │ ├── ApimJson.cs │ │ ├── ApimPrincipal.cs │ │ ├── ApimResponseHolder.cs │ │ └── WebApiApimAuthentication.cs │ ├── Controllers │ │ ├── ApiPersistenceControllerAsyncBase.cs │ │ ├── ApiPersistenceOData4ControllerAsync.cs │ │ ├── OData4SearchRedirectControllerAsync.cs │ │ ├── SecurityControllerAsyncBase.cs │ │ └── WebhookControllerAsyncBase.cs │ ├── DataCollection │ │ └── Events │ │ │ ├── ApiBoundaryEvent.cs │ │ │ ├── ApiBoundaryLoggingFilterLevel.cs │ │ │ └── ApiMimeContent.cs │ ├── Exceptions │ │ └── WebApiJwtFilterValidationException.cs │ ├── Filters │ │ ├── WebApiAzureBlobLoggingFilter.cs │ │ ├── WebApiBoundaryLoggingFilter.cs │ │ ├── WebApiCircuitBreakerFilter.cs │ │ ├── WebApiCorrelationIdFilter.cs │ │ ├── WebApiMicroserviceStartupFilter.cs │ │ ├── WebApiServiceUnavailableFilter.cs │ │ └── WebApiVersionHeaderFilter.cs │ ├── Helper │ │ ├── HttpMethodChangeHandler.cs │ │ ├── MicroserviceDependencyResolver.cs │ │ └── OData4Helper.cs │ ├── ModelBinders │ │ ├── ApiRequest.cs │ │ ├── ApiRequestModelBinder.cs │ │ ├── ApiResponse.cs │ │ ├── ApiUtility.cs │ │ └── OData4ServiceDocumentResponse.cs │ ├── Owin │ │ ├── AllowHttpTrafficAttribute.cs │ │ ├── AllowNoClientCertificateAttribute.cs │ │ ├── ClientCertificateAuthorizationFilter.cs │ │ ├── JwtAuthenticationFilter.cs │ │ ├── OpenCorsPolicy.cs │ │ ├── Policy │ │ │ ├── IJwtTokenVerificationPolicy.cs │ │ │ └── JwtTokenVerificationPolicy.cs │ │ ├── RequireHttpsFilter.cs │ │ └── StatusResult.cs │ ├── Pipeline │ │ ├── Ability.cs │ │ ├── AddAuthorizationServer.cs │ │ ├── ApiAdd │ │ │ ├── ApiAddBoundaryLoggerFilter.cs │ │ │ ├── ApiAddClientCertificateAuthorizationFilter.cs │ │ │ ├── ApiAddCorrelationIdFilter.cs │ │ │ ├── ApiAddJwtTokenAuthentication.cs │ │ │ ├── ApiAddMicroserviceUnavailableFilter.cs │ │ │ ├── ApiAddRequiresHttpsFilter.cs │ │ │ └── ApiAddVersionHeaderFilter.cs │ │ ├── ApiAdjust │ │ │ └── ApiAdjust.cs │ │ ├── Inspect.cs │ │ ├── Interfaces │ │ │ └── IPipelineWebApi.cs │ │ ├── StartWebApi.cs │ │ ├── ToHttpConfiguration.cs │ │ ├── ToWebApiMicroservicePipeline.cs │ │ ├── WebApi.cs │ │ └── WebApiMicroservicePipeline.cs │ ├── Populator │ │ ├── ConfigWebApi.cs │ │ ├── ConfigWebApiHelper │ │ │ ├── Auth.cs │ │ │ └── Logging.cs │ │ └── MicroserviceWebApi.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Xigadee.Api.Server.csproj │ ├── Xigadee.Api.Server.csproj_dns2 │ ├── Xigadee.Api.Server.licenseheader │ ├── Xigadee.Api.Server.nuspec │ ├── _docs │ │ └── Introduction.md │ ├── app.config │ └── packages.config ├── Xigadee.Api │ ├── ApiConstants.cs │ ├── Attributes │ │ ├── KeyMapperAttribute.cs │ │ └── MediaTypeConverterAttribute.cs │ ├── Exceptions │ │ ├── KeyMapperResolutionException.cs │ │ ├── TransportDeserializationException.cs │ │ ├── TransportSerializationException.cs │ │ └── TransportSerializerResolutionException.cs │ ├── Interfaces │ │ ├── IKeyMapper.cs │ │ └── ITransportSerializer.cs │ ├── JsonTransportSerializer.cs │ ├── KeyMapper.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── TransportSerializer.cs │ ├── TransportUriMapper.cs │ ├── Xigadee.Api.csproj │ ├── Xigadee.Api.licenseheader │ ├── XmlSchemaValidation.cs │ ├── XmlTransportSerializerBase.cs │ ├── _Docs │ │ └── Introduction.md │ └── packages.config ├── Xigadee.AspNetCore │ ├── DataCollection │ │ ├── ApiBoundaryLoggingFilterLevel.cs │ │ ├── AspNetCoreBoundaryEvent.cs │ │ ├── UseXigadeeHttpLogging.cs │ │ ├── XigadeeHttpBoundaryLogger.cs │ │ └── XigadeeHttpBoundaryLoggerOptions.cs │ ├── Filters │ │ ├── ClientCertificateAuthorizationFilter.cs │ │ ├── WebApiBoundaryLoggingFilter.cs │ │ ├── WebApiCircuitBreakerFilter.cs │ │ ├── WebApiCorrelationIdFilter.cs │ │ ├── WebApiMicroserviceStartupFilter.cs │ │ ├── WebApiServiceUnavailableFilter.cs │ │ └── WebApiVersionHeaderFilter.cs │ ├── HostedService.cs │ ├── Interfaces │ │ └── IPipelineAspNetCore.cs │ ├── Pipeline │ │ ├── AddXigadee.cs │ │ ├── AspNetCoreMicroservicePipeline.cs │ │ ├── Revert.cs │ │ ├── StartWebApi.cs │ │ └── UseXigadee.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Xigadee.AspNetCore.csproj │ └── Xigadee.AspNetCore.nuspec ├── Xigadee.Azure.ApiManagement │ ├── ApimConnector.cs │ ├── ApimIdentity.cs │ ├── ApimJson.cs │ ├── ApimPrincipal.cs │ ├── ApimResponseHolder.cs │ ├── WebApiApimAuthentication.cs │ └── Xigadee.Azure.ApiManagement.csproj ├── Xigadee.Azure.ApplicationInsights │ ├── AddApplicationInsightsConnector.cs │ ├── ApplicationInsightsCollector.cs │ ├── CommandCorrelationInitializer.cs │ ├── Configuration │ │ ├── ApplicationInsight.cs │ │ └── ApplicationInsightsConfigShortcuts.cs │ ├── Xigadee.Azure.ApplicationInsights.csproj │ └── Xigadee.Azure.ApplicationInsights.nuspec ├── Xigadee.Azure.Base │ ├── AzureConfigurationOverrideSet.cs │ ├── Helper │ │ ├── AzureConfigShortcut.cs │ │ └── AzureStorageEncryption.cs │ └── Xigadee.AzureBase.csproj ├── Xigadee.Azure.DNS2 │ ├── Class1.cs │ └── Xigadee.Azure.DNS2.csproj ├── Xigadee.Azure.DocumentDB │ ├── DocumentDb │ │ ├── Account.cs │ │ ├── Collection.cs │ │ ├── CollectionHolder.cs │ │ ├── CollectionSearch.cs │ │ ├── Database.cs │ │ ├── DocumentDbConnection.cs │ │ ├── DocumentDbEventSource.cs │ │ ├── DocumentDbLogger.cs │ │ ├── DocumentDbPersistenceCommandPolicy.cs │ │ ├── Helper.cs │ │ ├── PersistenceManagerHandlerDocumentDb.cs │ │ ├── PersistenceManagerHandlerDocumentDbBase.cs │ │ ├── Pipeline │ │ │ ├── AddPersistenceManagerDocumentDb.cs │ │ │ ├── AttachPersistenceManagerDocumentDb.cs │ │ │ └── ConfigBaseHelperDocumentDb.cs │ │ ├── RestBase.cs │ │ └── SearchParameter.cs │ ├── DocumentDbSdk │ │ ├── AddPersistenceManagerDocumentDbSdk.cs │ │ ├── AttachPersistenceManagerDocumentDbSdk.cs │ │ ├── PersistenceMessageHandlerDocumentDbSdk.cs │ │ └── SDKHelper.cs │ ├── Xigadee.Azure.DocumentDB.csproj │ └── Xigadee.Azure.DocumentDB.nuspec ├── Xigadee.Azure.EventHubs │ ├── Communication │ │ ├── AzureEventHubsBridgeAgent.cs │ │ └── AzureEventHubsFabricBridge.cs │ ├── Configuration │ │ ├── AzureEventHubsConnectionException.cs │ │ ├── AzureStorageEncryption.cs │ │ └── EventHubs.cs │ ├── DataCollection │ │ ├── AddEventHubsDataCollector.cs │ │ ├── EventHubsDataCollector.cs │ │ ├── EventHubsDataCollectorOptions.cs │ │ └── EventHubsDataCollectorPolicy.cs │ ├── Xigadee.Azure.EventHubs.csproj │ └── Xigadee.Azure.EventHubs.nuspec ├── Xigadee.Azure.KeyVault │ ├── Configuration │ │ ├── ConfigKeyVaultException.cs │ │ ├── ConfigResolverKeyVault.cs │ │ ├── ConfigResolverSetKeyVault.cs │ │ └── KeyVault.cs │ ├── Xigadee.Azure.KeyVault.csproj │ └── Xigadee.Azure.KeyVault.nuspec ├── Xigadee.Azure.Redis │ ├── Configuration │ │ ├── AddPersistenceManagerRedisCache.cs │ │ ├── AttachPersistenceManagerRedisCache.cs │ │ └── RedisCache.cs │ ├── Persistence │ │ ├── PersistenceMessageHandlerRedisCache.cs │ │ └── RedisCacheManager.cs │ ├── Xigadee.Azure.Redis.csproj │ └── Xigadee.Azure.Redis.nuspec ├── Xigadee.Azure.ServiceBus │ ├── Communication │ │ ├── Base │ │ │ ├── AzureClientHolder.cs │ │ │ ├── AzureConnection.cs │ │ │ ├── AzureSBListenerBase.cs │ │ │ ├── AzureSBSenderBase.cs │ │ │ └── IAzureServiceBusMessagingService.cs │ │ ├── Bridge │ │ │ ├── Agent │ │ │ │ ├── AzureServiceBusBridgeAgentBase.cs │ │ │ │ ├── AzureServiceBusQueueBridgeAgent.cs │ │ │ │ └── AzureServiceBusTopicBridgeAgent.cs │ │ │ ├── AzureServiceBusFabricBridge.cs │ │ │ └── IAzureServiceBusFabricBridge.cs │ │ ├── Harness │ │ │ ├── AzureServiceBusListenerHarness.cs │ │ │ └── AzureServiceBusSenderHarness.cs │ │ ├── Management.cs │ │ ├── Message Helpers │ │ │ └── AzureServiceBusMessageHelper.cs │ │ ├── NamespaceManager │ │ │ ├── NamespaceManagerHelper.cs │ │ │ └── NamespaceManagerREST.cs │ │ ├── Queue │ │ │ ├── QueueListener.cs │ │ │ └── QueueSender.cs │ │ └── Topic │ │ │ ├── TopicHelper.cs │ │ │ ├── TopicListener.cs │ │ │ └── TopicSender.cs │ ├── Configuration │ │ └── ServiceBus.cs │ ├── Exceptions │ │ └── AzureServiceBusConnectionException.cs │ ├── Pipeline │ │ ├── Attach │ │ │ ├── AttachAzureServiceBusQueueListener.cs │ │ │ ├── AttachAzureServiceBusQueueSender.cs │ │ │ ├── AttachAzureServiceBusTopicListener.cs │ │ │ └── AttachAzureServiceBusTopicSender.cs │ │ ├── ConfigureAzureMessagingHelper.cs │ │ └── ServiceBus.cs │ ├── Xigadee.Azure.ServiceBus.csproj │ └── Xigadee.Azure.ServiceBus.nuspec ├── Xigadee.Azure.Storage │ ├── Communication │ │ └── AzureQueueFabricBridge.cs │ ├── Configuration │ │ ├── AzureStorage.cs │ │ ├── AzureStorageConfigShortcut.cs │ │ ├── ConfigResolverTableStorage.cs │ │ ├── LogStorage.cs │ │ ├── Storage.cs │ │ └── TableStorage.cs │ ├── DataCollection │ │ ├── AzureStorageDataCollector.cs │ │ ├── AzureStorageDataCollectorOptions.cs │ │ ├── AzureStorageDataCollectorPolicy.cs │ │ ├── Connector │ │ │ ├── Base.cs │ │ │ ├── Blob.cs │ │ │ ├── File.cs │ │ │ ├── Queue.cs │ │ │ └── Table.cs │ │ └── Helper │ │ │ ├── Misc.cs │ │ │ └── Table.cs │ ├── Exceptions │ │ ├── AzureDataCollectionAggregrateException.cs │ │ └── EncryptionPolicyException.cs │ ├── Helper │ │ ├── AzureBaseHelper.cs │ │ ├── AzureStorageEncryption.cs │ │ └── BinaryContainer.cs │ ├── Interfaces │ │ ├── AzureStorageBehaviour.cs │ │ └── IAzureStorageConnectorBase.cs │ ├── Persistence │ │ ├── PersistenceMessageHandlerAzureBlobStorageBase.cs │ │ ├── StorageResponseHolder.cs │ │ └── StorageServiceBase.cs │ ├── Pipeline │ │ ├── AddAzureStorageDataCollector.cs │ │ ├── AddPersistenceManagerAzureBlobStorage.cs │ │ ├── AttachPersistenceManagerAzureBlobStorage.cs │ │ └── ConfigResolverSetTableStorage.cs │ ├── Xigadee.Azure.Storage.csproj │ └── Xigadee.Azure.Storage.nuspec ├── Xigadee.Azure │ ├── ApplicationInsights │ │ ├── ApplicationInsightsCollector.cs │ │ ├── CommandCorrelationInitializer.cs │ │ └── Pipeline │ │ │ └── AddApplicationInsightsConnector.cs │ ├── Communication │ │ └── ServiceBus │ │ │ ├── Base │ │ │ ├── AzureClientHolder.cs │ │ │ ├── AzureConnection.cs │ │ │ ├── AzureSBListenerBase.cs │ │ │ ├── AzureSBSenderBase.cs │ │ │ └── IAzureServiceBusMessagingService.cs │ │ │ ├── DeadLetterLogger │ │ │ └── DeadLetterLoggerMessageHandler.cs │ │ │ ├── EventHub │ │ │ ├── AzureSBEventHubListener.cs │ │ │ ├── AzureSBEventHubSender.cs │ │ │ └── EventHubHelper.cs │ │ │ ├── Exceptions │ │ │ └── AzureConnectionException.cs │ │ │ ├── Message Helpers │ │ │ ├── BrokeredMessageHelper.cs │ │ │ └── EventDataHelper.cs │ │ │ ├── Pipeline │ │ │ └── Attach │ │ │ │ ├── AttachAzureServiceBusQueueListener.cs │ │ │ │ ├── AttachAzureServiceBusQueueSender.cs │ │ │ │ ├── AttachAzureServiceBusTopicListener.cs │ │ │ │ ├── AttachAzureServiceBusTopicSender.cs │ │ │ │ └── ConfigureAzureMessagingHelper.cs │ │ │ ├── Queue │ │ │ ├── AzureSBQueueListener.cs │ │ │ ├── AzureSBQueueSender.cs │ │ │ └── QueueHelper.cs │ │ │ └── Topic │ │ │ ├── AzureSBTopicListener.cs │ │ │ ├── AzureSBTopicSender.cs │ │ │ └── TopicHelper.cs │ ├── Configuration │ │ └── ConfigResolver │ │ │ ├── Azure │ │ │ ├── AzureHelper.cs │ │ │ └── ConfigResolverAzure.cs │ │ │ ├── KeyVault │ │ │ ├── ConfigKeyVaultException.cs │ │ │ └── ConfigResolverKeyVault.cs │ │ │ └── TableStorage │ │ │ └── ConfigResolverTableStorage.cs │ ├── DataCollection │ │ ├── EventHubs │ │ │ ├── AddEventHubsDataCollector.cs │ │ │ ├── EventHubsDataCollector.cs │ │ │ ├── EventHubsDataCollectorOptions.cs │ │ │ └── EventHubsDataCollectorPolicy.cs │ │ ├── Exceptions │ │ │ ├── AzureDataCollectionAggregrateException.cs │ │ │ └── EncryptionPolicyException.cs │ │ ├── Legacy │ │ │ ├── AzureStorageLoggingBase.cs │ │ │ ├── EventSource │ │ │ │ ├── AzureStorageEventSource.cs │ │ │ │ ├── EventHubEventSource.cs │ │ │ │ └── QueueEventSource.cs │ │ │ └── Logger │ │ │ │ └── AzureStorageLogger.cs │ │ └── Storage │ │ │ ├── AzureStorageDataCollector.cs │ │ │ ├── AzureStorageDataCollectorOptions.cs │ │ │ ├── AzureStorageDataCollectorPolicy.cs │ │ │ ├── Connector │ │ │ ├── Base.cs │ │ │ ├── Blob.cs │ │ │ ├── File.cs │ │ │ ├── Queue.cs │ │ │ └── Table.cs │ │ │ ├── Enumerations │ │ │ ├── AzureStorageBehaviour.cs │ │ │ └── AzureStorageEncryption.cs │ │ │ ├── ExtensionMethods │ │ │ ├── Blob.cs │ │ │ ├── Misc.cs │ │ │ └── Table.cs │ │ │ ├── Helper │ │ │ └── BinaryContainer.cs │ │ │ ├── Interfaces │ │ │ └── IAzureStorageConnectorBase.cs │ │ │ └── Pipeline │ │ │ └── AddAzureStorageDataCollector.cs │ ├── Persistence │ │ ├── BlobStorage │ │ │ ├── PersistenceMessageHandlerAzureBlobStorageBase.cs │ │ │ ├── Pipeline │ │ │ │ ├── AddPersistenceManagerAzureBlobStorage.cs │ │ │ │ └── AttachPersistenceManagerAzureBlobStorage.cs │ │ │ ├── StorageResponseHolder.cs │ │ │ └── StorageServiceBase.cs │ │ ├── RedisCache │ │ │ ├── PersistenceMessageHandlerRedisCache.cs │ │ │ ├── Pipeline │ │ │ │ ├── AddPersistenceManagerRedisCache.cs │ │ │ │ └── AttachPersistenceManagerRedisCache.cs │ │ │ └── RedisCacheManager.cs │ │ ├── StorageHolderBase.cs │ │ └── StorageRequestHolder.cs │ ├── Pipeline │ │ ├── Config │ │ │ ├── ApplicationInsight.cs │ │ │ ├── AzureStorage.cs │ │ │ ├── EventHubs.cs │ │ │ ├── KeyVault.cs │ │ │ ├── LogStorage.cs │ │ │ ├── Override │ │ │ │ ├── AzureConfigShortcut.cs │ │ │ │ └── AzureConfigurationOverrideSet.cs │ │ │ ├── RedisCache.cs │ │ │ ├── ServiceBus.cs │ │ │ ├── Storage.cs │ │ │ └── TableStorage.cs │ │ └── ConfigResolver │ │ │ ├── ConfigResolverSetAzure.cs │ │ │ ├── ConfigResolverSetKeyVault.cs │ │ │ └── ConfigResolverSetTableStorage.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Xigadee.Azure.DNS2.csproj │ ├── Xigadee.Azure.DNS2.sln │ ├── Xigadee.Azure.csproj │ ├── Xigadee.Azure.licenseheader │ ├── Xigadee.Azure.nuspec │ ├── _docs │ │ └── Introduction.md │ ├── app.config │ └── packages.config ├── Xigadee.Communication │ ├── Http │ │ ├── HttpDirectListener.cs │ │ └── HttpDirectSender.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── TcpTlsChannel │ │ ├── Helper │ │ │ ├── DirectChannelCommunicator.cs │ │ │ └── MakeCert.txt │ │ ├── TcpTlsChannelSender.cs │ │ ├── TcpTlsClientHolder.cs │ │ ├── TcpTlsConnection.cs │ │ ├── TcpTlsMessage.cs │ │ └── TlsTcpChannelListener.cs │ ├── Xigadee.Communication.csproj │ ├── Xigadee.Communication.licenseheader │ ├── Xigadee.Communication.nuspec │ └── packages.config ├── Xigadee.Console.DNS2 │ ├── Class1.cs │ └── Xigadee.Console.DNS2.csproj ├── Xigadee.Console │ ├── ArgumentsParser.cs │ ├── ConsoleConfigurationBase.cs │ ├── ConsoleHelper.cs │ ├── ConsoleWriter.cs │ ├── ErrorInfo.cs │ ├── Extensions │ │ ├── AddInfoMessage.cs │ │ ├── AddMicroservicePipeline.cs │ │ └── AddOption.cs │ ├── Info │ │ ├── ConsoleInfoContext.cs │ │ └── InfoHelper.cs │ ├── Menu │ │ ├── ConsoleMenu.cs │ │ └── ConsoleMenuContext.cs │ ├── Options │ │ ├── ConsoleOption.cs │ │ └── ConsoleSwitchOption.cs │ ├── Pipeline │ │ ├── ConfigurationConsoleSet.cs │ │ └── StartWithConsole.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── WriterBase.cs │ ├── Xigadee.Console.csproj │ ├── Xigadee.Console.nuspec │ ├── _docs │ │ └── Introduction.md │ ├── app.config │ └── packages.config ├── Xigadee.Core │ ├── BoundaryLogger │ │ ├── Interfaces │ │ │ └── IBoundaryLogger.cs │ │ └── MemoryBoundaryLogger.cs │ ├── Channel │ │ ├── Channel.cs │ │ └── ChannelDirection.cs │ ├── Collections │ │ └── CollectionContainer.cs │ ├── Collector │ │ └── MemoryCollector.cs │ ├── Command │ │ ├── Command.cs │ │ ├── CommandPolicy.cs │ │ ├── CommandTimerPoll.cs │ │ ├── Command_Channel.cs │ │ ├── Command_Dispatcher.cs │ │ ├── Command_MasterJob.cs │ │ ├── Command_OutgoingRequests.cs │ │ ├── Command_Statistics.cs │ │ ├── EventHandlers │ │ │ ├── CommandChange.cs │ │ │ └── MasterJobStateChange.cs │ │ ├── Exceptions │ │ │ ├── CommandStartupException.cs │ │ │ └── OutgoingRequestTransmitException.cs │ │ ├── Handler │ │ │ ├── CommandHandler.cs │ │ │ ├── CommandHandlerStatistics.cs │ │ │ ├── ICommandHandler.cs │ │ │ └── ICommandHandlerStatistics.cs │ │ ├── Helper │ │ │ ├── CommandHolder.cs │ │ │ ├── CommandPolicyHelper.cs │ │ │ └── CommandSchedule.cs │ │ ├── Interfaces │ │ │ ├── CommandNotificationBehaviour.cs │ │ │ └── ICommand.cs │ │ ├── MasterJob │ │ │ ├── MasterJobHolder.cs │ │ │ ├── MasterJobState.cs │ │ │ └── StandbyPartner.cs │ │ ├── RequestTracker │ │ │ ├── RequestTracker.cs │ │ │ └── RequestTrackerContainer.cs │ │ └── Statistics │ │ │ ├── CommandStatistics.cs │ │ │ └── MasterJobStatistics.cs │ ├── Communication │ │ ├── ClientHolder.cs │ │ ├── Exceptions │ │ │ └── TransmissionException.cs │ │ ├── Interfaces │ │ │ ├── IListener.cs │ │ │ ├── IMessaging.cs │ │ │ └── ISender.cs │ │ ├── MessagingListenerBase.cs │ │ ├── MessagingSenderBase.cs │ │ ├── MessagingServiceBase.cs │ │ ├── PartitionConfig │ │ │ ├── ListenerPartitionConfig.cs │ │ │ ├── PartitionConfig.cs │ │ │ └── SenderPartitionConfig.cs │ │ ├── Statistics │ │ │ └── MessagingServiceStatistics.cs │ │ └── TransmissionPayloadTrack.cs │ ├── Contract │ │ ├── CommandMethodAttribute.cs │ │ ├── ContractAttribute.cs │ │ └── IMessageContract.cs │ ├── Entities │ │ ├── MessageFilterWrapper.cs │ │ ├── Schedule.cs │ │ ├── ServiceMessage.cs │ │ ├── ServiceMessageHeader.cs │ │ └── TransmissionPayload.cs │ ├── EventSource │ │ ├── DocumentDbEventSource.cs │ │ ├── EventSourceEntry.cs │ │ ├── EventSourceEntryBase.cs │ │ ├── Interfaces │ │ │ ├── IEventSource.cs │ │ │ └── IEventSourceContainer.cs │ │ └── MemoryEventSource.cs │ ├── Exceptions │ │ ├── PayloadDeserializationException.cs │ │ ├── PayloadSerializationException.cs │ │ ├── PayloadTypeSerializationNotSupportedException.cs │ │ ├── RequiredSharedServiceMissingException.cs │ │ ├── ServiceAlreadyStartedException.cs │ │ ├── ServiceNotStartedException.cs │ │ └── StorageThrottlingException.cs │ ├── IStatisticsBase.cs │ ├── Interfaces │ │ ├── ICache.cs │ │ ├── IContainerService.cs │ │ ├── IDataCollection.cs │ │ ├── IRequireSharedServices.cs │ │ ├── ISchedule.cs │ │ ├── IService.cs │ │ ├── IServiceEventSource.cs │ │ ├── IServiceLogger.cs │ │ ├── IServiceOriginator.cs │ │ ├── ISupportedMessageTypes.cs │ │ ├── ISupportsMessage.cs │ │ └── ITelemetry.cs │ ├── Logging │ │ ├── DispatcherLoggerDirection.cs │ │ ├── DocumentDb │ │ │ └── DocumentDbLogger.cs │ │ ├── Interfaces │ │ │ ├── ILogStoreName.cs │ │ │ ├── ILogger.cs │ │ │ └── ILoggerExtended.cs │ │ ├── LogEvent.cs │ │ ├── LoggingLevel.cs │ │ ├── LoggingStatistics.cs │ │ ├── Memory │ │ │ ├── MemoryLogEventHolder.cs │ │ │ └── MemoryLogger.cs │ │ └── PayloadLogEvent.cs │ ├── Microservice │ │ ├── Configuration │ │ │ ├── ConfigBase.cs │ │ │ ├── ConfigBaseHelperDocumentDb.cs │ │ │ ├── ConfigBaseHelperService.cs │ │ │ ├── ConfigKeySettingNameAttribute.cs │ │ │ └── IEnvironmentConfiguration.cs │ │ ├── Events.cs │ │ ├── IMicroservice.cs │ │ ├── MicroserviceStatusChangeException.cs │ │ └── MicroserviceStatusEvent.cs │ ├── Orchestration │ │ ├── Commands │ │ │ ├── EntityChange │ │ │ │ └── EntityChangeOrchestrationCommandBase.cs │ │ │ ├── Input │ │ │ │ └── InputOrchestrationCommandBase.cs │ │ │ ├── Output │ │ │ │ └── OutputOrchestrationCommandBase.cs │ │ │ ├── Schedule │ │ │ │ └── ScheduleOrchestrationCommandBase.cs │ │ │ ├── Transform │ │ │ │ └── TransformOrchestrationCommandBase.cs │ │ │ └── Validate │ │ │ │ └── ValidateOrchestrationCommandBase.cs │ │ ├── Context │ │ │ ├── OrchestrationContext.cs │ │ │ └── OrchestrationContextState.cs │ │ ├── Flow │ │ │ ├── Components │ │ │ │ ├── EntityChange │ │ │ │ │ └── EntityChangeBase.cs │ │ │ │ ├── Input │ │ │ │ │ └── InputBase.cs │ │ │ │ ├── OrchestrationFlowComponentBase.cs │ │ │ │ ├── Output │ │ │ │ │ └── OutputBase.cs │ │ │ │ ├── Schedule │ │ │ │ │ └── ScheduleBase.cs │ │ │ │ ├── Transform │ │ │ │ │ └── TransformBase.cs │ │ │ │ └── Validate │ │ │ │ │ └── ValidationBase.cs │ │ │ ├── OrchestrationFlow.cs │ │ │ ├── OrchestrationFlowPath.cs │ │ │ └── OrchestrationFlowValidator.cs │ │ ├── OrchestrationCommandBase.cs │ │ ├── OrchestrationCommandPolicy.cs │ │ └── OrchestrationCommandStatistics.cs │ ├── Persistence │ │ ├── Cache │ │ │ ├── EntityCacheAsyncBase.cs │ │ │ ├── EntityCacheAsyncPolicy.cs │ │ │ ├── EntityCacheChangeEventArgs.cs │ │ │ ├── EntityCacheCollection.cs │ │ │ ├── EntityCacheHolder.cs │ │ │ ├── EntityCacheHolderState.cs │ │ │ ├── EntityCacheReferenceTypeValueKey.cs │ │ │ ├── EntityCacheResult.cs │ │ │ ├── EntityCacheStatistics.cs │ │ │ ├── EntityChangeReference.cs │ │ │ └── IEntityCacheAsync.cs │ │ ├── CacheManager │ │ │ ├── CacheManagerBase.cs │ │ │ ├── ICacheManager.cs │ │ │ └── NullCacheManager.cs │ │ ├── Client │ │ │ ├── Base │ │ │ │ ├── PersistenceInitiatorBase.cs │ │ │ │ ├── PersistenceInitiatorPolicy.cs │ │ │ │ └── PersistenceInitiatorStatistics.cs │ │ │ ├── PersistenceMessageInitiator.cs │ │ │ └── PersistenceSharedService.cs │ │ ├── EntityActions.cs │ │ ├── ExtensionMethods.cs │ │ ├── Interfaces │ │ │ ├── IPersistenceMessageHandler.cs │ │ │ ├── IPersistenceMessageInitiator.cs │ │ │ └── IPersistenceSharedService.cs │ │ ├── Logging │ │ │ └── PersistencePayloadLogEvent.cs │ │ ├── PersistenceResponse.cs │ │ ├── PersistenceResponseHolder.cs │ │ ├── Policy │ │ │ ├── CircuitBreakerPolicy.cs │ │ │ ├── PersistenceCommandPolicy.cs │ │ │ ├── PersistenceRetryPolicy.cs │ │ │ ├── ShardingPolicy.cs │ │ │ └── VersionPolicy.cs │ │ ├── ResponseHolder.cs │ │ └── Server │ │ │ ├── DocumentDb │ │ │ ├── DocumentDbPersistenceCommandPolicy.cs │ │ │ ├── Helper │ │ │ │ ├── Account.cs │ │ │ │ ├── Collection.cs │ │ │ │ ├── CollectionHolder.cs │ │ │ │ ├── CollectionSearch.cs │ │ │ │ ├── Database.cs │ │ │ │ ├── DocumentDbConnection.cs │ │ │ │ ├── Helper.cs │ │ │ │ ├── RestBase.cs │ │ │ │ └── SearchParameter.cs │ │ │ ├── PersistenceManagerHandlerDocumentDb.cs │ │ │ └── PersistenceManagerHandlerDocumentDbBase.cs │ │ │ ├── EntitySerializer.cs │ │ │ ├── EntityTransformHolder.cs │ │ │ ├── IPersistenceRequestHolder.cs │ │ │ ├── IPersistenceResponseHolder.cs │ │ │ ├── JSON │ │ │ ├── JsonHolder.cs │ │ │ ├── JsonResponseHolder.cs │ │ │ └── PersistenceManagerHandlerJsonBase.cs │ │ │ ├── Memory │ │ │ ├── BehaviourRequest.cs │ │ │ ├── PersistenceEntityContainer.cs │ │ │ └── PersistenceManagerHandlerMemory.cs │ │ │ ├── PersistenceCommandBase.cs │ │ │ ├── PersistenceHandler.cs │ │ │ ├── PersistenceRepositoryHolder.cs │ │ │ ├── PersistenceRequestHolder.cs │ │ │ ├── PersistenceStatistics.cs │ │ │ ├── ResponseHolderBase.cs │ │ │ └── SearchExpressionHelper.cs │ ├── Pipeline │ │ ├── ChannelPipelineBase.cs │ │ ├── Exceptions │ │ │ ├── ChannelIdMismatchException.cs │ │ │ ├── ChannelInternalOnlyException.cs │ │ │ ├── ChannelPartitionConfigBaseException.cs │ │ │ ├── ChannelPartitionConfigCastException.cs │ │ │ ├── ChannelPartitionConfigExistsException.cs │ │ │ └── SharedServiceRegistrationException.cs │ │ ├── Extensions │ │ │ ├── AddChannelIncoming.cs │ │ │ ├── AddChannelOutgoing.cs │ │ │ ├── AddCommand.cs │ │ │ ├── AddEventSource.cs │ │ │ ├── AddLogger.cs │ │ │ ├── AddPayloadSerializer.cs │ │ │ ├── AddSharedService.cs │ │ │ ├── AppendBoundaryLogger.cs │ │ │ ├── AppendResourceProfile.cs │ │ │ ├── AssignPriorityPartition.cs │ │ │ ├── AttachListener.cs │ │ │ ├── AttachSender.cs │ │ │ ├── CallOut.cs │ │ │ ├── Inspect.cs │ │ │ ├── Revert.cs │ │ │ ├── Security.cs │ │ │ ├── Start.cs │ │ │ └── To.cs │ │ └── MicroservicePipeline.cs │ ├── PolicyBase.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── ResourceTracker │ │ ├── CircuitBreakerBase.cs │ │ ├── CircuitBreakerState.cs │ │ ├── Interfaces │ │ │ ├── IResourceBase.cs │ │ │ ├── IResourceConsumer.cs │ │ │ ├── IResourceRequestRateLimiter.cs │ │ │ ├── IResourceTracker.cs │ │ │ ├── ResourceRequestResult.cs │ │ │ └── ResourceRetryReason.cs │ │ ├── ResourceBase.cs │ │ ├── ResourceConsumer.cs │ │ ├── ResourceProfile.cs │ │ ├── ResourceRateLimiter.cs │ │ ├── ResourceRequestTrack.cs │ │ ├── ResourceStatistics.cs │ │ └── ResourceStatsContainer.cs │ ├── Security │ │ ├── SecurityGatekeeperBase.cs │ │ └── SignatureHelper │ │ │ ├── Sha256SignatureHelper.cs │ │ │ ├── Sha512SignatureHelper.cs │ │ │ └── SignatureHelper.cs │ ├── Serializer │ │ ├── DefaultDataContractSerializer.cs │ │ ├── DefaultSerializerBase.cs │ │ ├── Interfaces │ │ │ ├── IPayloadSerialization.cs │ │ │ └── IPayloadSerializationContainer.cs │ │ ├── JsonContractSerializer.cs │ │ └── PayloadDelivery.cs │ ├── ServiceBase.cs │ ├── ServiceMessageHelper.cs │ ├── ServiceStatus.cs │ ├── Statistics │ │ ├── CollectionStatistics.cs │ │ ├── ICollectionStatistics.cs │ │ ├── MessagingStatistics.cs │ │ ├── StatsContainer.cs │ │ ├── StatsCounter.cs │ │ └── StatusBase.cs │ ├── StatisticsBase.cs │ ├── Xigadee.Core.csproj │ ├── Xigadee.Core.nuspec │ └── packages.config ├── Xigadee.Datapump.Sql │ ├── Boundary │ │ ├── Log.sql │ │ └── Poll.sql │ ├── Core │ │ ├── Batch.sql │ │ ├── Channel.sql │ │ ├── Helper │ │ │ └── Resolve_Batch.sql │ │ └── Service.sql │ ├── Datapump │ │ ├── Entity.sql │ │ ├── EntityType.sql │ │ ├── EventSource.sql │ │ ├── EventSourceData.sql │ │ ├── EventType.sql │ │ ├── Helper │ │ │ ├── Resolve_Entity.sql │ │ │ ├── Resolve_EntityType.sql │ │ │ ├── Resolve_EventType.sql │ │ │ └── Resolve_Instance.sql │ │ └── Instance.sql │ ├── Schemas.sql │ ├── Xigadee.Datapump.Sql.refactorlog │ └── Xigadee.Datapump.Sql.sqlproj ├── Xigadee.Framework │ ├── BoundaryLogger │ │ └── BoundaryLoggerSql.cs │ ├── Configuration │ │ └── ConfigResolver │ │ │ └── ConfigResolverAppSettings.cs │ ├── Helper │ │ └── CpuStats.cs │ ├── Logger │ │ └── FileStorageLoggingBase.cs │ ├── Persistence │ │ ├── ExtensionMethods.cs │ │ ├── FileSystem │ │ │ ├── PersistenceManagerHandlerFileSystem.cs │ │ │ └── TransactionalNTFS │ │ │ │ ├── TxFDirectory.cs │ │ │ │ ├── TxFException.cs │ │ │ │ ├── TxFFile.cs │ │ │ │ ├── TxFTransaction.cs │ │ │ │ └── WinApiHelper.cs │ │ └── SQL │ │ │ └── PersistenceManagerHandlerSqlBase.cs │ ├── Populator │ │ └── ConfigBaseHelperSql.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Xigadee.Framework.csproj │ ├── Xigadee.Framework.nuspec │ ├── _docs │ │ └── Introduction.md │ ├── app.config │ └── packages.config ├── Xigadee.Helper2 │ ├── Entities │ │ ├── History │ │ │ ├── HistoryBase.cs │ │ │ ├── HistoryRequest.cs │ │ │ └── HistoryResponse.cs │ │ ├── Search │ │ │ ├── SearchOData4Base.cs │ │ │ ├── SearchRequest.cs │ │ │ └── SearchResponse.cs │ │ └── ValueSwitch.cs │ ├── Helper │ │ ├── ArrayHelper │ │ │ ├── ArrayHelper.cs │ │ │ ├── ArrayHelper_Binary.cs │ │ │ ├── ArrayHelper_Contains.cs │ │ │ ├── ArrayHelper_FindFirstPosition.cs │ │ │ ├── ArrayHelper_MatchCollection.cs │ │ │ ├── ArrayHelper_MatchSequence.cs │ │ │ ├── ArrayHelper_Range.cs │ │ │ ├── ArrayHelper_SlidingWindow.cs │ │ │ ├── MatchCollection │ │ │ │ ├── MatchCollection.cs │ │ │ │ ├── MatchCollectionState.cs │ │ │ │ └── Terminators │ │ │ │ │ ├── MatchExceptionTerminator.cs │ │ │ │ │ ├── MatchSequenceSkipOrFailTerminator.cs │ │ │ │ │ ├── MatchSequenceTerminator.cs │ │ │ │ │ ├── MatchSkipTerminator.cs │ │ │ │ │ ├── MatchTerminator.cs │ │ │ │ │ ├── MatchTerminatorResult.cs │ │ │ │ │ └── MatchTerminatorStatus.cs │ │ │ └── MatchSequence │ │ │ │ └── MatchState.cs │ │ ├── AsyncWaitHandle.cs │ │ ├── Bit │ │ │ ├── BitHelper.cs │ │ │ └── BitMask.cs │ │ ├── Conversion.cs │ │ ├── Conversion_Delta.cs │ │ ├── Conversion_Xml.cs │ │ ├── LinqHelper.cs │ │ └── StringHelper.cs │ ├── IRepositoryAsync.cs │ ├── IRequestOptions.cs │ ├── IResponseHolder.cs │ ├── Placeholder.cs │ ├── RepositoryHolder.cs │ ├── RepositoryOptions.cs │ ├── RepositorySettings.cs │ ├── RequestSettings.cs │ ├── ResponseHolder.cs │ └── Xigadee.Helper2.csproj ├── Xigadee.Platform │ ├── Command │ │ ├── Command │ │ │ ├── Attributes │ │ │ │ ├── CommandContract │ │ │ │ │ ├── CommandContractAttribute.cs │ │ │ │ │ ├── CommandContractAttributeBase.cs │ │ │ │ │ ├── MasterJobCommandContractAttribute.cs │ │ │ │ │ ├── PayloadInAttribute.cs │ │ │ │ │ └── PayloadOutAttribute.cs │ │ │ │ ├── CommandMethodAttributeBase.cs │ │ │ │ ├── CommandMethodSignature.cs │ │ │ │ ├── CommandScheduleSignature.cs │ │ │ │ ├── CommandSignatureBase.cs │ │ │ │ ├── Helper │ │ │ │ │ ├── CommandMethodHelper.cs │ │ │ │ │ └── CommandMethodHolder.cs │ │ │ │ └── JobSchedule │ │ │ │ │ ├── JobScheduleAttribute.cs │ │ │ │ │ ├── JobScheduleAttributeBase.cs │ │ │ │ │ └── MasterJobScheduleAttribute.cs │ │ │ ├── Command.cs │ │ │ ├── Command_Channel.cs │ │ │ ├── Command_Job.cs │ │ │ ├── Command_MasterJob.cs │ │ │ ├── Command_OutgoingRequests.cs │ │ │ ├── Command_Registration.cs │ │ │ ├── Command_Request.cs │ │ │ ├── Command_Statistics.cs │ │ │ ├── Context │ │ │ │ ├── Base │ │ │ │ │ ├── CommandContextBase.cs │ │ │ │ │ └── CommandRequestContextBase.cs │ │ │ │ ├── CommandHarnessRequestContext.cs │ │ │ │ ├── CommandMethodRequestContext.cs │ │ │ │ ├── CommandMethodRequestContextExtensions.cs │ │ │ │ ├── CommandScheduleInlineContext.cs │ │ │ │ └── Interfaces │ │ │ │ │ ├── ICommandContext.cs │ │ │ │ │ └── ICommandRequestContext.cs │ │ │ ├── EventArgs │ │ │ │ ├── Base │ │ │ │ │ ├── CommandEventArgsBase.cs │ │ │ │ │ └── MasterJobEventArgsBase.cs │ │ │ │ ├── CommandChangeEventArgs.cs │ │ │ │ ├── MasterJobCommunicationEventArgs.cs │ │ │ │ ├── MasterJobStateChangeEventArgs.cs │ │ │ │ ├── MasterJobStatusChangeEventArgs.cs │ │ │ │ ├── OutgoingRequestEventArgs.cs │ │ │ │ ├── ProcessRequestEventArgs.cs │ │ │ │ └── ScheduleChangeEventArgs.cs │ │ │ ├── Exceptions │ │ │ │ ├── CommandChannelIdNullException.cs │ │ │ │ ├── CommandContractSignatureException.cs │ │ │ │ ├── CommandException.cs │ │ │ │ ├── CommandNotSupportedException.cs │ │ │ │ ├── CommandStartupException.cs │ │ │ │ ├── OutgoingRequestTransmitException.cs │ │ │ │ └── OutgoingRequestsNotEnabledException.cs │ │ │ ├── Handler │ │ │ │ ├── CommandHandler.cs │ │ │ │ ├── CommandHandlerStatistics.cs │ │ │ │ ├── HandlersCollection.cs │ │ │ │ ├── ICommandHandler.cs │ │ │ │ └── ICommandHandlerStatistics.cs │ │ │ ├── Harness │ │ │ │ ├── CommandHarness.cs │ │ │ │ ├── CommandHarnessDependencies.cs │ │ │ │ ├── CommandHarnessDispatchWrapper.cs │ │ │ │ ├── CommandHarnessEventArgs.cs │ │ │ │ ├── CommandHarnessTraffic.cs │ │ │ │ ├── CommandHarnessTrafficDirection.cs │ │ │ │ ├── CommandHarness_MasterJob.cs │ │ │ │ ├── CommandHarness_Outgoing.cs │ │ │ │ ├── Exceptions │ │ │ │ │ ├── CommandHarnessException.cs │ │ │ │ │ └── CommandHarnessInvalidConstructorException.cs │ │ │ │ ├── Helper │ │ │ │ │ ├── DefaultCreator.cs │ │ │ │ │ ├── Intercept.cs │ │ │ │ │ └── MasterJob.cs │ │ │ │ └── Interface │ │ │ │ │ ├── ICommandHarness.cs │ │ │ │ │ └── ICommandHarnessDispatch.cs │ │ │ ├── Helper │ │ │ │ ├── CommandNotificationBehaviour.cs │ │ │ │ └── MasterJobCommunicationDirection.cs │ │ │ ├── Interfaces │ │ │ │ └── ICommandOutgoing.cs │ │ │ ├── MasterJob │ │ │ │ ├── MasterJobContext.cs │ │ │ │ ├── MasterJobPartner.cs │ │ │ │ ├── MasterJobState.cs │ │ │ │ └── Strategy │ │ │ │ │ ├── MasterJobNegotiationStrategy.cs │ │ │ │ │ └── MasterJobNegotiationStrategyBase.cs │ │ │ ├── Pipeline │ │ │ │ ├── AddCommand.cs │ │ │ │ ├── AssignMasterJob.cs │ │ │ │ └── AttachCommand.cs │ │ │ ├── Policy │ │ │ │ ├── CommandPolicy.cs │ │ │ │ └── ProcessRequestExceptionBehaviour.cs │ │ │ ├── RequestTracker │ │ │ │ ├── RequestTracker.cs │ │ │ │ └── RequestTrackerContainer.cs │ │ │ ├── Schedules │ │ │ │ ├── CommandJobSchedule.cs │ │ │ │ ├── CommandTimeoutSchedule.cs │ │ │ │ └── MasterJobNegotiationPollSchedule.cs │ │ │ └── Statistics │ │ │ │ ├── CommandStatistics.cs │ │ │ │ └── MasterJobStatistics.cs │ │ ├── CommandContainer │ │ │ ├── CommandContainer.cs │ │ │ ├── CommandContainerStatistics.cs │ │ │ ├── Pipeline │ │ │ │ ├── Add │ │ │ │ │ └── AddSharedService.cs │ │ │ │ └── Exceptions │ │ │ │ │ └── SharedServiceRegistrationException.cs │ │ │ └── SharedService │ │ │ │ ├── ServiceHolder.cs │ │ │ │ ├── ServiceHolderStatistics.cs │ │ │ │ ├── SharedServiceContainer.cs │ │ │ │ └── SharedServiceStatistics.cs │ │ ├── CommandInitiator │ │ │ ├── CommandInitiator.cs │ │ │ ├── CommandInitiatorPolicy.cs │ │ │ ├── CommandInitiatorStatistics.cs │ │ │ ├── ICommandInitiator.cs │ │ │ ├── Pipeline │ │ │ │ ├── AddCommandInitiator.cs │ │ │ │ └── AttachCommandInitiator.cs │ │ │ └── ResponseWrapper.cs │ │ ├── CommandInline │ │ │ ├── CommandMethod │ │ │ │ └── CommandMethodInline.cs │ │ │ ├── CommandSchedule │ │ │ │ └── CommandScheduleInline.cs │ │ │ ├── Exceptions │ │ │ │ └── ContractException.cs │ │ │ └── Pipeline │ │ │ │ ├── AddAttachCommand.cs │ │ │ │ └── AddAttachSchedule.cs │ │ ├── CommandPersistence │ │ │ ├── Cache │ │ │ │ ├── EntityCacheAsyncBase.cs │ │ │ │ ├── EntityCacheAsyncPolicy.cs │ │ │ │ ├── EntityCacheChangeEventArgs.cs │ │ │ │ ├── EntityCacheCollection.cs │ │ │ │ ├── EntityCacheHolder.cs │ │ │ │ ├── EntityCacheHolderState.cs │ │ │ │ ├── EntityCacheReferenceTypeValueKey.cs │ │ │ │ ├── EntityCacheResult.cs │ │ │ │ ├── EntityCacheStatistics.cs │ │ │ │ ├── EntityChangeReference.cs │ │ │ │ └── IEntityCacheAsync.cs │ │ │ ├── CacheManager │ │ │ │ ├── CacheManagerBase.cs │ │ │ │ ├── ICacheManager.cs │ │ │ │ └── NullCacheManager.cs │ │ │ ├── Client │ │ │ │ ├── PersistenceClient.cs │ │ │ │ ├── PersistenceClientBase.cs │ │ │ │ ├── PersistenceClientPolicy.cs │ │ │ │ ├── PersistenceClientStatistics.cs │ │ │ │ ├── PersistenceInternalClient.cs │ │ │ │ └── PersistenceInternalClientPolicy.cs │ │ │ ├── EntityActions.cs │ │ │ ├── Events │ │ │ │ ├── EntityChangeEventArgs.cs │ │ │ │ └── PersistenceResponse.cs │ │ │ ├── Harness │ │ │ │ └── CommandPersistenceHarnessHelper.cs │ │ │ ├── Logging │ │ │ │ └── PersistencePayloadLogEvent.cs │ │ │ ├── Notification │ │ │ │ ├── EntityChangeNotificationCommand.cs │ │ │ │ ├── EntityChangeNotificationPolicy.cs │ │ │ │ └── EntityChangeNotificationStatistics.cs │ │ │ ├── PersistenceResponseHolder.cs │ │ │ ├── Pipeline │ │ │ │ └── Attach │ │ │ │ │ ├── AttachPersistenceClient.cs │ │ │ │ │ └── AttachPersistenceInternalService.cs │ │ │ ├── Policy │ │ │ │ ├── CircuitBreakerPolicy.cs │ │ │ │ ├── PersistenceCommandPolicy.cs │ │ │ │ ├── PersistenceRetryPolicy.cs │ │ │ │ ├── ShardingPolicy.cs │ │ │ │ └── VersionPolicy.cs │ │ │ └── Server │ │ │ │ ├── EntityContainer │ │ │ │ ├── EntityContainerBase.cs │ │ │ │ ├── IPersistenceEntityContainer.cs │ │ │ │ └── PersistenceManagerHandlerEntityContainerBase.cs │ │ │ │ ├── FileSystem │ │ │ │ ├── EntityContainer │ │ │ │ │ ├── EntityContainerFileSystem.cs │ │ │ │ │ ├── EntityContainerFileSystemReadOnlyCollection.cs │ │ │ │ │ └── EntityContainerFolderStructure.cs │ │ │ │ ├── PersistenceManagerHandlerFileSystem.cs │ │ │ │ └── Pipeline │ │ │ │ │ ├── AddPersistenceManagerFileSystem.cs │ │ │ │ │ └── AttachPersistenceManagerFileSystem.cs │ │ │ │ ├── Helper │ │ │ │ ├── EntitySerializer.cs │ │ │ │ ├── EntityTransformHolder.cs │ │ │ │ ├── PersistenceHandler.cs │ │ │ │ └── SearchExpressionHelper.cs │ │ │ │ ├── Json │ │ │ │ ├── JsonHolder.cs │ │ │ │ └── PersistenceManagerHandlerJsonBase.cs │ │ │ │ ├── Memory │ │ │ │ ├── EntityContainerMemory.cs │ │ │ │ ├── PersistenceManagerHandlerMemory.cs │ │ │ │ └── Pipeline │ │ │ │ │ ├── AddPersistenceManagerMemory.cs │ │ │ │ │ └── AttachPersistenceManagerMemory.cs │ │ │ │ ├── PersistenceCommandBase.cs │ │ │ │ ├── PersistenceRepositoryHolder.cs │ │ │ │ ├── PersistenceRequestHolder.cs │ │ │ │ └── PersistenceStatistics.cs │ │ └── _docs │ │ │ ├── Command.md │ │ │ ├── CommandHarness.md │ │ │ └── CommandPersistence.md │ ├── Communication │ │ ├── Agent │ │ │ ├── CommunicationAgentBase.cs │ │ │ ├── CommunicationAgentBase_Listener.cs │ │ │ ├── CommunicationAgentBase_Sender.cs │ │ │ ├── CommunicationAgentCapabilities.cs │ │ │ ├── CommunicationAgentHarness.cs │ │ │ ├── CommunicationAgentStatistics.cs │ │ │ ├── Manual │ │ │ │ └── ManualCommunicationAgent.cs │ │ │ └── Udp │ │ │ │ ├── Interfaces │ │ │ │ └── UdpTransmissionMode.cs │ │ │ │ ├── Pipeline │ │ │ │ └── AttachUdp.cs │ │ │ │ ├── UdpClientHolder.cs │ │ │ │ ├── UdpCommunicationAgent.cs │ │ │ │ ├── UdpConfig.cs │ │ │ │ └── UdpHelper.cs │ │ ├── Base │ │ │ ├── FabricBase.cs │ │ │ ├── MessagingHarness.cs │ │ │ ├── MessagingHelper.cs │ │ │ ├── MessagingServiceBase.cs │ │ │ └── MessagingServiceStatistics.cs │ │ ├── Client │ │ │ ├── ClientHolder │ │ │ │ ├── ClientHolder.cs │ │ │ │ └── ClientHolder_Generic.cs │ │ │ └── ClientPriority │ │ │ │ ├── Algorithms │ │ │ │ ├── ListenerClientPollAlgorithmBase.cs │ │ │ │ ├── MultipleClientPollSlotAllocationAlgorithm.cs │ │ │ │ └── SingleClientPollSlotAllocationAlgorithm.cs │ │ │ │ ├── ClientPriorityCollection.cs │ │ │ │ ├── ClientPriorityCollectionStatistics.cs │ │ │ │ └── Holder │ │ │ │ ├── ClientPriorityHolder.cs │ │ │ │ ├── ClientPriorityHolderMetrics.cs │ │ │ │ ├── ClientPriorityHolderMetricsStatistics.cs │ │ │ │ └── ClientPriorityHolderStatistics.cs │ │ ├── CommunicationContainer.cs │ │ ├── CommunicationContainer_Channel.cs │ │ ├── CommunicationContainer_Listener.cs │ │ ├── CommunicationContainer_Security.cs │ │ ├── CommunicationContainer_Sender.cs │ │ ├── Exceptions │ │ │ ├── BridgeAgentModeNotSetException.cs │ │ │ ├── ClientsUndefinedMessagingException.cs │ │ │ └── CommunicationAgentStartupException.cs │ │ ├── FabricBridge │ │ │ ├── CommunicationBridgeAgent.cs │ │ │ ├── CommunicationBridgeAgentEventArgs.cs │ │ │ ├── CommunicationBridgeHelper.cs │ │ │ ├── CommunicationBridgeMode.cs │ │ │ ├── CommunicationBridgeRetryPolicy.cs │ │ │ ├── Fabric │ │ │ │ ├── FabricConnectionBase.cs │ │ │ │ ├── FabricMessage.cs │ │ │ │ └── FabricMessageHelper.cs │ │ │ ├── ICommunicationBridgeAgent.cs │ │ │ ├── Manual │ │ │ │ ├── Bridge │ │ │ │ │ └── ManualCommunicationBridgeAgent.cs │ │ │ │ ├── Fabric │ │ │ │ │ ├── ManualFabricBridge.cs │ │ │ │ │ ├── ManualFabricChannel.cs │ │ │ │ │ ├── ManualFabricConnection.cs │ │ │ │ │ └── ManualFabricConnectionMode.cs │ │ │ │ ├── ManualChannelClientHolder.cs │ │ │ │ ├── ManualChannelListener.cs │ │ │ │ ├── ManualChannelSender.cs │ │ │ │ └── Pipeline │ │ │ │ │ ├── AttachManualListener.cs │ │ │ │ │ └── AttachManualSender.cs │ │ │ ├── TcpTlsChannel │ │ │ │ ├── Agent │ │ │ │ │ └── TcpCommunicationBridgeAgent.cs │ │ │ │ ├── Communication │ │ │ │ │ ├── TcpTlsBase.cs │ │ │ │ │ ├── TcpTlsClient.cs │ │ │ │ │ ├── TcpTlsConnection.cs │ │ │ │ │ └── TcpTlsServer.cs │ │ │ │ ├── Configuration │ │ │ │ │ └── TcpTlsConfigurationHelper.cs │ │ │ │ ├── Connector │ │ │ │ │ ├── TcpTlsClientConnector.cs │ │ │ │ │ ├── TcpTlsConnectorBase.cs │ │ │ │ │ └── TcpTlsServerConnector.cs │ │ │ │ ├── Exception │ │ │ │ │ └── TcpTlsChannelConfigurationException.cs │ │ │ │ ├── Harness │ │ │ │ │ ├── TcpTlsChannelListenerHarness.cs │ │ │ │ │ └── TcpTlsChannelSenderHarness.cs │ │ │ │ ├── Helper │ │ │ │ │ ├── DirectChannelCommunicator.cs │ │ │ │ │ └── MakeCert.txt │ │ │ │ ├── Messaging │ │ │ │ │ ├── Exceptions │ │ │ │ │ │ ├── MaxSizeMessageException.cs │ │ │ │ │ │ ├── MessageException.cs │ │ │ │ │ │ └── MessageLoadException.cs │ │ │ │ │ ├── Extensions │ │ │ │ │ │ └── MessagingProtocolExtensions.cs │ │ │ │ │ ├── Fragments │ │ │ │ │ │ ├── BodyFragment.cs │ │ │ │ │ │ ├── InstructionFragmentBase.cs │ │ │ │ │ │ ├── InternetMessageFragmentBody.cs │ │ │ │ │ │ ├── RequestHeaderFragment.cs │ │ │ │ │ │ └── ResponseHeaderFragment.cs │ │ │ │ │ ├── Header │ │ │ │ │ │ ├── HeaderBodyMessage.cs │ │ │ │ │ │ ├── HeaderFragment.cs │ │ │ │ │ │ └── HeaderFragmentMultiPart.cs │ │ │ │ │ ├── Interfaces │ │ │ │ │ │ ├── IMessage.cs │ │ │ │ │ │ ├── IMessageHeaderFragment.cs │ │ │ │ │ │ ├── IMessageLoad.cs │ │ │ │ │ │ ├── IMessageLoadData.cs │ │ │ │ │ │ ├── IMessageLoadInitialize.cs │ │ │ │ │ │ ├── IMessageStream.cs │ │ │ │ │ │ ├── IMessageStreamLoad.cs │ │ │ │ │ │ ├── IMessageTermination.cs │ │ │ │ │ │ └── IMimeMessageInitialize.cs │ │ │ │ │ ├── InternetMessage │ │ │ │ │ │ ├── ContentType.cs │ │ │ │ │ │ ├── Http │ │ │ │ │ │ │ ├── Fragments │ │ │ │ │ │ │ │ ├── HTMLBodyFragment.cs │ │ │ │ │ │ │ │ ├── HTTPRequestHeaderFragment.cs │ │ │ │ │ │ │ │ ├── HTTPResponseHeaderFragment.cs │ │ │ │ │ │ │ │ └── WWWFormUrlEncodedBodyFragment.cs │ │ │ │ │ │ │ ├── HTTPRequestMessage.cs │ │ │ │ │ │ │ └── HTTPResponseMessage.cs │ │ │ │ │ │ ├── InternetMessage.cs │ │ │ │ │ │ ├── InternetMessageRequest.cs │ │ │ │ │ │ ├── InternetMessageResponse.cs │ │ │ │ │ │ └── Mime │ │ │ │ │ │ │ ├── Fragments │ │ │ │ │ │ │ ├── MimeHeaderFragment.cs │ │ │ │ │ │ │ ├── MimeMessageFragment.cs │ │ │ │ │ │ │ ├── MimeMessageFragmentBody.cs │ │ │ │ │ │ │ ├── PreambleMimeMessageFragment.cs │ │ │ │ │ │ │ └── Termination │ │ │ │ │ │ │ │ ├── MimeMatchCollectionState.cs │ │ │ │ │ │ │ │ └── MimeMessageTerminator.cs │ │ │ │ │ │ │ ├── MimeMessage.cs │ │ │ │ │ │ │ ├── MimeMessageBody.cs │ │ │ │ │ │ │ ├── MultipartFormDataMessageBody.cs │ │ │ │ │ │ │ └── MultipartMixedMimeMessageBody.cs │ │ │ │ │ ├── Message.cs │ │ │ │ │ ├── MessageBase.cs │ │ │ │ │ ├── MessageCRLFFragment.cs │ │ │ │ │ ├── MessageDirection.cs │ │ │ │ │ ├── MessageFragment.cs │ │ │ │ │ ├── MessageHelper.cs │ │ │ │ │ ├── MessageStreamBase.cs │ │ │ │ │ └── Termination │ │ │ │ │ │ ├── CRLFMatchCollectionState.cs │ │ │ │ │ │ ├── FragmentTerminationType.cs │ │ │ │ │ │ ├── MessageGenericTerminatorBase.cs │ │ │ │ │ │ ├── MessageTerminatorBase.cs │ │ │ │ │ │ ├── MessageTerminatorCRLFFolding.cs │ │ │ │ │ │ └── MessageTerminatorCRLFNoFolding.cs │ │ │ │ ├── Pipeline │ │ │ │ │ ├── AttachTcpTlsBroadcastListener.cs │ │ │ │ │ ├── AttachTcpTlsBroadcastSender.cs │ │ │ │ │ ├── AttachTcpTlsListener.cs │ │ │ │ │ ├── AttachTcpTlsSender.cs │ │ │ │ │ └── ConfigureTcpTlsMessagingHelper.cs │ │ │ │ ├── TcpTlsChannelListener.cs │ │ │ │ ├── TcpTlsChannelSender.cs │ │ │ │ └── TcpTlsClientHolder.cs │ │ │ └── UdpChannel │ │ │ │ ├── UdpChannelListener.cs │ │ │ │ └── UdpChannelSender.cs │ │ ├── Interfaces │ │ │ ├── IClientPriorityHolderMetrics.cs │ │ │ ├── IListenerClientPollAlgorithm.cs │ │ │ └── IMessagingService.cs │ │ ├── Listener │ │ │ ├── ListenerHarness.cs │ │ │ ├── ListenerPartitionConfig.cs │ │ │ └── MessagingListenerBase.cs │ │ ├── Pipeline │ │ │ ├── Ability.cs │ │ │ ├── Add │ │ │ │ ├── AddChannelBroadcast.cs │ │ │ │ ├── AddChannelIncoming.cs │ │ │ │ ├── AddChannelOutgoing.cs │ │ │ │ ├── AddListener.cs │ │ │ │ └── AddSender.cs │ │ │ ├── Adjust │ │ │ │ └── AdjustCommunicationPolicy.cs │ │ │ ├── Attach │ │ │ │ ├── AttachListener.cs │ │ │ │ ├── AttachMessagePriorityOverride.cs │ │ │ │ ├── AttachMessageRedirectRule.cs │ │ │ │ ├── AttachPriorityPartition.cs │ │ │ │ ├── AttachResourceProfile.cs │ │ │ │ ├── AttachSender.cs │ │ │ │ └── ChannelResolve.cs │ │ │ ├── ChannelPipelineBase.cs │ │ │ ├── ChannelPipelineBroadcast.cs │ │ │ ├── ChannelPipelineIncoming.cs │ │ │ ├── ChannelPipelineOutgoing.cs │ │ │ ├── ConfigureMessaging.cs │ │ │ ├── Exceptions │ │ │ │ ├── ChannelDoesNotExistException.cs │ │ │ │ ├── ChannelIdMismatchException.cs │ │ │ │ ├── ChannelInternalOnlyException.cs │ │ │ │ ├── ChannelPartitionConfigBaseException.cs │ │ │ │ ├── ChannelPartitionConfigCastException.cs │ │ │ │ ├── ChannelPartitionConfigExistsException.cs │ │ │ │ └── ChannelPartitionConfigNotSetException.cs │ │ │ ├── FabricConfigure.cs │ │ │ └── Inspect.cs │ │ ├── Sender │ │ │ ├── MessagingSenderBase.cs │ │ │ ├── SenderHarness.cs │ │ │ └── SenderPartitionConfig.cs │ │ ├── TransmissionPayloadTaskTrackerHelper.cs │ │ └── _docs │ │ │ └── Communication.md │ ├── Components │ │ ├── CollectionContainer.cs │ │ ├── Harness │ │ │ ├── ServiceHarness.cs │ │ │ ├── ServiceHarnessDataCollection.cs │ │ │ ├── ServiceHarnessDependencies.cs │ │ │ ├── ServiceHarnessHelper.cs │ │ │ ├── ServiceHarnessResourceContainer.cs │ │ │ ├── ServiceHarnessScheduler.cs │ │ │ ├── ServiceHarnessSerializationContainer.cs │ │ │ └── ServiceHarnessSharedService.cs │ │ ├── PolicyBase.cs │ │ ├── ServiceBase.cs │ │ ├── ServiceContainerBase.cs │ │ └── Statistics │ │ │ └── CollectionStatistics.cs │ ├── Configuration │ │ ├── Attributes │ │ │ └── ConfigKeySettingNameAttribute.cs │ │ ├── ConfigBase.cs │ │ ├── Exceptions │ │ │ └── ConfigResolverKeyNotFoundException.cs │ │ ├── Pipeline │ │ │ ├── ConfigAssertKeyExists.cs │ │ │ ├── ConfigBaseHelperService.cs │ │ │ ├── ConfigResolverSet.cs │ │ │ ├── ConfigResolversClear.cs │ │ │ ├── ConfigurationClear.cs │ │ │ ├── ConfigurationOverrideSet.cs │ │ │ └── Exceptions │ │ │ │ └── ConfigAssertKeyNotPresentException.cs │ │ └── _docs │ │ │ └── Configuration.md │ ├── DataCollection │ │ ├── ActionQueue │ │ │ ├── ActionQueueCollectionBase.cs │ │ │ ├── ActionQueuePolicy.cs │ │ │ └── ActionQueueStatistics.cs │ │ ├── Binary │ │ │ ├── BinaryContainer.cs │ │ │ └── BinaryContainerHelper.cs │ │ ├── DataCollectionContainer.cs │ │ ├── DataCollectionContainer_EventSource.cs │ │ ├── DataCollectionContainer_Queue.cs │ │ ├── DataCollector │ │ │ ├── DataCollectorBase.cs │ │ │ ├── DataCollectorPolicy.cs │ │ │ ├── DataCollectorStatistics.cs │ │ │ └── DebugMemoryDataCollector.cs │ │ ├── EventSource │ │ │ ├── Entry │ │ │ │ ├── EventSourceEntry.cs │ │ │ │ └── EventSourceEntryBase.cs │ │ │ └── EventSourceActionHolder.cs │ │ ├── Events │ │ │ ├── Base │ │ │ │ └── EventHolder.cs │ │ │ ├── BoundaryEvent.cs │ │ │ ├── DispatcherEvent.cs │ │ │ ├── EventSourceEvent.cs │ │ │ ├── LogEvent.cs │ │ │ ├── PayloadLogEvent.cs │ │ │ ├── ResourceEvent.cs │ │ │ ├── SecurityEvent.cs │ │ │ └── TelemetryEvent.cs │ │ ├── ExtensionMethods │ │ │ ├── Boundary.cs │ │ │ ├── Dispatcher.cs │ │ │ ├── EventSource.cs │ │ │ ├── Logger.cs │ │ │ ├── OnDataCollection.cs │ │ │ ├── Security.cs │ │ │ ├── Telemetry.cs │ │ │ └── Write.cs │ │ ├── Interfaces │ │ │ ├── BoundaryEventType.cs │ │ │ ├── DispatcherLoggerDirection.cs │ │ │ ├── IDataCollectorComponent.cs │ │ │ ├── IEventSource.cs │ │ │ ├── ILogStoreName.cs │ │ │ ├── ILogger.cs │ │ │ └── LoggingLevel.cs │ │ ├── Logger │ │ │ ├── Implementations │ │ │ │ ├── Action │ │ │ │ │ └── LoggerActionHolder.cs │ │ │ │ ├── Memory │ │ │ │ │ ├── MemoryLogEventHolder.cs │ │ │ │ │ └── MemoryLogger.cs │ │ │ │ └── Trace │ │ │ │ │ └── TraceEventLogger.cs │ │ │ └── LoggingStatistics.cs │ │ ├── Pipeline │ │ │ └── Add │ │ │ │ ├── AddDataCollector.cs │ │ │ │ └── AddDebugMemoryDataCollector.cs │ │ ├── Telemetry │ │ │ ├── TelemetryContainer.cs │ │ │ └── TelemetryCounterHolder.cs │ │ └── _docs │ │ │ └── DataCollection.md │ ├── Exceptions │ │ ├── ChannelNotEnabledException.cs │ │ ├── ChannelNotFoundException.cs │ │ ├── ChannelTypeNotSupportedException.cs │ │ ├── DuplicateChannelException.cs │ │ ├── EventSourceLogException.cs │ │ ├── MessageHandlerNotResolvedException.cs │ │ ├── MicroserviceStatusChangeException.cs │ │ ├── PayloadDeserializationException.cs │ │ ├── PayloadSerializationException.cs │ │ ├── PayloadTypeSerializationNotSupportedException.cs │ │ ├── RequiredSharedServiceMissingException.cs │ │ ├── SenderNotResolvedException.cs │ │ ├── ServiceAlreadyStartedException.cs │ │ ├── ServiceNotStartedException.cs │ │ ├── StorageThrottlingException.cs │ │ ├── TransitCountExceededException.cs │ │ ├── TransmissionException.cs │ │ ├── TransmissionPayloadException.cs │ │ └── TransmitRetryExceededException.cs │ ├── Interfaces │ │ ├── Communication │ │ │ ├── IListener.cs │ │ │ ├── IMessaging.cs │ │ │ └── ISender.cs │ │ ├── IActionQueue.cs │ │ ├── ICache.cs │ │ ├── ICommand.cs │ │ ├── IEnvironmentConfiguration.cs │ │ ├── ISupportedMessageTypes.cs │ │ ├── Microservice │ │ │ ├── IMicroservice.cs │ │ │ ├── IMicroserviceCommand.cs │ │ │ ├── IMicroserviceCommunication.cs │ │ │ ├── IMicroserviceDataCollection.cs │ │ │ ├── IMicroserviceDispatch.cs │ │ │ ├── IMicroserviceEvents.cs │ │ │ ├── IMicroservicePolicy.cs │ │ │ ├── IMicroserviceResourceMonitoring.cs │ │ │ ├── IMicroserviceSecurity.cs │ │ │ ├── IMicroserviceSerialization.cs │ │ │ └── IMicroserviceServiceHandlers.cs │ │ └── Persistence │ │ │ ├── IPersistenceMessageHandler.cs │ │ │ ├── IPersistenceMessageInitiator.cs │ │ │ ├── IPersistenceRequestHolder.cs │ │ │ └── IPersistenceSharedService.cs │ ├── Microservice │ │ ├── Events │ │ │ ├── MicroserviceEventArgs.cs │ │ │ ├── MicroserviceStatusEventArgs.cs │ │ │ ├── ProcessRequestErrorEventArgs.cs │ │ │ ├── ProcessRequestUnresolvedEventArgs.cs │ │ │ ├── StartEventArgs.cs │ │ │ ├── StatisticsEventArgs.cs │ │ │ └── StopEventArgs.cs │ │ ├── Helper │ │ │ ├── DispatcherUnhandledAction.cs │ │ │ └── ICpuStats.cs │ │ ├── Microservice.cs │ │ ├── Microservice_Dispatcher.cs │ │ ├── Microservice_Initialization.cs │ │ ├── Microservice_Policy.cs │ │ ├── Microservice_Statistics.cs │ │ ├── Wrapper │ │ │ ├── CommandWrapper.cs │ │ │ ├── CommunicationWrapper.cs │ │ │ ├── DataCollectionWrapper.cs │ │ │ ├── DispatchWrapper.cs │ │ │ ├── DispatchWrapperHelper.cs │ │ │ ├── EventsWrapper.cs │ │ │ ├── PolicyWrapper.cs │ │ │ ├── ResourceWrapper.cs │ │ │ ├── SecurityWrapper.cs │ │ │ ├── SerializationWrapper.cs │ │ │ ├── ServiceHandlerWrapper.cs │ │ │ └── WrapperBase.cs │ │ └── _docs │ │ │ └── Microservice.md │ ├── Orchestration │ │ ├── Commands │ │ │ ├── EntityChange │ │ │ │ └── EntityChangeOrchestrationCommandBase.cs │ │ │ ├── Input │ │ │ │ └── InputOrchestrationCommandBase.cs │ │ │ ├── Output │ │ │ │ └── OutputOrchestrationCommandBase.cs │ │ │ ├── Schedule │ │ │ │ └── ScheduleOrchestrationCommandBase.cs │ │ │ ├── Transform │ │ │ │ └── TransformOrchestrationCommandBase.cs │ │ │ └── Validate │ │ │ │ └── ValidateOrchestrationCommandBase.cs │ │ ├── Context │ │ │ ├── OrchestrationContext.cs │ │ │ └── OrchestrationContextState.cs │ │ ├── Flow │ │ │ ├── Components │ │ │ │ ├── EntityChangeBase.cs │ │ │ │ ├── InputBase.cs │ │ │ │ ├── OutputBase.cs │ │ │ │ ├── ScheduleBase.cs │ │ │ │ ├── TransformBase.cs │ │ │ │ └── ValidationBase.cs │ │ │ ├── OrchestrationFlow.cs │ │ │ ├── OrchestrationFlowComponentBase.cs │ │ │ ├── OrchestrationFlowPath.cs │ │ │ ├── OrchestrationFlowValidator.cs │ │ │ └── ValueSwitch.cs │ │ ├── OrchestrationCommandBase.cs │ │ ├── OrchestrationCommandPolicy.cs │ │ └── OrchestrationCommandStatistics.cs │ ├── Pipeline │ │ ├── Exceptions │ │ │ └── ConfigurationMissingSettingException.cs │ │ ├── Extensions │ │ │ ├── Ability.cs │ │ │ ├── Adjust │ │ │ │ ├── AdjustPolicy.cs │ │ │ │ ├── AdjustPolicyHelper.cs │ │ │ │ └── AdjustPolicyTaskManager.cs │ │ │ ├── CallOut.cs │ │ │ ├── Condition.cs │ │ │ ├── Inspect.cs │ │ │ ├── Revert.cs │ │ │ ├── Start.cs │ │ │ ├── Stop.cs │ │ │ ├── To.cs │ │ │ └── ToPipeline.cs │ │ ├── Interfaces │ │ │ ├── IPipeline.cs │ │ │ ├── IPipelineBase.cs │ │ │ ├── IPipelineChannel.cs │ │ │ ├── IPipelineExtension.cs │ │ │ └── IPipelineSecurity.cs │ │ ├── MicroservicePipeline.cs │ │ ├── MicroservicePipelineExtension.cs │ │ ├── SecurityPipeline │ │ │ ├── Actual.cs │ │ │ ├── Add │ │ │ │ └── AddAuthorizationHandler.cs │ │ │ ├── Inspect.cs │ │ │ └── SecurityPipelineExtension.cs │ │ └── _docs │ │ │ └── UsingThePipeline.md │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── ResourceTracker │ │ ├── Entities │ │ │ ├── ResourceRequestTrack.cs │ │ │ ├── ResourceStatistics.cs │ │ │ ├── ResourceStatisticsEventType.cs │ │ │ └── ResourceStatus.cs │ │ ├── Enums │ │ │ ├── CircuitBreakerState.cs │ │ │ ├── ResourceRequestResult.cs │ │ │ └── ResourceRetryReason.cs │ │ ├── Interfaces │ │ │ ├── IResourceConsumer.cs │ │ │ ├── IResourceMetric.cs │ │ │ ├── IResourceRequestRateLimiter.cs │ │ │ └── IResourceTracker.cs │ │ ├── ResourceContainer │ │ │ ├── Entities │ │ │ │ ├── ResourceCollection.cs │ │ │ │ ├── ResourceConsumer.cs │ │ │ │ └── ResourceRateLimiter.cs │ │ │ └── ResourceContainer.cs │ │ ├── ResourceSync │ │ │ ├── Receive │ │ │ │ ├── ResourceSyncReceiveCommand.cs │ │ │ │ ├── ResourceSyncReceiveCommandPolicy.cs │ │ │ │ └── ResourceSyncReceiveCommandStatistics.cs │ │ │ ├── ResourceSyncBaseCommand.cs │ │ │ └── Transmit │ │ │ │ ├── ResourceSyncTransmitCommand.cs │ │ │ │ ├── ResourceSyncTransmitCommandPolicy.cs │ │ │ │ └── ResourceSyncTransmitCommandStatistics.cs │ │ └── _docs │ │ │ └── Introduction.md │ ├── Scheduler │ │ ├── ScheduleHelper.cs │ │ ├── SchedulerContainer.cs │ │ └── _docs │ │ │ └── Scheduler.md │ ├── ServiceHandler │ │ ├── Configuration │ │ │ ├── AesTransportEncryption.cs │ │ │ └── Encryption.cs │ │ ├── Exceptions │ │ │ ├── AuthenticationHandler │ │ │ │ ├── AuthenticationHandlerAlreadyExistsException.cs │ │ │ │ ├── AuthenticationHandlerInvalidSecretException.cs │ │ │ │ └── AuthenticationHandlerNotResolvedException.cs │ │ │ ├── Channel │ │ │ │ ├── ChannelAuthenticationHandlerAlreadySetException.cs │ │ │ │ ├── ChannelAuthenticationHandlerNotResolvedException.cs │ │ │ │ ├── ChannelEncryptionHandlerAlreadySetException.cs │ │ │ │ └── ChannelEncryptionHandlerNotResolvedException.cs │ │ │ ├── Encryption │ │ │ │ ├── EncryptionHandlerAlreadyExistsException.cs │ │ │ │ └── EncryptionHandlerNotResolvedException.cs │ │ │ └── Token │ │ │ │ ├── IncomingPayloadSignatureNotPresentException.cs │ │ │ │ ├── TokenExpiredException.cs │ │ │ │ ├── TokenInvalidAudienceException.cs │ │ │ │ ├── TokenInvalidInformationException.cs │ │ │ │ └── TokenValidationException.cs │ │ ├── Handlers │ │ │ ├── Authentication │ │ │ │ ├── AuthenticationHandlerBase.cs │ │ │ │ ├── JwtTokenAuthenticationHandler.cs │ │ │ │ └── Pipeline │ │ │ │ │ ├── AddAuthenticationHandler.cs │ │ │ │ │ └── AddAuthenticationHandlerJwtToken.cs │ │ │ ├── Compression │ │ │ │ ├── CompressorBase.cs │ │ │ │ ├── CompressorDeflate.cs │ │ │ │ ├── CompressorGzip.cs │ │ │ │ └── Pipeline │ │ │ │ │ ├── AddPayloadCompressor.cs │ │ │ │ │ ├── AddPayloadCompressorsDefault.cs │ │ │ │ │ └── ClearPayloadCompressors.cs │ │ │ ├── Encryption │ │ │ │ ├── AesEncryptionHandler.cs │ │ │ │ └── Pipeline │ │ │ │ │ ├── AddEncryptionHandler.cs │ │ │ │ │ └── AddEncryptionHandlerAes.cs │ │ │ └── Serializers │ │ │ │ ├── DynamicSerializer.cs │ │ │ │ ├── Pipeline │ │ │ │ ├── AddPayloadSerializer.cs │ │ │ │ ├── AddPayloadSerializerDefaultJson.cs │ │ │ │ └── ClearPayloadSerializers.cs │ │ │ │ └── StatisticsSummaryLogUdpSerializer.cs │ │ ├── Helper │ │ │ ├── SecurityHelper.cs │ │ │ ├── SerializationHelper.cs │ │ │ ├── Sha256SignatureHelper.cs │ │ │ ├── Sha512SignatureHelper.cs │ │ │ └── SignatureHelper.cs │ │ ├── Interfaces │ │ │ ├── IPayloadSerializationContainer.cs │ │ │ ├── IPayloadSerializer.cs │ │ │ ├── ISecurityCommunication.cs │ │ │ ├── ISecurityEncryption.cs │ │ │ ├── ISecurityService.cs │ │ │ └── ISerializationSerializerMagicBytes.cs │ │ ├── JWT │ │ │ ├── Exceptions │ │ │ │ ├── JwtAlgorithmNoneNotAllowedException.cs │ │ │ │ ├── JwtAlgorithmNotSupportedException.cs │ │ │ │ ├── JwtException.cs │ │ │ │ ├── JwtSignatureInvalidException.cs │ │ │ │ └── JwtTokenStructureInvalidException.cs │ │ │ ├── ExtensionMethods │ │ │ │ └── ToClaims.cs │ │ │ ├── Helper │ │ │ │ ├── ClaimsSet.cs │ │ │ │ ├── JwtHashAlgorithm.cs │ │ │ │ ├── JwtHelper.cs │ │ │ │ └── JwtRoot.cs │ │ │ ├── JOSEHeader.cs │ │ │ ├── JwtClaims.cs │ │ │ ├── JwtToken.cs │ │ │ └── _Documents │ │ │ │ ├── rfc7515 - JSON Web Signature.pdf │ │ │ │ ├── rfc7516 - JSON Web Encryption.pdf │ │ │ │ ├── rfc7517 - JSON Web Key.pdf │ │ │ │ ├── rfc7518 - JSON Web Algorithms.pdf │ │ │ │ ├── rfc7519 - JSON Web Token.pdf │ │ │ │ └── rfc7800 - Proof-of-Possession .pdf │ │ ├── MicroserviceSecurity │ │ │ ├── Identity.cs │ │ │ └── Principal.cs │ │ ├── Pipeline │ │ │ └── Attach │ │ │ │ ├── AttachTransportPayloadDecryption.cs │ │ │ │ ├── AttachTransportPayloadEncryption.cs │ │ │ │ ├── AttachTransportPayloadSignature.cs │ │ │ │ └── AttachTransportPayloadVerification.cs │ │ ├── SecurityContainer.cs │ │ ├── SecurityContainer_Communication.cs │ │ ├── SerializationContainer.cs │ │ ├── ServiceHandlerContainer.cs │ │ ├── ServiceHandlerContainerHarness.cs │ │ ├── ServiceHandlerContainer_Authentication.cs │ │ ├── ServiceHandlerContainer_Compression.cs │ │ ├── ServiceHandlerContainer_Encryption.cs │ │ ├── ServiceHandlerContainer_Serialization.cs │ │ └── _docs │ │ │ ├── Security.md │ │ │ └── Serialization.md │ ├── TaskManager │ │ ├── Interface │ │ │ ├── IQueueTracker.cs │ │ │ ├── ITaskAvailability.cs │ │ │ └── ITaskManagerProcess.cs │ │ ├── QueueTracker │ │ │ ├── Container │ │ │ │ ├── QueueTrackerContainer.cs │ │ │ │ └── QueueTrackerContainerStatistics.cs │ │ │ ├── QueueTracker.cs │ │ │ ├── QueueTrackerHolder.cs │ │ │ └── QueueTrackerStatistics.cs │ │ ├── TaskAvailability │ │ │ ├── TaskAvailability.cs │ │ │ ├── TaskAvailabilityStatistics.cs │ │ │ └── TaskManagerPrioritySettings.cs │ │ ├── TaskManager.cs │ │ ├── TaskManagerProcessContext.cs │ │ ├── TaskManager_Policy.cs │ │ ├── TaskManager_Statistics.cs │ │ ├── TaskTracker │ │ │ ├── TaskTracker.cs │ │ │ └── TaskTrackerType.cs │ │ └── _docs │ │ │ └── TaskManager.md │ ├── Xigadee.csproj │ ├── Xigadee.nuspec │ ├── XigadeeDNS2.sln │ └── _Docs │ │ ├── Images │ │ ├── 15mins │ │ │ ├── ClientServer.png │ │ │ ├── ClientServerSB.png │ │ │ └── Server.png │ │ ├── MessageFlow.png │ │ ├── MessageProcessing.png │ │ ├── Microservice.png │ │ └── Xigadee.png │ │ ├── Introduction.md │ │ ├── RaspberryPi.md │ │ ├── WhatIsAMicroservice.md │ │ ├── Xigadee.vsdx │ │ ├── Xigadee2.vsdx │ │ └── fifteenminuteMicroservice.md ├── Xigadee.Sample.HiC │ ├── Class1.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Xigadee.SpreadLedger.csproj │ ├── app.config │ └── packages.config ├── Xigadee.VisualStudio │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Xigadee.VisualStudio.csproj │ ├── Xigadee.VisualStudio.nuspec │ ├── _doc │ │ └── Introduction.md │ ├── app.config │ └── packages.config └── Xigadee.sln ├── _config.yml ├── _meta ├── .json └── 15-minute-microservice.json └── docs ├── Logo.gif ├── Logo.png ├── Logo2.png ├── WIP2.png ├── X2a.png ├── Xigadee2.png ├── _config.yml ├── hitachi.png ├── smallWIP.jpg ├── whatsnew.md └── xigadee.png /.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/.gitkeep -------------------------------------------------------------------------------- /.md: -------------------------------------------------------------------------------- 1 | # -------------------------------------------------------------------------------- /Src/AssemblyInfo/SharedAssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | // General Information about an assembly is controlled through the following 4 | // set of attributes. Change these attribute values to modify the information 5 | // associated with an assembly. 6 | [assembly: AssemblyCompany("Xigadee")] 7 | [assembly: AssemblyCopyright("")] 8 | [assembly: AssemblyTrademark("")] 9 | 10 | [assembly: AssemblyVersion("0.0.0.0")] 11 | [assembly: AssemblyFileVersion("0.0.0.0")] 12 | [assembly: AssemblyInformationalVersion("0.0.0.0")] 13 | 14 | 15 | -------------------------------------------------------------------------------- /Src/PiO.Console/PiO.Console.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | PiO 7 | PiO.Program 8 | 9 | 10 | 11 | bin\Debug\netcoreapp2.0\PiO.Console.xml 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Src/PiO.Console/Properties/PublishProfiles/FolderProfile.pubxml: -------------------------------------------------------------------------------- 1 |  2 | 6 | 7 | 8 | FileSystem 9 | Release 10 | netcoreapp2.0 11 | bin\Release\PiO 12 | 13 | -------------------------------------------------------------------------------- /Src/PiO.Console/Properties/PublishProfiles/FolderProfileArm.pubxml: -------------------------------------------------------------------------------- 1 |  2 | 6 | 7 | 8 | FileSystem 9 | Release 10 | netcoreapp2.0 11 | bin\Release\PublishOutputArm 12 | 13 | -------------------------------------------------------------------------------- /Src/PiO.Console/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "PiO.Console": { 4 | "commandName": "Project", 5 | "commandLineArgs": "/shortcut:PiO" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /Src/PiOStubSender/PiOStubSender.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Src/Test.Xigadee.Api.NetCore/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore; 7 | using Microsoft.AspNetCore.Hosting; 8 | using Microsoft.Extensions.Configuration; 9 | using Microsoft.Extensions.Logging; 10 | using Xigadee; 11 | 12 | namespace Test.Xigadee.Api.NetCore 13 | { 14 | public class Program 15 | { 16 | public static void Main(string[] args) 17 | { 18 | BuildWebHost(args).Run(); 19 | } 20 | 21 | public static IWebHost BuildWebHost(string[] args) => 22 | WebHost.CreateDefaultBuilder(args) 23 | //.UseXigadee("freddy") 24 | .UseStartup() 25 | .Build(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Src/Test.Xigadee.Api.NetCore/Test.Xigadee.Api.NetCore.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Src/Test.Xigadee.Api.NetCore/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "Debug": { 5 | "LogLevel": { 6 | "Default": "Warning" 7 | } 8 | }, 9 | "Console": { 10 | "LogLevel": { 11 | "Default": "Warning" 12 | } 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /Src/Test.Xigadee.AspNetCore/Test.Xigadee.AspNetCore.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Src/Test.Xigadee.AspNetCore/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Src/Test.Xigadee.AspNetCore/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "Debug": { 5 | "LogLevel": { 6 | "Default": "Warning" 7 | } 8 | }, 9 | "Console": { 10 | "LogLevel": { 11 | "Default": "Warning" 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Test.Xigadee.Helper/Test.Xigadee.Helper.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.0;net47 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Src/Test.Xigadee.Helper/TestContextSettingException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This exception is used when a TestContext setting cannot be found. 7 | /// 8 | /// 9 | public class TestContextSettingException : Exception 10 | { 11 | /// 12 | /// Initializes a new instance of the class. 13 | /// 14 | /// The message that describes the error. 15 | public TestContextSettingException(string message) : base(message) 16 | { 17 | 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Src/Test.Xigadee.Sample.HiC/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | [assembly: AssemblyTitle("Test.Xigadee.Sample.HiC")] 6 | [assembly: AssemblyDescription("")] 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany("")] 9 | [assembly: AssemblyProduct("Test.Xigadee.Sample.HiC")] 10 | [assembly: AssemblyCopyright("Copyright © 2017")] 11 | [assembly: AssemblyTrademark("")] 12 | [assembly: AssemblyCulture("")] 13 | 14 | [assembly: ComVisible(false)] 15 | 16 | [assembly: Guid("91381a5f-26cb-4e03-9a76-938932649f4a")] 17 | 18 | // [assembly: AssemblyVersion("1.0.*")] 19 | [assembly: AssemblyVersion("1.0.0.0")] 20 | [assembly: AssemblyFileVersion("1.0.0.0")] 21 | -------------------------------------------------------------------------------- /Src/Test.Xigadee.Sample.HiC/UnitTest1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.VisualStudio.TestTools.UnitTesting; 3 | using Xigadee.SpreadLedger; 4 | 5 | namespace Test.Xigadee.Sample 6 | { 7 | [TestClass] 8 | public class UnitTest1 9 | { 10 | [TestMethod] 11 | public void TestMethod1() 12 | { 13 | ClassParse.DoSomething(); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Client/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/App_Start/UnityConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Http; 2 | using Unity; 3 | using Unity.WebApi; 4 | 5 | namespace Test.Xigadee.Api.Server 6 | { 7 | public static class UnityConfig 8 | { 9 | public static void RegisterComponents() 10 | { 11 | var container = new UnityContainer(); 12 | 13 | // register all your components with the container here 14 | // it is NOT necessary to register your controllers 15 | 16 | // e.g. container.RegisterType(); 17 | 18 | GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/CollectionModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 2 | { 3 | public class CollectionModelDescription : ModelDescription 4 | { 5 | public ModelDescription ElementDescription { get; set; } 6 | } 7 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/ComplexTypeModelDescription.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | 3 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 4 | { 5 | public class ComplexTypeModelDescription : ModelDescription 6 | { 7 | public ComplexTypeModelDescription() 8 | { 9 | Properties = new Collection(); 10 | } 11 | 12 | public Collection Properties { get; private set; } 13 | } 14 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/DictionaryModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 2 | { 3 | public class DictionaryModelDescription : KeyValuePairModelDescription 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/EnumTypeModelDescription.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Collections.ObjectModel; 3 | 4 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 5 | { 6 | public class EnumTypeModelDescription : ModelDescription 7 | { 8 | public EnumTypeModelDescription() 9 | { 10 | Values = new Collection(); 11 | } 12 | 13 | public Collection Values { get; private set; } 14 | } 15 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/EnumValueDescription.cs: -------------------------------------------------------------------------------- 1 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 2 | { 3 | public class EnumValueDescription 4 | { 5 | public string Documentation { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public string Value { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/IModelDocumentationProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | 4 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 5 | { 6 | public interface IModelDocumentationProvider 7 | { 8 | string GetDocumentation(MemberInfo member); 9 | 10 | string GetDocumentation(Type type); 11 | } 12 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/KeyValuePairModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 2 | { 3 | public class KeyValuePairModelDescription : ModelDescription 4 | { 5 | public ModelDescription KeyModelDescription { get; set; } 6 | 7 | public ModelDescription ValueModelDescription { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/ModelDescription.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 4 | { 5 | /// 6 | /// Describes a type model. 7 | /// 8 | public abstract class ModelDescription 9 | { 10 | public string Documentation { get; set; } 11 | 12 | public Type ModelType { get; set; } 13 | 14 | public string Name { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/ModelNameAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 4 | { 5 | /// 6 | /// Use this attribute to change the name of the generated for a type. 7 | /// 8 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum, AllowMultiple = false, Inherited = false)] 9 | public sealed class ModelNameAttribute : Attribute 10 | { 11 | public ModelNameAttribute(string name) 12 | { 13 | Name = name; 14 | } 15 | 16 | public string Name { get; private set; } 17 | } 18 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/ParameterAnnotation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 4 | { 5 | public class ParameterAnnotation 6 | { 7 | public Attribute AnnotationAttribute { get; set; } 8 | 9 | public string Documentation { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/ParameterDescription.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Collections.ObjectModel; 3 | 4 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 5 | { 6 | public class ParameterDescription 7 | { 8 | public ParameterDescription() 9 | { 10 | Annotations = new Collection(); 11 | } 12 | 13 | public Collection Annotations { get; private set; } 14 | 15 | public string Documentation { get; set; } 16 | 17 | public string Name { get; set; } 18 | 19 | public ModelDescription TypeDescription { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/ModelDescriptions/SimpleTypeModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 2 | { 3 | public class SimpleTypeModelDescription : ModelDescription 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/SampleGeneration/SampleDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Test.Xigadee.Api.Server.Areas.HelpPage 2 | { 3 | /// 4 | /// Indicates whether the sample is used for request or response 5 | /// 6 | public enum SampleDirection 7 | { 8 | Request = 0, 9 | Response 10 | } 11 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/Help/Api.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Web.Http 2 | @using Test.Xigadee.Api.Server.Areas.HelpPage.Models 3 | @model HelpPageApiModel 4 | 5 | @{ 6 | var description = Model.ApiDescription; 7 | ViewBag.Title = description.HttpMethod.Method + " " + description.RelativePath; 8 | } 9 | 10 | 11 |
12 | 19 |
20 | @Html.DisplayForModel() 21 |
22 |
23 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/Help/DisplayTemplates/CollectionModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 2 | @model CollectionModelDescription 3 | @if (Model.ElementDescription is ComplexTypeModelDescription) 4 | { 5 | @Html.DisplayFor(m => m.ElementDescription) 6 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/Help/DisplayTemplates/ComplexTypeModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 2 | @model ComplexTypeModelDescription 3 | @Html.DisplayFor(m => m.Properties, "Parameters") -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/Help/DisplayTemplates/DictionaryModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 2 | @model DictionaryModelDescription 3 | Dictionary of @Html.DisplayFor(m => Model.KeyModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.KeyModelDescription }) [key] 4 | and @Html.DisplayFor(m => Model.ValueModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.ValueModelDescription }) [value] -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/Help/DisplayTemplates/ImageSample.cshtml: -------------------------------------------------------------------------------- 1 | @using Test.Xigadee.Api.Server.Areas.HelpPage 2 | @model ImageSample 3 | 4 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/Help/DisplayTemplates/InvalidSample.cshtml: -------------------------------------------------------------------------------- 1 | @using Test.Xigadee.Api.Server.Areas.HelpPage 2 | @model InvalidSample 3 | 4 | @if (HttpContext.Current.IsDebuggingEnabled) 5 | { 6 |
7 |

@Model.ErrorMessage

8 |
9 | } 10 | else 11 | { 12 |

Sample not available.

13 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/Help/DisplayTemplates/KeyValuePairModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 2 | @model KeyValuePairModelDescription 3 | Pair of @Html.DisplayFor(m => Model.KeyModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.KeyModelDescription }) [key] 4 | and @Html.DisplayFor(m => Model.ValueModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.ValueModelDescription }) [value] -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/Help/DisplayTemplates/SimpleTypeModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 2 | @model SimpleTypeModelDescription 3 | @Model.Documentation -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/Help/DisplayTemplates/TextSample.cshtml: -------------------------------------------------------------------------------- 1 | @using Test.Xigadee.Api.Server.Areas.HelpPage 2 | @model TextSample 3 | 4 |
5 | @Model.Text
6 | 
-------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/Help/ResourceModel.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Web.Http 2 | @using Test.Xigadee.Api.Server.Areas.HelpPage.ModelDescriptions 3 | @model ModelDescription 4 | 5 | 6 |
7 | 14 |

@Model.Name

15 |

@Model.Documentation

16 |
17 | @Html.DisplayFor(m => Model) 18 |
19 |
20 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | @ViewBag.Title 7 | @RenderSection("scripts", required: false) 8 | 9 | 10 | @RenderBody() 11 | 12 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Areas/HelpPage/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | // Change the Layout path below to blend the look and feel of the help page with your existing web pages. 3 | Layout = "~/Areas/HelpPage/Views/Shared/_Layout.cshtml"; 4 | } -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Server/Test.Xigadee.Api.Server.licenseheader: -------------------------------------------------------------------------------- 1 | extensions: designer.cs generated.cs 2 | extensions: .cs 3 | #region Copyright 4 | // Copyright Hitachi Consulting 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); 7 | // you may not use this file except in compliance with the License. 8 | // You may obtain a copy of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | // See the License for the specific language governing permissions and 16 | // limitations under the License. 17 | #endregion 18 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Content/Site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 20px; 4 | } 5 | 6 | /* Set padding to keep content from hitting the edges */ 7 | .body-content { 8 | padding-left: 15px; 9 | padding-right: 15px; 10 | } 11 | 12 | /* Override the default bootstrap behavior where horizontal description lists 13 | will truncate terms that are too long to fit in the left column 14 | */ 15 | .dl-horizontal dt { 16 | white-space: normal; 17 | } 18 | 19 | /* Set width on the form input elements since they're 100% wide by default */ 20 | input, 21 | select, 22 | textarea { 23 | max-width: 280px; 24 | } 25 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="Test.Xigadee.Api.Web.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Scripts/_references.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Test/Test.Xigadee.Api.Web/Scripts/_references.js -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Test.Xigadee.Api.Web.licenseheader: -------------------------------------------------------------------------------- 1 | extensions: designer.cs generated.cs 2 | extensions: .cs 3 | #region Copyright 4 | // Copyright Hitachi Consulting 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); 7 | // you may not use this file except in compliance with the License. 8 | // You may obtain a copy of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | // See the License for the specific language governing permissions and 16 | // limitations under the License. 17 | #endregion 18 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Views/Account/ConfirmEmail.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Confirm Email"; 3 | } 4 | 5 |

@ViewBag.Title.

6 |
7 |

8 | Thank you for confirming your email. Please @Html.ActionLink("Click here to Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" }) 9 |

10 |
11 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Views/Account/ExternalLoginFailure.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Login Failure"; 3 | } 4 | 5 |
6 |

@ViewBag.Title.

7 |

Unsuccessful login with service.

8 |
9 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Views/Account/ForgotPasswordConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Forgot Password Confirmation"; 3 | } 4 | 5 |
6 |

@ViewBag.Title.

7 |
8 |
9 |

10 | Please check your email to reset your password. 11 |

12 |
13 | 14 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Views/Account/ResetPasswordConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Reset password confirmation"; 3 | } 4 | 5 |
6 |

@ViewBag.Title.

7 |
8 |
9 |

10 | Your password has been reset. Please @Html.ActionLink("click here to log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" }) 11 |

12 |
13 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "About"; 3 | } 4 |

@ViewBag.Title.

5 |

@ViewBag.Message

6 | 7 |

Use this area to provide additional information.

8 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Views/Home/Contact.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Contact"; 3 | } 4 |

@ViewBag.Title.

5 |

@ViewBag.Message

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
-------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @model System.Web.Mvc.HandleErrorInfo 2 | 3 | @{ 4 | ViewBag.Title = "Error"; 5 | } 6 | 7 |

Error.

8 |

An error occurred while processing your request.

9 | 10 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Views/Shared/Lockout.cshtml: -------------------------------------------------------------------------------- 1 | @model System.Web.Mvc.HandleErrorInfo 2 | 3 | @{ 4 | ViewBag.Title = "Locked Out"; 5 | } 6 | 7 |
8 |

Locked out.

9 |

This account has been locked out, please try again later.

10 |
11 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Shared/_Layout.cshtml"; 3 | } 4 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Test/Test.Xigadee.Api.Web/favicon.ico -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Test/Test.Xigadee.Api.Web/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Test/Test.Xigadee.Api.Web/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Test/Test.Xigadee.Api.Web/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Test/Test.Xigadee.Api.Web/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web2/App_Start/FilterConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web; 2 | using System.Web.Mvc; 3 | 4 | namespace Test.Xigadee.Api.Web2 5 | { 6 | public class FilterConfig 7 | { 8 | public static void RegisterGlobalFilters(GlobalFilterCollection filters) 9 | { 10 | filters.Add(new HandleErrorAttribute()); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web2/App_Start/RouteConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | using System.Web.Routing; 7 | 8 | namespace Test.Xigadee.Api.Web2 9 | { 10 | public class RouteConfig 11 | { 12 | public static void RegisterRoutes(RouteCollection routes) 13 | { 14 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 15 | 16 | routes.MapRoute( 17 | name: "Default", 18 | url: "{controller}/{action}/{id}", 19 | defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 20 | ); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api.Web2/App_Start/WebApiConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web.Http; 5 | 6 | namespace Test.Xigadee.Api.Web2 7 | { 8 | public static class WebApiConfig 9 | { 10 | public static void Register(HttpConfiguration config) 11 | { 12 | // Web API configuration and services 13 | 14 | // Web API routes 15 | config.MapHttpAttributeRoutes(); 16 | 17 | config.Routes.MapHttpRoute( 18 | name: "DefaultApi", 19 | routeTemplate: "api/{controller}/{id}", 20 | defaults: new { id = RouteParameter.Optional } 21 | ); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Api/_docs/ReadMe.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # Test.Xigadee 9 | 10 | This project contains a set of tests for the Xigadee Framework. 11 | 12 | 13 | 14 | 15 | 16 |
Hitachi ConsultingCreated by: Paul StancerHome
17 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Azure/_docs/ReadMe.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # Test.Xigadee.Azure 9 | 10 | This project contains a set of tests for the Xigadee Framework. 11 | 12 | 13 | 14 | 15 | 16 |
Hitachi ConsultingCreated by: Paul StancerHome
17 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Azure/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.DebugConsole/Test.Xigadee.DebugConsole.licenseheader: -------------------------------------------------------------------------------- 1 | extensions: designer.cs generated.cs 2 | extensions: .cs 3 | #region Copyright 4 | // Copyright Hitachi Consulting 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); 7 | // you may not use this file except in compliance with the License. 8 | // You may obtain a copy of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | // See the License for the specific language governing permissions and 16 | // limitations under the License. 17 | #endregion 18 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Pipeline/Samples/APISample1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.VisualStudio.TestTools.UnitTesting; 3 | using Xigadee; 4 | 5 | namespace Test.Xigadee.Pipeline.Samples 6 | { 7 | [TestClass] 8 | public class APISample1 9 | { 10 | [TestMethod] 11 | public void API1() 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Pipeline/Security/SecurityScaffoldTest1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.VisualStudio.TestTools.UnitTesting; 3 | 4 | namespace Test.Xigadee.Pipeline.Security 5 | { 6 | [TestClass] 7 | public class SecurityScaffoldTest1 8 | { 9 | [TestMethod] 10 | public void TestMethod1() 11 | { 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Pipeline/_docs/ReadMe.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # Test.Xigadee.Pipeline 9 | 10 | This project contains a set of test cases that verify the Xigadee pipeline functionality. 11 | 12 | 13 | 14 | 15 | 16 |
Hitachi ConsultingCreated by: Paul StancerHome
17 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Shared/Test.Xigadee.Shared.licenseheader: -------------------------------------------------------------------------------- 1 | extensions: designer.cs generated.cs 2 | extensions: .cs 3 | #region Copyright 4 | // Copyright Hitachi Consulting 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); 7 | // you may not use this file except in compliance with the License. 8 | // You may obtain a copy of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | // See the License for the specific language governing permissions and 16 | // limitations under the License. 17 | #endregion 18 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Shared/Tests/PersistenceTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Test.Xigadee.Tests 8 | { 9 | public static class PersistenceTests 10 | { 11 | 12 | 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Shared/Xsd/Blah.xsd: -------------------------------------------------------------------------------- 1 |  2 | 9 | 10 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Shared/_docs/ReadMe.md: -------------------------------------------------------------------------------- 1 | ![Xigadee](../../../../docs/X2a.png) 2 | 3 | 9 | 10 | # Test.Xigadee.Shared 11 | 12 | This project contains a set of shared classes that can be used across all the testing projects. 13 | 14 | 15 | 16 | 17 | 18 |
Hitachi ConsultingCreated by: Paul StancerHome
19 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Sql/External/MondayMorningBlues/Delete.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [External].[MondayMorningBluesDelete] 2 | @ExternalId UNIQUEIDENTIFIER 3 | AS 4 | BEGIN 5 | 6 | DECLARE @Id BIGINT, @ResolveStatus INT, @VersionId UNIQUEIDENTIFIER 7 | 8 | EXEC @ResolveStatus = [dbo].[MondayMorningBlues_Resolve] @ExternalId, @Id OUTPUT, @VersionId OUTPUT 9 | if (@ResolveStatus != 200) 10 | RETURN @ResolveStatus; 11 | 12 | BEGIN TRY; 13 | BEGIN TRAN; 14 | 15 | DELETE FROM [dbo].[MondayMorningBlues] 16 | WHERE [Id] = @Id 17 | 18 | COMMIT TRAN 19 | 20 | IF (@@ROWCOUNT = 0) 21 | RETURN 404; 22 | END TRY 23 | BEGIN CATCH 24 | ROLLBACK TRAN 25 | RETURN 500; 26 | END CATCH 27 | 28 | SELECT [dbo].[fnEntityVersion] (@ExternalId, @VersionId) 29 | 30 | RETURN 200; 31 | END 32 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Sql/External/MondayMorningBlues/Helper/FnEntityVersion.sql: -------------------------------------------------------------------------------- 1 | CREATE FUNCTION [dbo].[fnEntityVersion] 2 | ( 3 | @ExternalId UNIQUEIDENTIFIER, 4 | @VersionId UNIQUEIDENTIFIER 5 | ) 6 | RETURNS XML 7 | AS 8 | BEGIN 9 | DECLARE @Output XML = 10 | ( 11 | SELECT @VersionId as '@VersionId', 12 | @ExternalId as '@ExternalId' 13 | FOR XML PATH ('Entity'), TYPE 14 | ) 15 | 16 | RETURN @Output 17 | END 18 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Sql/External/MondayMorningBlues/Helper/FnMondayMorningBlues.sql: -------------------------------------------------------------------------------- 1 | CREATE FUNCTION [dbo].[fnMondayMorningBlues] 2 | ( 3 | @Id BIGINT 4 | ) 5 | RETURNS XML 6 | AS 7 | BEGIN 8 | 9 | DECLARE @Output XML 10 | 11 | SELECT @Output = 12 | ( 13 | SELECT c.[ExternalId] as '@ExternalId' 14 | ,c.[NotEnoughCoffee] AS '@NotEnoughCoffee' 15 | ,c.[NotEnoughSleep] AS '@NotEnoughSleep' 16 | ,c.[Message] AS '@Message' 17 | ,c.[Email] AS '@Email' 18 | ,c.[DateCreated] AS '@DateCreated' 19 | ,c.[DateUpdated] AS '@DateUpdated' 20 | ,c.[VersionId] AS '@VersionId' 21 | ,c.[ContentId] AS '@ContentId' 22 | FROM dbo.[MondayMorningBlues] AS c 23 | WHERE c.Id = @Id 24 | FOR XML PATH ('MondayMorningBlues'), TYPE 25 | ) 26 | RETURN @Output 27 | END 28 | 29 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Sql/External/MondayMorningBlues/Helper/MondayMorningBlues_Resolve.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [dbo].[MondayMorningBlues_Resolve] 2 | @ExternalId UNIQUEIDENTIFIER, 3 | @Id BIGINT OUTPUT, 4 | @VersionId UNIQUEIDENTIFIER OUTPUT 5 | AS 6 | BEGIN 7 | SELECT @Id=Id, @VersionId=VersionId FROM [dbo].[MondayMorningBlues] 8 | WHERE [ExternalId]=@ExternalId 9 | 10 | IF (@@ROWCOUNT>0) 11 | RETURN 200; 12 | --Not found. 13 | RETURN 404; 14 | 15 | END 16 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Sql/External/MondayMorningBlues/Helper/MondayMorningBlues_ResolveByRef.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [dbo].[MondayMorningBlues_ResolveByRef] 2 | @Email NVARCHAR(255), 3 | @Id BIGINT OUTPUT, 4 | @ExternalId UNIQUEIDENTIFIER OUTPUT, 5 | @VersionId UNIQUEIDENTIFIER OUTPUT 6 | AS 7 | BEGIN 8 | SELECT @Id=Id, @ExternalId = ExternalId, @VersionId=VersionId 9 | FROM [dbo].[MondayMorningBlues] 10 | WHERE [Email] IS NOT NULL AND [Email]=@Email 11 | 12 | IF (@@ROWCOUNT>0) 13 | RETURN 200; 14 | --Not found. 15 | RETURN 404; 16 | 17 | END -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Sql/External/MondayMorningBlues/Read.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [External].[MondayMorningBluesRead] 2 | @ExternalId UNIQUEIDENTIFIER 3 | AS 4 | BEGIN 5 | DECLARE @Id BIGINT,@ResolveStatus INT, @VersionId UNIQUEIDENTIFIER 6 | 7 | EXEC @ResolveStatus = [dbo].[MondayMorningBlues_Resolve] @ExternalId, @Id OUTPUT, @VersionId OUTPUT 8 | if (@ResolveStatus != 200) 9 | RETURN @ResolveStatus; 10 | 11 | SELECT [dbo].[FnMondayMorningBlues] (@Id) 12 | 13 | RETURN 200; 14 | END 15 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Sql/External/MondayMorningBlues/ReadByReference.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [External].[MondayMorningBluesReadByRef] 2 | @RefType NVARCHAR(50) 3 | , @RefValue NVARCHAR(255) 4 | AS 5 | BEGIN 6 | DECLARE @Id BIGINT,@ResolveStatus INT, @VersionId UNIQUEIDENTIFIER, @ExternalId UNIQUEIDENTIFIER 7 | 8 | IF (@RefType != 'EMAIL') 9 | RETURN 404; 10 | 11 | EXEC @ResolveStatus = [dbo].[MondayMorningBlues_ResolveByRef] @RefValue, @Id OUTPUT, @ExternalId OUTPUT, @VersionId OUTPUT 12 | 13 | if (@ResolveStatus != 200) 14 | RETURN @ResolveStatus; 15 | 16 | SELECT [dbo].[fnMondayMorningBlues] (@Id) 17 | 18 | RETURN 200; 19 | END 20 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Sql/External/MondayMorningBlues/Version.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [External].[MondayMorningBluesVersion] 2 | @ExternalId UNIQUEIDENTIFIER 3 | AS 4 | BEGIN 5 | DECLARE @Id BIGINT,@ResolveStatus INT, @VersionId UNIQUEIDENTIFIER 6 | 7 | EXEC @ResolveStatus = [dbo].[MondayMorningBlues_Resolve] @ExternalId 8 | , @Id OUTPUT 9 | , @VersionId OUTPUT 10 | 11 | if (@ResolveStatus != 200) 12 | RETURN @ResolveStatus; 13 | 14 | SELECT [dbo].[fnEntityVersion] (@ExternalId, @VersionId) 15 | 16 | RETURN 200; 17 | END -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Sql/External/MondayMorningBlues/VersionByReference.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [External].[MondayMorningBluesVersionByRef] 2 | @RefType NVARCHAR(50) 3 | , @RefValue NVARCHAR(255) 4 | AS 5 | BEGIN 6 | DECLARE @Id BIGINT,@ResolveStatus INT, @VersionId UNIQUEIDENTIFIER, @ExternalId UNIQUEIDENTIFIER 7 | 8 | IF (@RefType != 'EMAIL') 9 | RETURN 404; 10 | 11 | EXEC @ResolveStatus = [dbo].[MondayMorningBlues_ResolveByRef] @RefValue 12 | , @Id OUTPUT 13 | , @ExternalId OUTPUT 14 | , @VersionId OUTPUT 15 | 16 | IF (@ResolveStatus != 200) 17 | RETURN @ResolveStatus; 18 | 19 | SELECT [dbo].[fnEntityVersion] (@ExternalId, @VersionId) 20 | 21 | RETURN 200; 22 | END -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee.Sql/Schema.sql: -------------------------------------------------------------------------------- 1 | CREATE SCHEMA [External] 2 | GO -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/Communication/Tcp/HttpSamples/http1_rs.txt: -------------------------------------------------------------------------------- 1 | HTTP/1.1 302 Found 2 | Location: http://www.google.co.uk/ 3 | Cache-Control: private 4 | Content-Type: text/html; charset=UTF-8 5 | Date: Tue, 16 Mar 2010 21:46:59 GMT 6 | Server: gws 7 | Content-Length: 221 8 | X-XSS-Protection: 0 9 | 10 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/Communication/Tcp/HttpSamples/http2_rs.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Test/Test.Xigadee/Communication/Tcp/HttpSamples/http2_rs.txt -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/Communication/Tcp/HttpSamples/http3_rq.txt: -------------------------------------------------------------------------------- 1 | GET /2663428/PID_1267705_leaderboard_728x90.swf HTTP/1.1 2 | Host: s0.2mdn.net 3 | Connection: keep-alive 4 | User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5 5 | Referer: http://www.guardian.co.uk/film/2010/mar/18/i-love-you-phillip-morris-review 6 | Accept: */* 7 | Accept-Encoding: gzip,deflate,sdch 8 | Accept-Language: en-GB,en-US;q=0.8,en;q=0.6 9 | Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 10 | 11 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/Communication/Tcp/HttpSamples/http3_rs.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Test/Test.Xigadee/Communication/Tcp/HttpSamples/http3_rs.txt -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/Communication/Tcp/HttpSamples/httpMime1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Test/Test.Xigadee/Communication/Tcp/HttpSamples/httpMime1.txt -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/Dispatcher/ErrorPolicy/UnitTest1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.VisualStudio.TestTools.UnitTesting; 3 | 4 | namespace Test.Xigadee.Dispatcher.ErrorPolicy 5 | { 6 | [TestClass] 7 | public class UnitTest1 8 | { 9 | [TestMethod] 10 | public void TestMethod1() 11 | { 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/Persistence/PersistenceHarness.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.VisualStudio.TestTools.UnitTesting; 3 | 4 | namespace Test.Xigadee 5 | { 6 | [TestClass] 7 | public class PersistenceHarness 8 | { 9 | [TestMethod] 10 | public void SimpleHArnessTest() 11 | { 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/Serialization/Serializers/JsonContractTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.VisualStudio.TestTools.UnitTesting; 3 | using Xigadee; 4 | 5 | namespace Test.Xigadee.Serialization 6 | { 7 | [TestClass] 8 | public class JsonContractTests 9 | { 10 | [TestMethod] 11 | public void TestMethod1() 12 | { 13 | var sr = new JsonContractSerializer(); 14 | 15 | 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/Serialization/Serializers/JsonRawTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.VisualStudio.TestTools.UnitTesting; 3 | using Xigadee; 4 | 5 | namespace Test.Xigadee.Serialization 6 | { 7 | [TestClass] 8 | public class JsonRawTests 9 | { 10 | [TestMethod] 11 | public void TestMethod1() 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/Setup/UnitTest1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.VisualStudio.TestTools.UnitTesting; 3 | using Xigadee; 4 | 5 | namespace Test.Xigadee.Setup 6 | { 7 | [TestClass] 8 | public class Setup 9 | { 10 | [TestMethod] 11 | public void Setup1() 12 | { 13 | var pipeline = new MicroservicePipeline(nameof(Setup1)); 14 | 15 | //var hello = SimpleTestClass.Doesthiswork(); 16 | //pipeline 17 | // .AdjustPolicyTaskManager((t,c) => t. 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/TaskManager/PolicyTaskManagerTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using Microsoft.VisualStudio.TestTools.UnitTesting; 4 | using Xigadee; 5 | 6 | namespace Test.Xigadee 7 | { 8 | [TestClass] 9 | public class PolicyTaskManagerTests 10 | { 11 | [TestMethod] 12 | public void TestMethod1() 13 | { 14 | var policy = new TaskManager.Policy(); 15 | 16 | policy.BulkheadReserve(4,4,4); 17 | 18 | Assert.IsTrue(policy.PriorityLevelReservations.Max((p) => p.Level) == 4); 19 | 20 | 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/Test.Xigadee.licenseheader: -------------------------------------------------------------------------------- 1 | extensions: designer.cs generated.cs 2 | extensions: .cs 3 | #region Copyright 4 | // Copyright Hitachi Consulting 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); 7 | // you may not use this file except in compliance with the License. 8 | // You may obtain a copy of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | // See the License for the specific language governing permissions and 16 | // limitations under the License. 17 | #endregion 18 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/_docs/ReadMe.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # Test.Xigadee 9 | 10 | This project contains a set of tests for the Xigadee Framework. 11 | 12 | 13 | 14 | 15 | 16 |
Hitachi ConsultingCreated by: Paul StancerHome
17 | -------------------------------------------------------------------------------- /Src/Test/Test.Xigadee/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Src/Xigadee.AWS/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Communication/Channel/ChannelDirection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This enumeration specifies the direction of the message. 7 | /// 8 | [Flags] 9 | public enum ChannelDirection:int 10 | { 11 | /// 12 | /// The message has been received from an external source. 13 | /// 14 | Incoming = 1, 15 | /// 16 | /// The message has just been transmitted to an external source. 17 | /// 18 | Outgoing = 2 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Communication/Exceptions/MessagingException.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | using System; 3 | using System.Collections.Concurrent; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading; 8 | using System.Threading.Tasks; 9 | 10 | #endregion 11 | namespace Xigadee 12 | { 13 | /// 14 | /// This is the base abstract exception for messaging exceptions 15 | /// 16 | public abstract class MessagingException: Exception 17 | { 18 | /// 19 | /// This is the default constructor. 20 | /// 21 | /// The message to pass. 22 | protected MessagingException(string message) : base(message) { } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Components/EventBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This is the conceptual base class for event and information logging. 7 | /// 8 | public abstract class EventBase 9 | { 10 | /// 11 | /// This is the unique id used to identify the EventBase object. 12 | /// 13 | public string TraceId { get; } = Guid.NewGuid().ToString("N").ToUpperInvariant(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Helper/ArrayHelper/MatchCollection/Terminators/MatchTerminatorResult.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// 5 | /// 6 | public struct MatchTerminatorResult 7 | { 8 | /// 9 | /// 10 | /// 11 | public int Length; 12 | /// 13 | /// 14 | /// 15 | public bool CanContinue; 16 | /// 17 | /// 18 | /// 19 | public bool IsTerminator; 20 | /// 21 | /// 22 | /// 23 | public MatchTerminatorStatus Status; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Interfaces/Contracts/IMessageContract.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This is the base interface used for message contracts. 5 | /// 6 | public interface IMessageContract 7 | { 8 | 9 | } 10 | /// 11 | /// This is the generic message contract. 12 | /// 13 | /// The contract type. 14 | /// 15 | public interface IMessageContractPayload

:IMessageContract 16 | { 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Interfaces/ICollectionStatistics.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | ///

4 | /// This interface shows a collections statistics count. 5 | /// 6 | public interface ICollectionStatistics 7 | { 8 | /// 9 | /// Gets or sets the item count. 10 | /// 11 | int ItemCount { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Interfaces/IStatisticsBase.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is used to expose the generic statistics methods across multiple components 5 | /// that allow the system wide statistics tree to be generated. 6 | /// 7 | public interface IStatisticsBase 8 | { 9 | /// 10 | /// Gets the component statistics. 11 | /// 12 | /// The statistics class. 13 | StatusBase StatisticsGet(); 14 | } 15 | } -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Interfaces/Require/IRequireChannelService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Xigadee 6 | { 7 | /// 8 | /// This interface is implemented by components that require a direct access to the 9 | /// system channels. 10 | /// 11 | public interface IRequireChannelService 12 | { 13 | /// 14 | /// The service reference. 15 | /// 16 | IChannelService ChannelService { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Interfaces/Require/IRequireDataCollector.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is implemented by component that require raw access to the data collector. 5 | /// 6 | public interface IRequireDataCollector 7 | { 8 | /// 9 | /// This is the data collector. 10 | /// 11 | IDataCollection Collector { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Interfaces/Require/IRequirePayloadSerialization.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is for components that require payload serialization and deserialization. 5 | /// 6 | public interface IRequireServiceHandlers 7 | { 8 | /// 9 | /// This is the system wide service handlers. 10 | /// 11 | IServiceHandlers ServiceHandlers { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Interfaces/Require/IRequireScheduler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading; 3 | using System.Threading.Tasks; 4 | 5 | namespace Xigadee 6 | { 7 | /// 8 | /// This interface is set by components that require the schedule functionality built in to the microservice. 9 | /// 10 | public interface IRequireScheduler 11 | { 12 | /// 13 | /// The scheduler reference. 14 | /// 15 | IScheduler Scheduler { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Interfaces/Require/IRequireServiceOriginator.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is implemented by services that require information about the service they are running under. 5 | /// 6 | public interface IRequireServiceOriginator 7 | { 8 | /// 9 | /// The originator Id for the service. 10 | /// 11 | MicroserviceId OriginatorId { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Interfaces/Require/IRequireSharedServices.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is implemented by components that need to access the shared service container for their usage. 5 | /// 6 | public interface IRequireSharedServices 7 | { 8 | /// 9 | /// The shared service container. 10 | /// 11 | ISharedService SharedServices { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Messaging/Exceptions/ContractException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This is the base contract exception. 7 | /// 8 | public abstract class ContractException: Exception 9 | { 10 | /// 11 | /// Initializes a new instance of the class. 12 | /// 13 | /// The contract. 14 | protected ContractException(Type contract) 15 | { 16 | ContractName = contract.Name; 17 | } 18 | /// 19 | /// Gets the name of the contract. 20 | /// 21 | public string ContractName { get; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Messaging/Exceptions/InvalidMessageContractException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This exception is thrown when a message contract does not resolve. 7 | /// 8 | public class InvalidMessageContractException: ContractException 9 | { 10 | /// 11 | /// Initializes a new instance of the class. 12 | /// 13 | /// The contract type. 14 | public InvalidMessageContractException(Type contract) : base(contract) 15 | { 16 | 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Messaging/ProcessOptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using System.Threading; 4 | 5 | namespace Xigadee 6 | { 7 | /// 8 | /// This enumeration provides additional information to the dispatcher on how to process the incoming 9 | /// payload request. 10 | /// 11 | [Flags] 12 | public enum ProcessOptions: int 13 | { 14 | RouteInternal = 1, 15 | RouteExternal = 2 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Messaging/RateLimitSignal.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using System.Threading; 4 | 5 | namespace Xigadee 6 | { 7 | /// 8 | /// This flag is used to signal. 9 | /// 10 | public enum RateLimitSignal 11 | { 12 | Down, 13 | Release 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Persistence/Entities/History/HistoryBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// The default class to contain details of an entity's history. 7 | /// 8 | /// The key type. 9 | public abstract class HistoryBase 10 | where K: IEquatable 11 | { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Persistence/Entities/History/HistoryRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | public class HistoryRequest: HistoryBase 6 | where K : IEquatable 7 | { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Persistence/Entities/History/HistoryResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | public class HistoryResponse: HistoryBase 6 | where K : IEquatable 7 | { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Persistence/Entities/Search/SearchOData4Base.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | public abstract class SearchOData4Base 4 | { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Persistence/Entities/Search/SearchResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Newtonsoft.Json.Linq; 4 | 5 | namespace Xigadee 6 | { 7 | public class SearchResponse: SearchOData4Base 8 | { 9 | public string Etag { get; set; } 10 | 11 | public Dictionary Fields { get; } = new Dictionary(); 12 | 13 | public List Data { get; set;} 14 | 15 | } 16 | 17 | public class FieldMetadata 18 | { 19 | public string Name { get; set; } 20 | public Type Type { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/Persistence/Interfaces/IRequestOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is implemented by classes that provide repository options. 5 | /// 6 | public interface IRequestOptions 7 | { 8 | /// 9 | /// The repository options. 10 | /// 11 | RepositorySettings Options { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/ServiceHandler/Exceptions/PayloadSerializerCollectionEmptyException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This exception is set if no serializer has been set for the Microservice. 7 | /// Xigadee needs at least on Serializer to function effectively. 8 | /// 9 | /// 10 | public class PayloadSerializerCollectionIsEmptyException:Exception 11 | { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/ServiceHandler/Handlers/Interfaces/IServiceHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is used by classes that are provide services through the use of system handlers. 5 | /// 6 | public interface IServiceHandler 7 | { 8 | /// 9 | /// Gets the handler unique identifier. 10 | /// 11 | string Id { get; } 12 | /// 13 | /// This is the friendly name for the handler. 14 | /// 15 | string Name { get; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Abstractions/_Docs/Introduction.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # Xigadee.Abstractions -------------------------------------------------------------------------------- /Src/Xigadee.Api.Client.DNS2/Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee.Api.Client.DNS2 4 | { 5 | public class Class1 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Client.DNS2/Xigadee.Api.Client.DNS2.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0;net47 5 | false 6 | Xigadee 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Client/Xigadee.Api.Client.licenseheader: -------------------------------------------------------------------------------- 1 | extensions: designer.cs generated.cs 2 | extensions: .cs 3 | #region Copyright 4 | // Copyright Hitachi Consulting 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); 7 | // you may not use this file except in compliance with the License. 8 | // You may obtain a copy of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | // See the License for the specific language governing permissions and 16 | // limitations under the License. 17 | #endregion 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Client/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.DNS2/Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee.Api.DNS2 4 | { 5 | public class Class1 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.DNS2/Xigadee.Api.DNS2.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0;net47 5 | Xigadee 6 | Xigadee.Api 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Server.DNS2/Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee.Api.Server.DNS2 4 | { 5 | public class Class1 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Server.Unity/App_Start/UnityConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Http; 2 | using Unity; 3 | using Unity.WebApi; 4 | 5 | namespace Xigadee.Api.Server.Unity 6 | { 7 | public static class UnityConfig 8 | { 9 | public static void RegisterComponents() 10 | { 11 | var container = new UnityContainer(); 12 | 13 | // register all your components with the container here 14 | // it is NOT necessary to register your controllers 15 | 16 | // e.g. container.RegisterType(); 17 | 18 | GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Src/Xigadee.Api.Server.Unity/Pipeline/Exceptions/UnityWebApiMicroservicePipelineInvalidException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class UnityWebApiMicroservicePipelineInvalidException: Exception 10 | { 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Server.Unity/Pipeline/Interfaces/IPipelineWebApiUnity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using Microsoft.Practices.Unity; 7 | 8 | namespace Xigadee 9 | { 10 | public interface IPipelineWebApiUnity:IPipelineWebApi 11 | { 12 | /// 13 | /// This is the Unity container used within the application. 14 | /// 15 | IUnityContainer Unity { get; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Server.Unity/Xigadee.Api.Server.Unity.licenseheader: -------------------------------------------------------------------------------- 1 | extensions: designer.cs generated.cs 2 | extensions: .cs 3 | #region Copyright 4 | // Copyright Hitachi Consulting 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); 7 | // you may not use this file except in compliance with the License. 8 | // You may obtain a copy of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | // See the License for the specific language governing permissions and 16 | // limitations under the License. 17 | #endregion 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Server.Unity/_docs/Introduction.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # Xigadee.Api.Server.Unity Library 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Hitachi ConsultingCreated by: Paul StancerNuGet PackageHome
17 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Server/Controllers/ApiPersistenceOData4ControllerAsync.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee.Controllers 8 | { 9 | public class ApiPersistenceOData4ControllerAsync 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Server/Owin/AllowNoClientCertificateAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// Indicates that request without a client certificate can be made - allows certain actions 7 | /// to not pass a client certificate when it has been globally specified 8 | /// 9 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] 10 | public sealed class AllowNoClientCertificateAttribute : Attribute 11 | { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Server/Owin/Policy/IJwtTokenVerificationPolicy.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is used by classes that verify the token. 5 | /// 6 | public interface IJwtTokenVerificationPolicy 7 | { 8 | /// 9 | /// This method validates the tokenParameter and returns the token. 10 | /// 11 | /// The token string parameter. 12 | /// 13 | JwtToken Validate(string tokenParameter); 14 | /// 15 | /// This property specifies whether the filter should deny access by default. 16 | /// 17 | bool DenyByDefault { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /Src/Xigadee.Api.Server/Pipeline/Interfaces/IPipelineWebApi.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Web.Http; 7 | 8 | namespace Xigadee 9 | { 10 | public interface IPipelineWebApi:IPipeline 11 | { 12 | HttpConfiguration HttpConfig { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Src/Xigadee.Api.Server/Xigadee.Api.Server.licenseheader: -------------------------------------------------------------------------------- 1 | extensions: designer.cs generated.cs 2 | extensions: .cs 3 | #region Copyright 4 | // Copyright Hitachi Consulting 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); 7 | // you may not use this file except in compliance with the License. 8 | // You may obtain a copy of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | // See the License for the specific language governing permissions and 16 | // limitations under the License. 17 | #endregion 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Api/Xigadee.Api.licenseheader: -------------------------------------------------------------------------------- 1 | extensions: designer.cs generated.cs 2 | extensions: .cs 3 | #region Copyright 4 | // Copyright Hitachi Consulting 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); 7 | // you may not use this file except in compliance with the License. 8 | // You may obtain a copy of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | // See the License for the specific language governing permissions and 16 | // limitations under the License. 17 | #endregion 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Api/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Src/Xigadee.AspNetCore/Interfaces/IPipelineAspNetCore.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Builder; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This pipeline is used to set Xigadee configuration parameters during the AspNet configuration. 7 | /// 8 | /// 9 | public interface IPipelineAspNetCore: IPipeline 10 | { 11 | /// 12 | /// Gets the AspNetCore application. 13 | /// 14 | IApplicationBuilder App { get; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure.ApiManagement/ApimPrincipal.cs: -------------------------------------------------------------------------------- 1 | using System.Security.Principal; 2 | 3 | namespace Xigadee 4 | { 5 | public class ApimPrincipal : GenericPrincipal 6 | { 7 | public ApimPrincipal(IIdentity identity, string[] roles) : base(identity, roles) 8 | { 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure.ApplicationInsights/CommandCorrelationInitializer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Diagnostics.Tracing; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using Microsoft.ApplicationInsights.Extensibility; 9 | 10 | namespace Xigadee 11 | { 12 | public class CommandCorrelationInitializer : ITelemetryInitializer 13 | { 14 | public void Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry telemetry) 15 | { 16 | //telemetry.Context.Operation.Id = CommandContext.CorrelationKey ?? telemetry.Context.Operation.Id; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure.ApplicationInsights/Configuration/ApplicationInsightsConfigShortcuts.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// These are the known shortcuts for Application Insights 5 | /// 6 | public enum ApplicationInsightsConfigShortcuts 7 | { 8 | /// 9 | /// The Application Insights key 10 | /// 11 | ApplicationInsights, 12 | /// 13 | /// The Application Insights logging level key 14 | /// 15 | ApplicationInsightsLoggingLevel, 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure.Base/Helper/AzureStorageEncryption.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This settings determines the specific encryption settings for the data type. 5 | /// 6 | public enum AzureStorageEncryption 7 | { 8 | /// 9 | /// There is no encrpytion on the blob 10 | /// 11 | None, 12 | /// 13 | /// The blob is encrpyted when an encrpytion handler is present. 14 | /// 15 | BlobWhenPresent, 16 | /// 17 | /// The blob is always encrpyted. If no handler is present, an exception will be thrown. 18 | /// 19 | BlobAlwaysWithException 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure.DNS2/Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee.Azure.DNS2 4 | { 5 | public class Class1 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure.DNS2/Xigadee.Azure.DNS2.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure.EventHubs/Communication/AzureEventHubsBridgeAgent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Xigadee 6 | { 7 | /// 8 | /// This agent is used by the Event Hub fabric. 9 | /// 10 | /// 11 | public class AzureEventHubsBridgeAgent : CommunicationBridgeAgent 12 | { 13 | public AzureEventHubsBridgeAgent() 14 | { 15 | 16 | } 17 | 18 | public override IListener GetListener() 19 | { 20 | throw new NotImplementedException(); 21 | } 22 | 23 | public override ISender GetSender() 24 | { 25 | throw new NotImplementedException(); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure.EventHubs/Configuration/AzureStorageEncryption.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This settings determines the specific encryption settings for the data type. 5 | /// 6 | public enum AzureStorageEncryption 7 | { 8 | /// 9 | /// There is no encrpytion on the blob 10 | /// 11 | None, 12 | /// 13 | /// The blob is encrpyted when an encrpytion handler is present. 14 | /// 15 | BlobWhenPresent, 16 | /// 17 | /// The blob is always encrpyted. If no handler is present, an exception will be thrown. 18 | /// 19 | BlobAlwaysWithException 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure.ServiceBus/Communication/NamespaceManager/NamespaceManagerHelper.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Azure.ServiceBus; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace Xigadee 7 | { 8 | public static partial class AzureServiceBusExtensionMethods 9 | { 10 | /// 11 | /// Gets the namespace manager. 12 | /// 13 | /// The connection. 14 | /// 15 | public static NamespaceManagerREST GetNamespaceManager(this ServiceBusConnectionStringBuilder connection) 16 | { 17 | return new NamespaceManagerREST(connection); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure.Storage/Helper/AzureStorageEncryption.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This settings determines the specific encryption settings for the data type. 5 | /// 6 | public enum AzureStorageEncryption 7 | { 8 | /// 9 | /// There is no encrpytion on the blob 10 | /// 11 | None, 12 | /// 13 | /// The blob is encrpyted when an encrpytion handler is present. 14 | /// 15 | BlobWhenPresent, 16 | /// 17 | /// The blob is always encrpyted. If no handler is present, an exception will be thrown. 18 | /// 19 | BlobAlwaysWithException 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure.Storage/Helper/BinaryContainer.cs: -------------------------------------------------------------------------------- 1 | //namespace Xigadee 2 | //{ 3 | // /// 4 | // /// This class holds the binary container. 5 | // /// 6 | // public class AzureStorageBinary 7 | // { 8 | // /// 9 | // /// This is the binary blob. 10 | // /// 11 | // public byte[] Blob { get; set; } 12 | // /// 13 | // /// This is the content type of the entity. 14 | // /// 15 | // public string ContentType { get; set; } = "application/json; charset=utf-8"; 16 | // /// 17 | // /// This is the encoding type of the entity. 18 | // /// 19 | // public string ContentEncoding { get; set; } = null; 20 | // } 21 | //} 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure/ApplicationInsights/CommandCorrelationInitializer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Diagnostics.Tracing; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using Microsoft.ApplicationInsights.Extensibility; 9 | 10 | namespace Xigadee 11 | { 12 | public class CommandCorrelationInitializer : ITelemetryInitializer 13 | { 14 | public void Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry telemetry) 15 | { 16 | //telemetry.Context.Operation.Id = CommandContext.CorrelationKey ?? telemetry.Context.Operation.Id; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure/Communication/ServiceBus/Exceptions/AzureConnectionException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This exception is thrown if Azure components are specified, but the pipeline configuration connection string has not been set. 7 | /// 8 | /// 9 | public class AzureConnectionException: ConfigurationMissingSettingException 10 | { 11 | /// 12 | /// Initializes a new instance of the class. 13 | /// 14 | public AzureConnectionException(string key):base(key, $"A required Azure connection string '{key}' is null or empty. Please check the config settings has been set.") 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure/DataCollection/Storage/Helper/BinaryContainer.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This class holds the binary container. 5 | /// 6 | public class AzureStorageBinary 7 | { 8 | /// 9 | /// This is the binary blob. 10 | /// 11 | public byte[] Blob { get; set; } 12 | /// 13 | /// This is the content type of the entity. 14 | /// 15 | public string ContentType { get; set; } = "application/json; charset=utf-8"; 16 | /// 17 | /// This is the encoding type of the entity. 18 | /// 19 | public string ContentEncoding { get; set; } = null; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Azure/Xigadee.Azure.licenseheader: -------------------------------------------------------------------------------- 1 | extensions: designer.cs generated.cs 2 | extensions: .cs 3 | #region Copyright 4 | // Copyright Hitachi Consulting 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); 7 | // you may not use this file except in compliance with the License. 8 | // You may obtain a copy of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | // See the License for the specific language governing permissions and 16 | // limitations under the License. 17 | #endregion 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Communication/TcpTlsChannel/Helper/MakeCert.txt: -------------------------------------------------------------------------------- 1 | makecert -r -pe -n “CN=localhost” -m 12 -sky exchange -ss my serverCert.cer 2 | 3 | https://www.simple-talk.com/dotnet/.net-framework/tlsssl-and-.net-framework-4.0/ 4 | 5 | https://blogs.msdn.microsoft.com/joncole/2007/06/13/sample-asynchronous-sslstream-clientserver-implementation/ 6 | 7 | https://msdn.microsoft.com/en-us/library/system.net.security.sslstream.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2 -------------------------------------------------------------------------------- /Src/Xigadee.Communication/Xigadee.Communication.licenseheader: -------------------------------------------------------------------------------- 1 | extensions: designer.cs generated.cs 2 | extensions: .cs 3 | #region Copyright 4 | // Copyright Hitachi Consulting 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); 7 | // you may not use this file except in compliance with the License. 8 | // You may obtain a copy of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, 14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | // See the License for the specific language governing permissions and 16 | // limitations under the License. 17 | #endregion 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Communication/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Src/Xigadee.Console.DNS2/Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee.Console.DNS2 4 | { 5 | public class Class1 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Src/Xigadee.Console.DNS2/Xigadee.Console.DNS2.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0;net47 5 | false 6 | Xigadee 7 | 8 | 9 | 10 | bin\Debug\netstandard2.0\Xigadee.Console.DNS2.xml 11 | 12 | 13 | 14 | bin\Debug\net47\Xigadee.Console.DNS2.xml 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Console/ConsoleConfigurationBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Xigadee 5 | { 6 | public abstract class ConsoleConfigurationBase 7 | { 8 | protected ConsoleConfigurationBase(string[] args) 9 | { 10 | Notifications = new List(); 11 | try 12 | { 13 | Switches = args.CommandArgsParse(); 14 | } 15 | catch (Exception) 16 | { 17 | Switches = new Dictionary(); 18 | } 19 | } 20 | 21 | public List Notifications { get; private set; } 22 | 23 | public Dictionary Switches { get; private set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Src/Xigadee.Console/ErrorInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This class holds the error information. 5 | /// 6 | public class ErrorInfo 7 | { 8 | /// 9 | /// This is the error severity level. 10 | /// 11 | public LoggingLevel Type; 12 | /// 13 | /// This is the message to be displayed 14 | /// 15 | public string Message; 16 | /// 17 | /// This is the incremental logging id. 18 | /// 19 | public long LoggingId; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Console/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Console/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/BoundaryLogger/MemoryBoundaryLogger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class MemoryBoundaryLogger: IBoundaryLogger 10 | { 11 | public Guid BatchPoll(int requested, int actual, string channelId) 12 | { 13 | var id = Guid.NewGuid(); 14 | 15 | return id; 16 | } 17 | 18 | public void Log(ChannelDirection direction, TransmissionPayload payload, Exception ex = null, Guid? batchId = default(Guid?)) 19 | { 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Channel/ChannelDirection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This enumeration specifies the direction of the message. 11 | /// 12 | public enum ChannelDirection 13 | { 14 | /// 15 | /// The message has been received from an external source. 16 | /// 17 | Incoming, 18 | /// 19 | /// The message has just been transmitted to an external source. 20 | /// 21 | Outgoing 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Command/EventHandlers/MasterJobStateChange.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This class contains the change information for the command. 11 | /// 12 | public class MasterJobStateChange 13 | { 14 | public MasterJobStateChange(MasterJobState oldState, MasterJobState newState) 15 | { 16 | StateOld = oldState; 17 | StateNew = newState; 18 | } 19 | 20 | public MasterJobState StateOld { get; protected set; } 21 | 22 | public MasterJobState StateNew { get; protected set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Command/Exceptions/OutgoingRequestTransmitException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class OutgoingRequestTransmitException: Exception 10 | { 11 | public OutgoingRequestTransmitException(string message) : base(message) 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Command/Handler/ICommandHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Threading.Tasks; 4 | 5 | namespace Xigadee 6 | { 7 | public interface ICommandHandler 8 | { 9 | void Initialise(MessageFilterWrapper key, Func, Task> action); 10 | 11 | MessageFilterWrapper Key { get; } 12 | 13 | Func, Task> Action { get; } 14 | 15 | Task Execute(TransmissionPayload rq, List rs); 16 | 17 | ICommandHandlerStatistics HandlerStatistics { get; } 18 | } 19 | } -------------------------------------------------------------------------------- /Src/Xigadee.Core/Command/Handler/ICommandHandlerStatistics.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | public interface ICommandHandlerStatistics 6 | { 7 | string LastAccessed { get; set; } 8 | string Name { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /Src/Xigadee.Core/Command/Helper/CommandPolicyHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading; 6 | using System.Threading.Tasks; 7 | 8 | namespace Xigadee 9 | { 10 | public static class CommandPolicyHelper 11 | { 12 | public static CommandSchedule ToCommandSchedule(this CommandPolicy policy, Func execute, string name) 14 | { 15 | return new CommandSchedule(execute 16 | , policy.JobPollSchedule 17 | , name 18 | , policy.JobPollIsLongRunning); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Command/Statistics/MasterJobStatistics.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class MasterJobStatistics 10 | { 11 | public bool Active { get; set; } 12 | public string Status { get; set; } 13 | public string Server { get; set; } 14 | 15 | public List Standbys { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Communication/Interfaces/IMessaging.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface IMessaging 10 | { 11 | /// 12 | /// This is a list of clients for the listener or sender. 13 | /// 14 | IEnumerable Clients { get; } 15 | 16 | /// 17 | /// This is the channel for the messaging agent. 18 | /// 19 | string ChannelId { get; } 20 | 21 | /// 22 | /// This is the boundary logger used by the service. 23 | /// 24 | IBoundaryLogger BoundaryLogger { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Contract/IMessageContract.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | #endregion 8 | namespace Xigadee 9 | { 10 | /// 11 | /// This is the base interface used for message contracts. 12 | /// 13 | public interface IMessageContract 14 | { 15 | 16 | } 17 | 18 | public interface IMessageContractPayload

:IMessageContract 19 | { 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/EventSource/Interfaces/IEventSource.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | #endregion 9 | namespace Xigadee 10 | { 11 | ///

12 | /// This interface is used to provide generic support for event sources for components 13 | /// 14 | public interface IEventSource 15 | { 16 | Task Write(string originatorId, EventSourceEntry entry, DateTime? utcTimeStamp = null, bool sync = false); 17 | 18 | string Name { get; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/EventSource/Interfaces/IEventSourceContainer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface IEventSourceContainer 10 | { 11 | IEventSource EventSource { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Exceptions/ServiceAlreadyStartedException.cs: -------------------------------------------------------------------------------- 1 |  2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace Xigadee 9 | { 10 | public class ServiceAlreadyStartedException:Exception 11 | { 12 | /// 13 | /// Initializes a new instance of the ServiceNotStartedException class. 14 | /// 15 | public ServiceAlreadyStartedException() : base() { } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Exceptions/ServiceNotStartedException.cs: -------------------------------------------------------------------------------- 1 |  2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace Xigadee 9 | { 10 | public class ServiceNotStartedException:Exception 11 | { 12 | /// 13 | /// Initializes a new instance of the ServiceNotStartedException class. 14 | /// 15 | public ServiceNotStartedException() : base() { } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/IStatisticsBase.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | public interface IStatisticsBase 4 | { 5 | StatusBase StatisticsGet(); 6 | } 7 | } -------------------------------------------------------------------------------- /Src/Xigadee.Core/Interfaces/ICache.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface ICacheComponent: IService 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Interfaces/IContainerService.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | #endregion 9 | namespace Xigadee 10 | { 11 | /// 12 | /// This interface is implemented by containers that contains services 13 | /// inside them. This allows the contained services to be started and stopped independently. 14 | /// 15 | public interface IContainerService 16 | { 17 | /// 18 | /// The services to start and stop. 19 | /// 20 | IEnumerable Services { get; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Interfaces/IDataCollection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This is the combined interface that allow specific components to centralise all the logging capabilities in to single class. 11 | /// 12 | public interface IDataCollection: IBoundaryLogger, ILogger, IEventSource, ITelemetry, IServiceOriginator 13 | { 14 | 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Interfaces/IRequireSharedServices.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | #endregion 8 | namespace Xigadee 9 | { 10 | public interface IRequireSharedServices 11 | { 12 | ISharedService SharedServices { get; set; } 13 | } 14 | 15 | public interface ISharedService 16 | { 17 | bool RegisterService(I instance, string serviceName = null) where I : class; 18 | 19 | bool RegisterService(Lazy instance, string serviceName = null) where I : class; 20 | 21 | bool RemoveService() where I : class; 22 | 23 | I GetService() where I : class; 24 | 25 | bool HasService() where I : class; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Interfaces/IServiceEventSource.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Xigadee 5 | { 6 | public interface IServiceEventSource 7 | { 8 | /// 9 | /// This is the event source for the communication layer. 10 | /// 11 | IEventSource EventSource { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Interfaces/IServiceLogger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface IServiceLogger 10 | { 11 | ILoggerExtended Logger { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Interfaces/IServiceOriginator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface IServiceOriginator 10 | { 11 | /// 12 | /// The originator Id for the service. 13 | /// 14 | string OriginatorId { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Interfaces/ISupportedMessageTypes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface ISupportedMessageTypes 10 | { 11 | /// 12 | /// This event is used to signal a change of registered commands. 13 | /// 14 | event EventHandler OnCommandChange; 15 | /// 16 | /// This is the supported message types for the listener. 17 | /// 18 | List SupportedMessages { get; } 19 | } 20 | 21 | public class SupportedMessagesChange 22 | { 23 | public List Messages { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Interfaces/ISupportsMessage.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | public interface ISupportsMessage 4 | { 5 | bool SupportsMessage(string messageType, string operation); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Interfaces/ITelemetry.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface ITelemetry 10 | { 11 | void TrackMetric(string metricName, double value); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Logging/DispatcherLoggerDirection.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | #endregion 8 | namespace Xigadee 9 | { 10 | /// 11 | /// This enum defines when the message is being logged. 12 | /// 13 | public enum DispatcherLoggerDirection 14 | { 15 | /// 16 | /// The message was logged as it entered the dispatcher. 17 | /// 18 | Incoming, 19 | /// 20 | /// The message was logged as it left the dispatcher. 21 | /// 22 | Outgoing 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Logging/Interfaces/ILogStoreName.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface ILogStoreName 10 | { 11 | string StorageId { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Logging/Interfaces/ILogger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | 4 | namespace Xigadee 5 | { 6 | /// 7 | /// This is the root logger interface to support async logging support through the framework. 8 | /// 9 | public interface ILogger 10 | { 11 | /// 12 | /// This method asyncronously logs an event. 13 | /// 14 | /// The event to log. 15 | /// This is an async task. 16 | Task Log(LogEvent logEvent); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Logging/Interfaces/ILoggerExtended.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface ILoggerExtended : ILogger 10 | { 11 | void LogException(Exception ex); 12 | void LogException(string message, Exception ex); 13 | void LogMessage(string message); 14 | void LogMessage(LoggingLevel level, string message); 15 | void LogMessage(LoggingLevel level, string message, string category); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Logging/LoggingLevel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | 4 | namespace Xigadee 5 | { 6 | public enum LoggingLevel 7 | { 8 | Trace = 10, 9 | Info = 11, 10 | Status = 12, 11 | Warning = 13, 12 | Error = 14, 13 | Fatal = 15 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Logging/LoggingStatistics.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class LoggingStatistics:MessagingStatistics 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Microservice/Configuration/IEnvironmentConfiguration.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This inteface is used by extension method that provide shortcuts for specific key/value pairs 7 | /// from the environment configuration. 8 | /// 9 | public interface IEnvironmentConfiguration 10 | { 11 | Func Resolver { get; set; } 12 | 13 | bool ResolverFirst { get; set; } 14 | 15 | string PlatformOrConfigCache(string key, string defaultValue = null); 16 | 17 | bool PlatformOrConfigCacheBool(string key, string defaultValue = null); 18 | 19 | int PlatformOrConfigCacheInt(string key, int? defaultValue = default(int?)); 20 | } 21 | } -------------------------------------------------------------------------------- /Src/Xigadee.Core/Microservice/Events.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class ProcessRequestUnresolvedEventArgs: MicroserviceEventArgs 10 | { 11 | public TransmissionPayload Payload { get; set; } 12 | } 13 | 14 | public class ProcessRequestErrorEventArgs: ProcessRequestUnresolvedEventArgs 15 | { 16 | public Exception Ex { get; set; } 17 | } 18 | 19 | /// 20 | /// This is the base event for microservice events. 21 | /// 22 | public class MicroserviceEventArgs: EventArgs 23 | { 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Microservice/MicroserviceStatusChangeException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class MicroserviceStatusChangeException: Exception 10 | { 11 | public MicroserviceStatusChangeException(string message, Exception ex):base(message, ex) 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Commands/EntityChange/EntityChangeOrchestrationCommandBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class EntityChangeOrchestrationCommandBase: OrchestrationCommandBase 10 | where O : OrchestrationFlowComponentBase 11 | where S : OrchestrationCommandStatistics, new() 12 | where P : OrchestrationCommandPolicy, new() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Commands/Input/InputOrchestrationCommandBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class InputOrchestrationCommandBase: OrchestrationCommandBase 10 | where O : OrchestrationFlowComponentBase 11 | where S : OrchestrationCommandStatistics, new() 12 | where P : OrchestrationCommandPolicy, new() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Commands/Output/OutputOrchestrationCommandBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class OutputOrchestrationCommandBase: OrchestrationCommandBase 10 | where O : OrchestrationFlowComponentBase 11 | where S : OrchestrationCommandStatistics, new() 12 | where P : OrchestrationCommandPolicy, new() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Commands/Schedule/ScheduleOrchestrationCommandBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class ScheduleOrchestrationCommandBase: OrchestrationCommandBase 10 | where O : OrchestrationFlowComponentBase 11 | where S : OrchestrationCommandStatistics, new() 12 | where P : OrchestrationCommandPolicy, new() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Commands/Transform/TransformOrchestrationCommandBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class TransformOrchestrationCommandBase: OrchestrationCommandBase 10 | where O : OrchestrationFlowComponentBase 11 | where S : OrchestrationCommandStatistics, new() 12 | where P : OrchestrationCommandPolicy, new() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Commands/Validate/ValidateOrchestrationCommandBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class ValidateOrchestrationCommandBase: OrchestrationCommandBase 10 | where O : OrchestrationFlowComponentBase 11 | where S : OrchestrationCommandStatistics, new() 12 | where P : OrchestrationCommandPolicy, new() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Context/OrchestrationContextState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public static class OrchestrationContextStateHelper 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Flow/Components/EntityChange/EntityChangeBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class EntityChangeBase: OrchestrationFlowComponentBase 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Flow/Components/Input/InputBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class InputBase: OrchestrationFlowComponentBase 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Flow/Components/Output/OutputBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class OutputBase: OrchestrationFlowComponentBase 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Flow/Components/Schedule/ScheduleBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class ScheduleBase: OrchestrationFlowComponentBase 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Flow/Components/Transform/TransformBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class TransformBase: OrchestrationFlowComponentBase 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Flow/Components/Validate/ValidationBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class ValidationBase: OrchestrationFlowComponentBase 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Flow/OrchestrationFlowPath.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class OrchestrationFlowPath 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/Flow/OrchestrationFlowValidator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class OrchestrationFlowValidator 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/OrchestrationCommandPolicy.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This is the base policy class that is used to configure the command. 11 | /// 12 | public class OrchestrationCommandPolicy: CommandPolicy 13 | { 14 | 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Orchestration/OrchestrationCommandStatistics.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This is the base class that is used to record the state of the orchestration command. 11 | /// 12 | public class OrchestrationCommandStatistics:CommandStatistics 13 | { 14 | 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Cache/EntityCacheAsyncPolicy.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class EntityCacheAsyncPolicy:CommandPolicy 10 | { 11 | public EntityCacheAsyncPolicy() 12 | { 13 | } 14 | 15 | public bool EntityChangeTrackEvents { get; set; } 16 | 17 | public string EntityChangeEventsChannel { get; set; } 18 | 19 | public int EntityCacheLimit { get; set; } = 200000; 20 | 21 | public TimeSpan EntityDefaultTTL { get; set; } = TimeSpan.FromDays(2); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Cache/EntityCacheChangeEventArgs.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Threading.Tasks; 5 | #endregion 6 | namespace Xigadee 7 | { 8 | public class EntityCacheChangeEventArgs: EventArgs 9 | { 10 | 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Cache/EntityCacheHolderState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public enum EntityCacheHolderState 10 | { 11 | Start, 12 | Requesting, 13 | Completed, 14 | Cancelled 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Cache/EntityCacheResult.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Threading.Tasks; 5 | #endregion 6 | namespace Xigadee 7 | { 8 | public class EntityCacheResult 9 | { 10 | public bool Success { get; set; } 11 | 12 | public bool Exists { get; set; } 13 | 14 | public E Entity { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Cache/IEntityCacheAsync.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Threading.Tasks; 5 | #endregion 6 | namespace Xigadee 7 | { 8 | /// 9 | /// This is the interface that is used to share cached content. 10 | /// 11 | /// The key type. 12 | /// The cache entity. 13 | public interface IEntityCacheAsync: ICacheComponent 14 | where K : IEquatable 15 | { 16 | //event EventHandler Changed; 17 | 18 | Task ContainsKey(K key); 19 | 20 | Task> TryGetEntity(K key); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Client/Base/PersistenceInitiatorPolicy.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This class is used for persistence based shortcuts. 11 | /// 12 | public class PersistenceInitiatorPolicy: CommandPolicy 13 | { 14 | public override bool OutgoingRequestsEnabled { get; set; } = true; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Client/Base/PersistenceInitiatorStatistics.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This is the statistics class used to record the status of the command. 11 | /// 12 | public class PersistenceInitiatorStatistics: CommandStatistics 13 | { 14 | #region Constructor 15 | /// 16 | /// This is the default constructor. 17 | /// 18 | public PersistenceInitiatorStatistics() : base() 19 | { 20 | } 21 | #endregion 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/ExtensionMethods.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public static class PersistenceExtensionMethods 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Interfaces/IPersistenceMessageHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is used to consistently reference the persistence handler irrespective 5 | /// of the underlying implementation. 6 | /// 7 | public interface IPersistenceMessageHandler: IStatisticsBase 8 | { 9 | string ChannelId { get; set; } 10 | 11 | string EntityType { get; } 12 | 13 | } 14 | } -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Interfaces/IPersistenceMessageInitiator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface IPersistenceMessageInitiator: IStatisticsBase 10 | { 11 | PersistenceInitiatorStatistics Statistics { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Interfaces/IPersistenceSharedService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface IPersistenceSharedService: IStatisticsBase 10 | { 11 | PersistenceInitiatorStatistics Statistics { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Policy/CircuitBreakerPolicy.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | public class CircuitBreakerPolicy: PolicyBase 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Server/DocumentDb/DocumentDbPersistenceCommandPolicy.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This class provides specific directives for communicating with the DocumentDb server. 11 | /// 12 | public class DocumentDbPersistenceCommandPolicy: PersistenceCommandPolicy 13 | { 14 | 15 | public bool AutoCreateDatabase { get; set; } = true; 16 | 17 | public bool AutoCreateCollections { get; set; } = true; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Server/DocumentDb/Helper/SearchParameter.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | #endregion 3 | namespace Xigadee 4 | { 5 | public class SearchParameter 6 | { 7 | public string Name { get; set; } 8 | 9 | public string Value { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Server/IPersistenceRequestHolder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | #region using 3 | #endregion 4 | namespace Xigadee 5 | { 6 | public interface IPersistenceRequestHolder 7 | { 8 | Guid ProfileId { get; } 9 | 10 | int Start { get; } 11 | 12 | string Debug { get; } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Server/IPersistenceResponseHolder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IMGroup.Microservice 4 | { 5 | public interface IPersistenceResponseHolder 6 | { 7 | Exception Ex { get; set; } 8 | 9 | bool IsSuccess { get; set; } 10 | 11 | bool IsTimeout { get; set; } 12 | 13 | bool IsThrottled { get; set; } 14 | 15 | int StatusCode { get; set; } 16 | 17 | byte[] Content { get; set; } 18 | 19 | string VersionId { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Server/JSON/JsonResponseHolder.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | using IMGroup.Core; 3 | using IMGroup.Core.Persistence; 4 | using IMGroup.Core.Persistence.DocumentDb; 5 | using Newtonsoft.Json; 6 | using Newtonsoft.Json.Linq; 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Text; 11 | using System.Threading.Tasks; 12 | #endregion 13 | namespace IMGroup.Microservice 14 | { 15 | public class JsonResponseHolder:RepositoryHolder, IPersistenceResponseHolder 16 | { 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Server/Memory/BehaviourRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class MemoryPersistenceDirectiveRequest: IEquatable 10 | { 11 | public Guid Id { get; set; } = Guid.NewGuid(); 12 | 13 | public bool Equals(MemoryPersistenceDirectiveRequest other) 14 | { 15 | return other.Id == Id; 16 | } 17 | } 18 | 19 | public class MemoryPersistenceDirectiveResponse 20 | { 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Persistence/Server/ResponseHolderBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace IMGroup.Microservice 8 | { 9 | public class ResponseHolderBase: IPersistenceResponseHolder 10 | { 11 | public byte[] Content { get; set; } 12 | 13 | 14 | public Exception Ex { get; set; } 15 | 16 | 17 | public bool IsSuccess { get; set; } 18 | 19 | 20 | public bool IsThrottled { get; set; } 21 | 22 | 23 | public bool IsTimeout { get; set; } 24 | 25 | 26 | public int StatusCode { get; set; } 27 | 28 | 29 | public string VersionId { get; set; } 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Pipeline/Exceptions/ChannelIdMismatchException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class ChannelIdMismatchException: ChannelPartitionConfigBaseException 10 | { 11 | public ChannelIdMismatchException(string channelId, ChannelDirection direction, string mismatchId) : base(channelId) 12 | { 13 | MismatchChannelId = mismatchId; 14 | Direction = direction; 15 | } 16 | 17 | public string MismatchChannelId { get; } 18 | 19 | public ChannelDirection Direction { get; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Pipeline/Exceptions/ChannelInternalOnlyException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class ChannelInternalOnlyException: ChannelPartitionConfigBaseException 10 | { 11 | public ChannelInternalOnlyException(string channelId, ChannelDirection direction) :base(channelId) 12 | { 13 | Direction = direction; 14 | } 15 | 16 | public ChannelDirection Direction { get; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Pipeline/Exceptions/ChannelPartitionConfigBaseException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class ChannelPartitionConfigBaseException:Exception 10 | { 11 | public ChannelPartitionConfigBaseException(string channelId) 12 | { 13 | ChannelId = channelId; 14 | } 15 | 16 | public string ChannelId { get; } 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Pipeline/Exceptions/ChannelPartitionConfigCastException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class ChannelPartitionConfigCastException: ChannelPartitionConfigBaseException 10 | { 11 | public ChannelPartitionConfigCastException(string channelId):base(channelId) 12 | { 13 | 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Pipeline/Exceptions/ChannelPartitionConfigExistsException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class ChannelPartitionConfigExistsException: ChannelPartitionConfigBaseException 10 | { 11 | public ChannelPartitionConfigExistsException(string channelId, int channelPriority) : base(channelId) 12 | { 13 | ChannelPriority = channelPriority; 14 | } 15 | 16 | public int ChannelPriority { get; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Pipeline/Exceptions/SharedServiceRegistrationException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This exception is thrown when the registration of a shared service fails. 11 | /// 12 | public class SharedServiceRegistrationException: Exception 13 | { 14 | public SharedServiceRegistrationException(string typeName, string serviceName) 15 | { 16 | TypeName = typeName; 17 | ServiceName = serviceName; 18 | } 19 | 20 | public string TypeName { get; } 21 | 22 | public string ServiceName { get; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Pipeline/Extensions/CallOut.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public static partial class CorePipelineExtensions 10 | { 11 | public static MicroservicePipeline CallOut(this MicroservicePipeline pipe, Action method) 12 | { 13 | method(pipe); 14 | 15 | return pipe; 16 | } 17 | 18 | public static P CallOut

(this P pipe, Action

method) 19 | where P : ChannelPipelineBase 20 | { 21 | method(pipe); 22 | 23 | return pipe; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Pipeline/Extensions/Revert.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public static partial class CorePipelineExtensions 10 | { 11 | public static MicroservicePipeline Revert(this C cpipe, Action assign = null) 12 | where C : ChannelPipelineBase 13 | { 14 | assign?.Invoke(cpipe); 15 | 16 | return cpipe.Pipeline; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Pipeline/Extensions/Security.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public static partial class CorePipelineExtensions 10 | { 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Pipeline/Extensions/Start.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public static partial class CorePipelineExtensions 10 | { 11 | public static void Start(this MicroservicePipeline pipeline) 12 | { 13 | pipeline.Service.Start(); 14 | } 15 | 16 | public static void Stop(this MicroservicePipeline pipeline) 17 | { 18 | pipeline.Service.Stop(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Pipeline/Extensions/To.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee.Pipeline.Extensions 8 | { 9 | public static partial class CorePipelineExtensions 10 | { 11 | public static IMicroservice ToMicroservice(this MicroservicePipeline pipeline) 12 | { 13 | return pipeline.Service; 14 | } 15 | 16 | public static IEnvironmentConfiguration ToConfiguration(this MicroservicePipeline pipeline) 17 | { 18 | return pipeline.Configuration; 19 | } 20 | 21 | public static Channel ToChannel(this ChannelPipelineIncoming cpipe) 22 | { 23 | return cpipe.Channel; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/PolicyBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | ///

10 | /// This is the base class for Microservice based policy settings. 11 | /// 12 | public abstract class PolicyBase 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/ResourceTracker/CircuitBreakerBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This abstract class is used to implement circuit breaker functionality. 7 | /// 8 | public abstract class CircuitBreakerAlgorithmBase 9 | { 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/ResourceTracker/CircuitBreakerState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | [Flags()] 6 | public enum CircuitBreakerState: int 7 | { 8 | Open = 1, 9 | Closed = 2, 10 | HalfOpen = 3 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/ResourceTracker/Interfaces/IResourceBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface IResourceBase 10 | { 11 | Guid ResourceId { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/ResourceTracker/Interfaces/IResourceConsumer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface IResourceConsumer: IResourceBase 10 | { 11 | Guid Start(string group, Guid requestId); 12 | 13 | void End(Guid profileId, int start, ResourceRequestResult result); 14 | 15 | void Retry(Guid profileId, int retryStart, ResourceRetryReason reason); 16 | 17 | void Exception(Guid profileId, int retryStart); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/ResourceTracker/Interfaces/IResourceRequestRateLimiter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface IResourceRequestRateLimiter: IResourceBase 10 | { 11 | /// 12 | /// This is the rate that the request process should adjust as a ratio 1 is the default without limiting. 13 | /// 0 is when the circuit breaker. 14 | /// 15 | double RateLimitAdjustmentPercentage { get; } 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/ResourceTracker/Interfaces/IResourceTracker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface IResourceTracker 10 | { 11 | IResourceConsumer RegisterConsumer(string name, ResourceProfile profile); 12 | 13 | IResourceRequestRateLimiter RegisterRequestRateLimiter(string name, IEnumerable profiles); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/ResourceTracker/Interfaces/ResourceRequestResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public enum ResourceRequestResult 10 | { 11 | Success, 12 | Exception, 13 | TaskCancelled, 14 | RetryExceeded, 15 | Unknown 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/ResourceTracker/Interfaces/ResourceRetryReason.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public enum ResourceRetryReason 10 | { 11 | Throttle, 12 | Timeout, 13 | Exception, 14 | Other 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/ResourceTracker/ResourceBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public abstract class ResourceBase: IResourceBase 10 | { 11 | private Guid mId = Guid.NewGuid(); 12 | protected string mName; 13 | 14 | public Guid ResourceId 15 | { 16 | get 17 | { 18 | return mId; 19 | } 20 | } 21 | 22 | public string Name 23 | { 24 | get{ return mName; } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/ResourceTracker/ResourceProfile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace Xigadee 9 | { 10 | [DebuggerDisplay("ResourceProfile: {Id}")] 11 | public class ResourceProfile 12 | { 13 | public ResourceProfile(string id) 14 | { 15 | Id = id; 16 | } 17 | /// 18 | /// This is the Id of the resource profile. 19 | /// 20 | public string Id { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Security/SecurityGatekeeperBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public interface ISecurityGatekeeper 10 | { 11 | 12 | } 13 | 14 | public class SecurityGatekeeperBase: ISecurityGatekeeper 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Statistics/CollectionStatistics.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class CollectionStatistics: StatusBase, ICollectionStatistics 10 | { 11 | public virtual int ItemCount { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Core/Statistics/ICollectionStatistics.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | public interface ICollectionStatistics 4 | { 5 | int ItemCount { get; set; } 6 | } 7 | } -------------------------------------------------------------------------------- /Src/Xigadee.Core/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Boundary/Poll.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE [Boundary].[Poll] 2 | ( 3 | [Id] BIGINT NOT NULL IDENTITY(1,1) PRIMARY KEY, 4 | [TimeStamp] DATETIME2 NOT NULL DEFAULT(SYSUTCDATETIME()), 5 | [ServiceName] VARCHAR(50) NOT NULL, 6 | [ServiceId] VARCHAR(50) NOT NULL, 7 | [BatchId] UNIQUEIDENTIFIER NOT NULL, 8 | 9 | [Requested] INT NOT NULL, 10 | [Returned] INT NOT NULL, 11 | [ChannelId] SMALLINT NULL, 12 | ) 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Core/Batch.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE [Core].[Batch] 2 | ( 3 | [Id] INT NOT NULL PRIMARY KEY IDENTITY(1,1) 4 | ,[BatchId] UNIQUEIDENTIFIER NOT NULL 5 | ,[DateFirstRecorded] DATETIME NOT NULL DEFAULT(GETUTCDATE()) 6 | ) 7 | GO 8 | CREATE UNIQUE INDEX [IX_Batch_BatchId] ON [Core].[Batch] ([BatchId]) INCLUDE ([Id]) 9 | GO 10 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Core/Channel.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE [Core].[Channel] 2 | ( 3 | [Id] SMALLINT NOT NULL PRIMARY KEY IDENTITY(1,1) 4 | ,[Name] VARCHAR(250) NOT NULL 5 | ,[DateFirstRecorded] DATETIME NOT NULL DEFAULT(GETUTCDATE()) 6 | ) 7 | GO 8 | CREATE UNIQUE INDEX [IX_Channel_Id] ON [Core].[Channel] ([Name]) INCLUDE ([Id]) 9 | GO -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Core/Helper/Resolve_Batch.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [Core].[Resolve_Batch] 2 | @Name UNIQUEIDENTIFIER 3 | ,@Id INT OUTPUT 4 | AS 5 | BEGIN 6 | 7 | IF (@Name IS NULL) 8 | RETURN 200; 9 | 10 | SELECT @Id = [Id] FROM [Core].[Batch] WHERE [BatchId]=@Name 11 | 12 | IF (@Id IS NULL) 13 | BEGIN 14 | INSERT INTO [Core].[Batch] ([BatchId]) VALUES (@Name) 15 | 16 | SELECT @Id = CAST(SCOPE_IDENTITY() AS INT); 17 | END 18 | 19 | END 20 | 21 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Core/Service.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE [Core].[Service] 2 | ( 3 | [Id] SMALLINT NOT NULL PRIMARY KEY IDENTITY(1,1) 4 | ,[Name] VARCHAR(50) NOT NULL 5 | ) 6 | GO 7 | CREATE UNIQUE INDEX [IX_Service_Id] ON [Core].[Service] ([Name]) INCLUDE ([Id]) 8 | GO -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Datapump/Entity.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE [Datapump].[Entity] 2 | ( 3 | [Id] BIGINT NOT NULL PRIMARY KEY IDENTITY(1,1) 4 | ,[EntityType] SMALLINT NOT NULL 5 | ,[Key] NVARCHAR(255) NOT NULL 6 | ,[DateFirstRecorded] DATETIME NOT NULL DEFAULT(GETUTCDATE()) 7 | CONSTRAINT [FK_Entity_ToEntityType] FOREIGN KEY ([EntityType]) REFERENCES [Datapump].[EntityType]([Id]) 8 | ) 9 | GO 10 | CREATE UNIQUE INDEX [IX_Entity_Unique] ON [Datapump].[Entity] ([EntityType],[Key]) 11 | GO 12 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Datapump/EntityType.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE [Datapump].[EntityType] 2 | ( 3 | [Id] SMALLINT NOT NULL PRIMARY KEY IDENTITY(1,1) 4 | ,[Name] VARCHAR(250) NOT NULL 5 | ) 6 | GO 7 | CREATE UNIQUE INDEX [IX_EntityType_Name] ON [Datapump].[EntityType]([Name]) INCLUDE ([Id]) 8 | GO -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Datapump/EventSourceData.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE [Datapump].[EventSourceData] 2 | ( 3 | [Id] BIGINT NOT NULL PRIMARY KEY IDENTITY(1,1) 4 | ,[IdParent] BIGINT NOT NULL 5 | ,[CanRemove] BIT NOT NULL DEFAULT 0 6 | ,[Data] NVARCHAR(MAX) NOT NULL 7 | CONSTRAINT [FK_EventSourceData_ToEventSource] FOREIGN KEY ([IdParent]) REFERENCES [Datapump].[EventSource]([Id]) 8 | ) 9 | GO 10 | 11 | CREATE UNIQUE INDEX [IX_EventSourceData_Parent] ON [Datapump].[EventSourceData] ([IdParent]) 12 | 13 | GO 14 | 15 | CREATE INDEX [IX_EventSourceData_CanRemove] ON [Datapump].[EventSourceData] ([CanRemove]) INCLUDE ([Id]) WHERE [CanRemove]=1 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Datapump/EventType.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE [Datapump].[EventType] 2 | ( 3 | [Id] TINYINT NOT NULL PRIMARY KEY IDENTITY(1,1) 4 | ,[Name] VARCHAR(50) NOT NULL 5 | ) 6 | GO 7 | CREATE UNIQUE INDEX [IX_EventType_Name] ON [Datapump].[EventType]([Name]) INCLUDE ([Id]) 8 | GO 9 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Datapump/Helper/Resolve_Entity.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [Datapump].[Resolve_Entity] 2 | @EntityType VARCHAR(250) 3 | ,@Key VARCHAR(250) 4 | ,@EntityId BIGINT OUTPUT 5 | ,@EntityTypeId SMALLINT OUTPUT 6 | AS 7 | BEGIN 8 | 9 | EXEC [Datapump].[Resolve_EntityType] @EntityType, @EntityTypeId OUTPUT 10 | 11 | SELECT @EntityId = [Id] FROM [Datapump].[Entity] WHERE [EntityType]=@EntityTypeId AND [Key]=@Key ; 12 | 13 | IF (@EntityId IS NULL) 14 | BEGIN 15 | INSERT INTO [Datapump].[Entity] ([EntityType], [Key]) VALUES (@EntityTypeId, @Key) 16 | 17 | SELECT @EntityId = CAST(SCOPE_IDENTITY() AS BIGINT); 18 | END 19 | END 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Datapump/Helper/Resolve_EntityType.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [Datapump].[Resolve_EntityType] 2 | @Name VARCHAR(250) 3 | ,@Id SMALLINT OUTPUT 4 | AS 5 | BEGIN 6 | 7 | SELECT @Id = [Id] FROM [Datapump].[EntityType] WHERE [Name]=@Name 8 | 9 | IF (@Id IS NULL) 10 | BEGIN 11 | INSERT INTO [Datapump].[EntityType] ([Name]) VALUES (@Name) 12 | 13 | SELECT @Id = CAST(SCOPE_IDENTITY() AS SMALLINT); 14 | END 15 | END 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Datapump/Helper/Resolve_EventType.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [Datapump].[Resolve_EventType] 2 | @Name VARCHAR(50) 3 | ,@Id SMALLINT OUTPUT 4 | AS 5 | BEGIN 6 | 7 | SELECT @Id = [Id] FROM [Datapump].[EventType] WHERE [Name]=@Name 8 | 9 | IF (@Id IS NULL) 10 | BEGIN 11 | INSERT INTO [Datapump].[EventType] ([Name]) VALUES (@Name) 12 | 13 | SELECT @Id = CAST(SCOPE_IDENTITY() AS SMALLINT); 14 | END 15 | END 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Datapump/Helper/Resolve_Instance.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE [Datapump].[Resolve_Instance] 2 | @Name NVARCHAR(250) 3 | ,@Id INT OUTPUT 4 | AS 5 | BEGIN 6 | 7 | SELECT @Id = [Id] FROM [Datapump].[Instance] WHERE [Name]=@Name 8 | 9 | IF (@Id IS NULL) 10 | BEGIN 11 | INSERT INTO [Datapump].[Instance] ([Name]) VALUES (@Name) 12 | 13 | SELECT @Id = CAST(SCOPE_IDENTITY() AS INT); 14 | END 15 | END 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Datapump/Instance.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE [Datapump].[Instance] 2 | ( 3 | [Id] INT NOT NULL PRIMARY KEY IDENTITY(1,1) 4 | ,[Name] NVARCHAR(250) NOT NULL 5 | ,[DateFirstRecorded] DATETIME NOT NULL DEFAULT(GETUTCDATE()) 6 | ) 7 | GO 8 | CREATE UNIQUE INDEX [IX_Instance_Name] ON [Datapump].[Instance] ([Name]) INCLUDE ([Id]) 9 | GO 10 | -------------------------------------------------------------------------------- /Src/Xigadee.Datapump.Sql/Schemas.sql: -------------------------------------------------------------------------------- 1 | CREATE SCHEMA [External] 2 | GO 3 | CREATE SCHEMA [DataPump] 4 | GO 5 | CREATE SCHEMA [Boundary] 6 | GO 7 | CREATE SCHEMA [Core] 8 | GO 9 | -------------------------------------------------------------------------------- /Src/Xigadee.Framework/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Src/Xigadee.Framework/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Src/Xigadee.Helper2/Placeholder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace IMGroup.Core 8 | { 9 | class Placeholder 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Command/Command/Attributes/CommandContract/PayloadInAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This attribute can be used to specify the payload parameter for a specific command definition. 11 | /// 12 | [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false)] 13 | public class PayloadInAttribute:Attribute 14 | { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Command/Command/Attributes/CommandContract/PayloadOutAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This attribute can be used to specify a payload out parameter for a request/response command. 11 | /// 12 | [AttributeUsage(AttributeTargets.ReturnValue | AttributeTargets.Parameter, AllowMultiple = false)] 13 | public class PayloadOutAttribute: Attribute 14 | { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Command/Command/Exceptions/OutgoingRequestsNotEnabledException.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This exception is thrown when a command attempts to make an outgoing request, but this 5 | /// capability has not been enabled in the policy settings. 6 | /// 7 | public class OutgoingRequestsNotEnabledException:CommandException 8 | { 9 | /// 10 | /// This is the default constructor. 11 | /// 12 | public OutgoingRequestsNotEnabledException():base("Outgoing requests are not enabled. Please set the command policy 'OutgoingRequestsEnabled' to true.") 13 | { 14 | 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Command/Command/Harness/CommandHarnessTrafficDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This is the direction of the command request. 5 | /// 6 | public enum CommandHarnessTrafficDirection 7 | { 8 | /// 9 | /// The request was generated externally in to the command. 10 | /// 11 | Request, 12 | /// 13 | /// The request was generated by the command in response to a request 14 | /// 15 | Response, 16 | /// 17 | /// The request was generated in the command and is outgoing. 18 | /// 19 | Outgoing 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Command/Command/Helper/MasterJobCommunicationDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This is the message direction. 5 | /// 6 | public enum MasterJobCommunicationDirection 7 | { 8 | /// 9 | /// The message originated from an external source 10 | /// 11 | Incoming, 12 | /// 13 | /// The message originated internally. 14 | /// 15 | Outgoing 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Command/CommandContainer/CommandContainerStatistics.cs: -------------------------------------------------------------------------------- 1 | #region using 2 | using System; 3 | using System.Collections.Concurrent; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | #endregion 10 | namespace Xigadee 11 | { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Command/CommandPersistence/Notification/EntityChangeNotificationCommand.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This command transmits command change notifications, and can also listen for changes and notify subscribing services. 11 | /// 12 | public class EntityChangeNotificationCommand:CommandBase 13 | { 14 | public EntityChangeNotificationCommand() 15 | { 16 | 17 | } 18 | 19 | public void Publish(EntityChangeEventArgs change) 20 | { 21 | 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Command/CommandPersistence/Notification/EntityChangeNotificationPolicy.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class EntityChangeNotificationPolicy:CommandPolicy 10 | { 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Command/CommandPersistence/Notification/EntityChangeNotificationStatistics.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class EntityChangeNotificationStatistics:CommandStatistics 10 | { 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Command/_docs/CommandHarness.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # The Command Harness 9 | The command harness is a test harness that allows you to test your command without the need to spin up a full Microservice environment. 10 | 11 | 12 | 13 | ## Using the Command Harness 14 | 15 | 16 | 17 | 18 | 19 |
Created by: Paul StancerNuGet PackageHome
20 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Command/_docs/CommandPersistence.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # The Command Persistence 9 | The command harness is a test harness that allows you to test your command without the need to spin up a full Microservice environment. 10 | 11 | 12 | 13 | ## Using the Command Harness 14 | 15 | 16 | 17 | 18 | 19 |
Created by: Paul StancerNuGet PackageHome
20 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Communication/Agent/CommunicationAgentCapabilities.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This enumeration describes the capabilities of the communication agent. 7 | /// 8 | [Flags] 9 | public enum CommunicationAgentCapabilities 10 | { 11 | /// 12 | /// The agent supports a listener mode to receive messages. 13 | /// 14 | Listener = 1, 15 | /// 16 | /// The agent supports a sender mode to transmit messages. 17 | /// 18 | Sender = 2, 19 | /// 20 | /// The agent is bidirectional. 21 | /// 22 | Bidirectional = 3 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Communication/Agent/CommunicationAgentHarness.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Xigadee 6 | { 7 | public class CommunicationAgentHarness 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Communication/Agent/CommunicationAgentStatistics.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Xigadee 6 | { 7 | /// 8 | /// This is the base statistics class for the Communication Agent. 9 | /// 10 | /// 11 | public class CommunicationAgentStatistics: StatusBase 12 | { 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Communication/Agent/Udp/Interfaces/UdpTransmissionMode.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This is the mode for the UDPHelper class. 5 | /// 6 | public enum UdpTransmissionMode 7 | { 8 | /// 9 | /// UDP is in unicast mode. 10 | /// 11 | Unicast, 12 | /// 13 | /// UDP is in broadcast mode. 14 | /// 15 | Broadcast, 16 | /// 17 | /// UDP is in multicast mode. 18 | /// 19 | Multicast 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Communication/Exceptions/BridgeAgentModeNotSetException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Xigadee 6 | { 7 | /// 8 | /// This exception is throw when the mode is set to NotSet. 9 | /// 10 | /// 11 | public class BridgeAgentModeNotSetException:Exception 12 | { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Communication/Exceptions/ClientsUndefinedMessagingException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Xigadee 6 | { 7 | /// 8 | /// This exception is used during start up when validating the messaging setting 9 | /// 10 | public class ClientsUndefinedMessagingException: MessagingException 11 | { 12 | /// 13 | /// This is the default constructor. 14 | /// 15 | /// The error message. 16 | public ClientsUndefinedMessagingException(string message) : base(message) 17 | { 18 | } 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Communication/FabricBridge/Manual/Fabric/ManualFabricConnectionMode.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This enumeration contains the supported modes for a manual connection. 5 | /// 6 | public enum ManualFabricConnectionMode 7 | { 8 | /// 9 | /// The queue 1-1 mode. 10 | /// 11 | Queue, 12 | /// 13 | /// The subscription 1-to-many receive mode. 14 | /// 15 | Subscription, 16 | /// 17 | /// The transmit only mode. 18 | /// 19 | Transmit 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Communication/FabricBridge/TcpTlsChannel/Exception/TcpTlsChannelConfigurationException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public class TcpTlsChannelConfigurationException : Exception 10 | { 11 | public TcpTlsChannelConfigurationException(string message):base(message) 12 | { 13 | 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Communication/FabricBridge/TcpTlsChannel/Helper/MakeCert.txt: -------------------------------------------------------------------------------- 1 | makecert -r -pe -n “CN=localhost” -m 12 -sky exchange -ss my serverCert.cer 2 | 3 | https://www.simple-talk.com/dotnet/.net-framework/tlsssl-and-.net-framework-4.0/ 4 | 5 | https://blogs.msdn.microsoft.com/joncole/2007/06/13/sample-asynchronous-sslstream-clientserver-implementation/ 6 | 7 | https://msdn.microsoft.com/en-us/library/system.net.security.sslstream.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2 -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Communication/FabricBridge/TcpTlsChannel/Pipeline/ConfigureTcpTlsMessagingHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | public static class ConfigureTcpTlsMessagingHelper 10 | { 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Communication/Interfaces/IMessagingService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This is the root interface for services that provide messaging services. 7 | /// 8 | /// The partition type. 9 | /// 10 | public interface IMessagingService : IRequireDataCollector 11 | { 12 | /// 13 | /// Gets or sets the channel identifier. 14 | /// 15 | string ChannelId { get; set; } 16 | 17 | } 18 | } -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Components/Harness/ServiceHarnessSerializationContainer.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This is the stub serialization container. 5 | /// 6 | public class ServiceHarnessServiceHandlerContainer: ServiceHandlerContainer 7 | { 8 | /// 9 | /// This override adds the Json serializer by default. 10 | /// 11 | protected override void StartInternal() 12 | { 13 | Serialization.Add(new JsonRawSerializer()); 14 | 15 | Compression.Add(new CompressorDeflate()); 16 | Compression.Add(new CompressorGzip()); 17 | 18 | base.StartInternal(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/DataCollection/Binary/BinaryContainer.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This class holds the binary container. 5 | /// 6 | public class BinaryContainer 7 | { 8 | /// 9 | /// This is the binary blob. 10 | /// 11 | public byte[] Blob { get; set; } 12 | /// 13 | /// This is the content type of the entity. 14 | /// 15 | public string ContentType { get; set; } = "application/json; charset=utf-8"; 16 | /// 17 | /// This is the encoding type of the entity. 18 | /// 19 | public string ContentEncoding { get; set; } = null; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/DataCollection/DataCollector/DataCollectorPolicy.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This is the default policy for the Data Collector. 5 | /// 6 | public class DataCollectorPolicy: PolicyBase 7 | { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/DataCollection/Events/EventSourceEvent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace Xigadee 9 | { 10 | [DebuggerDisplay("{Entry.EntityType}/{Entry.EventType} [{Entry.Key}/{Entry.EntityVersion}] @ {OriginatorId}")] 11 | public class EventSourceEvent: EventBase 12 | { 13 | public string OriginatorId { get; set; } 14 | 15 | public EventSourceEntryBase Entry { get; set; } 16 | 17 | public DateTime? UtcTimeStamp { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/DataCollection/Events/ResourceEvent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This event is used to signal resource based event types, such as a dependency slow down. 11 | /// 12 | public class ResourceEvent:EventBase 13 | { 14 | /// 15 | /// This is the type of resource event raised. 16 | /// 17 | public ResourceStatisticsEventType Type { get; set; } 18 | /// 19 | /// This is the for the resource event. 20 | /// 21 | public string Name { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/DataCollection/Interfaces/BoundaryEventType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This enumeration contains the boundary logging types. 11 | /// 12 | public enum BoundaryEventType 13 | { 14 | /// 15 | /// This is a poll request. 16 | /// 17 | Poll, 18 | /// 19 | /// This is a boundary transition. 20 | /// 21 | Boundary, 22 | /// 23 | /// This is for messages passing an interface transition such as a WebAPI. 24 | /// 25 | Interface 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/DataCollection/Interfaces/IDataCollectorComponent.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is implemented by a data collection component that receives events and passes them on. 5 | /// 6 | /// 7 | public interface IDataCollectorComponent: IRequireServiceOriginator 8 | { 9 | bool IsSupported(DataCollectionSupport support); 10 | 11 | void Write(EventHolder eventData); 12 | 13 | bool CanFlush { get; } 14 | 15 | void Flush(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Interfaces/Communication/IMessaging.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This is the base interface shared by both listeners and senders. 5 | /// 6 | public interface IMessaging: IRequireServiceHandlers, IRequireServiceOriginator, IRequireDataCollector, IRequireSharedServices 7 | { 8 | 9 | 10 | /// 11 | /// This is the channel id for the messaging agent. 12 | /// 13 | string ChannelId { get;set; } 14 | 15 | /// 16 | /// This property specifies whether the boundary logging is active for the messaging service. 17 | /// 18 | bool? BoundaryLoggingActive { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Interfaces/Microservice/IMicroserviceCommand.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Xigadee 5 | { 6 | /// 7 | /// This interface defines the publicly accessible CommandContainer support. 8 | /// 9 | public interface IMicroserviceCommand: IEnumerable 10 | { 11 | /// 12 | /// Registers the specified command. 13 | /// 14 | /// The command. 15 | /// Returns the command passed in the request. 16 | ICommand Register(ICommand command); 17 | /// 18 | /// Gets the shared services collection. 19 | /// 20 | ISharedService SharedServices { get; } 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Interfaces/Microservice/IMicroserviceDispatch.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is used to send messages directly to the Microservice for processing. 5 | /// 6 | public interface IMicroserviceDispatch 7 | { 8 | /// 9 | /// This method injects a payload in to the execution path and bypasses the listener infrastructure. 10 | /// 11 | /// The transmission payload to execute. 12 | void Process(TransmissionPayload payload); 13 | 14 | /// 15 | /// Gets the service handler container. 16 | /// 17 | IServiceHandlers ServiceHandlers { get; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Interfaces/Persistence/IPersistenceMessageHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is used to consistently reference the persistence handler irrespective 5 | /// of the underlying implementation. 6 | /// 7 | public interface IPersistenceMessageHandler: IStatisticsBase 8 | { 9 | /// 10 | /// Gets or sets the channel identifier. 11 | /// 12 | string ChannelId { get; set; } 13 | /// 14 | /// Gets the type of the entity. 15 | /// 16 | /// 17 | /// The type of the entity. 18 | /// 19 | string EntityType { get; } 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Interfaces/Persistence/IPersistenceMessageInitiator.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is implemented by a generic persistence message initiator. 5 | /// 6 | /// 7 | public interface IPersistenceMessageInitiator: IStatisticsBase 8 | { 9 | /// 10 | /// Gets the statistics. 11 | /// 12 | PersistenceClientStatistics StatisticsRecalculated { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Interfaces/Persistence/IPersistenceRequestHolder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This interface is implemented by a generic persistence request holder. 7 | /// 8 | public interface IPersistenceRequestHolder 9 | { 10 | /// 11 | /// Gets the profile identifier. 12 | /// 13 | Guid ProfileId { get; } 14 | /// 15 | /// Gets the start tick count. 16 | /// 17 | int Start { get; } 18 | /// 19 | /// Gets the debug string for the request.. 20 | /// 21 | string Debug { get; } 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Interfaces/Persistence/IPersistenceSharedService.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This interface is used to identify the persistence shared service. 5 | /// 6 | /// 7 | public interface IPersistenceSharedService: IStatisticsBase 8 | { 9 | /// 10 | /// Gets the statistics for the persistence client. 11 | /// 12 | PersistenceClientStatistics StatisticsRecalculated { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Microservice/Events/MicroserviceEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | /// 6 | /// This is the base event for microservice based events, notably start/stop etc.. 7 | /// 8 | public class MicroserviceEventArgs: EventArgs 9 | { 10 | 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Microservice/Events/StartEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This class is used to signal the Microservice start events. 5 | /// 6 | public class StartEventArgs: MicroserviceEventArgs 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Microservice/Events/StatisticsEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This class is used to signal statistics events. 5 | /// 6 | public class StatisticsEventArgs: MicroserviceEventArgs 7 | { 8 | /// 9 | /// The new statistics. 10 | /// 11 | public Microservice.Statistics Statistics { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Microservice/Events/StopEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This class is used to signal Microservice stop events. 5 | /// 6 | public class StopEventArgs: MicroserviceEventArgs 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Microservice/Helper/DispatcherUnhandledAction.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This enum specifies the behaviour to take when receiving an unhandled message. 5 | /// 6 | public enum DispatcherUnhandledAction 7 | { 8 | /// 9 | /// An exception will be raised and logged. 10 | /// 11 | Exception, 12 | /// 13 | /// The message will be logged and ignored. 14 | /// 15 | Ignore, 16 | /// 17 | /// The dispatcher will attempt to send a 500 error response to the originating sender. 18 | /// 19 | AttemptResponseFailMessage 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Microservice/_docs/Microservice.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # Microservice 9 | 10 | 11 | 12 | 13 | 14 |
Created by: Paul StancerNuGet PackageHome
15 | 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Pipeline/Extensions/Revert.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | public static partial class CorePipelineExtensions 4 | { 5 | /// 6 | /// This method reverts a pipeline extension to the parent pipeline. 7 | /// 8 | /// The pipeline extension type. 9 | /// The pipeline extension. 10 | /// The parent Microservice pipeline. 11 | public static P Revert

(this IPipelineExtension

cpipe) 12 | where P : class, IPipeline 13 | { 14 | return cpipe.Pipeline; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Pipeline/Interfaces/IPipelineBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | ///

10 | /// This is the base class used for pipeline interface root components. 11 | /// 12 | public interface IPipelineBase 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Pipeline/Interfaces/IPipelineSecurity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This is the generic channel interface 11 | /// 12 | public interface IPipelineSecurity: IPipelineSecurity, IPipelineExtension

13 | where P : IPipeline 14 | { 15 | } 16 | 17 | public interface IPipelineSecurity 18 | { 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Pipeline/_docs/UsingThePipeline.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # Using the Microservice pipeline 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
Hitachi ConsultingCreated by: Paul StancerNuGet PackageHome
18 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ResourceTracker/Interfaces/IResourceMetric.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | ///

4 | /// This interface contains the core values that are used to measure a resource. 5 | /// 6 | public interface IResourceMetric//: IResourceBase 7 | { 8 | string[] Active { get; } 9 | 10 | double RateLimitAdjustmentPercentage { get; } 11 | 12 | double RateLimitCutoutPercentage { get; } 13 | 14 | double RetryRatio { get; } 15 | 16 | int RetrySum { get; } 17 | 18 | string Name { get; } 19 | } 20 | } -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ResourceTracker/ResourceContainer/Entities/ResourceCollection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xigadee 8 | { 9 | /// 10 | /// This class is used to contain a local and remote resource settings. 11 | /// 12 | public class ResourceCollection 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/Scheduler/_docs/Scheduler.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # Scheduler 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Hitachi ConsultingCreated by: Paul StancerNuGet PackageHome
17 | 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/Handlers/Compression/Pipeline/ClearPayloadCompressors.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | public static partial class CorePipelineExtensions 4 | { 5 | /// 6 | /// Clears the payload serializers collection.. 7 | /// 8 | /// The pipeline type. 9 | /// The pipeline. 10 | /// The pipeline. 11 | public static P ClearPayloadCompressors

(this P pipeline) 12 | where P : IPipeline 13 | { 14 | pipeline.Service.ServiceHandlers.Compression.Clear(); 15 | 16 | return pipeline; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/Handlers/Serializers/Pipeline/AddPayloadSerializerDefaultJson.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xigadee 4 | { 5 | public static partial class CorePipelineExtensions 6 | { 7 | ///

8 | /// Adds the default JSON payload serializer to the Microservice. 9 | /// 10 | /// The pipeline type. 11 | /// The pipeline. 12 | /// The pipeline. 13 | public static P AddPayloadSerializerDefaultJson

(this P pipeline) 14 | where P : IPipeline 15 | { 16 | pipeline.Service.ServiceHandlers.Serialization.Add(new JsonRawSerializer()); 17 | 18 | return pipeline; 19 | } 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/Handlers/Serializers/Pipeline/ClearPayloadSerializers.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | public static partial class CorePipelineExtensions 4 | { 5 | ///

6 | /// Clears the payload serializers collection.. 7 | /// 8 | /// The pipeline type. 9 | /// The pipeline. 10 | /// The pipeline. 11 | public static P ClearPayloadSerializers

(this P pipeline) 12 | where P : IPipeline 13 | { 14 | pipeline.Service.ServiceHandlers.Serialization.Clear(); 15 | 16 | return pipeline; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/Interfaces/ISecurityService.cs: -------------------------------------------------------------------------------- 1 | //namespace Xigadee 2 | //{ 3 | // ///

4 | // /// This interface is used to validate incoming messages and to set their SecurityPrincipal value. 5 | // /// 6 | // public interface ISecurityService: ISecurityCommunication, ISecurityEncryption 7 | // { 8 | // } 9 | //} 10 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7515 - JSON Web Signature.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7515 - JSON Web Signature.pdf -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7516 - JSON Web Encryption.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7516 - JSON Web Encryption.pdf -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7517 - JSON Web Key.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7517 - JSON Web Key.pdf -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7518 - JSON Web Algorithms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7518 - JSON Web Algorithms.pdf -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7519 - JSON Web Token.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7519 - JSON Web Token.pdf -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7800 - Proof-of-Possession .pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/ServiceHandler/JWT/_Documents/rfc7800 - Proof-of-Possession .pdf -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/ServiceHandlerContainerHarness.cs: -------------------------------------------------------------------------------- 1 | namespace Xigadee 2 | { 3 | /// 4 | /// This harness is used to hold the service handler container. 5 | /// 6 | public class ServiceHandlerContainerHarness: ServiceHarness 7 | { 8 | } 9 | 10 | /// 11 | /// This class contains the dependencies for the serialization harness. 12 | /// 13 | /// 14 | public class ServiceHandlerContainerHarnessDependencies: ServiceHarnessDependencies 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/ServiceHandlerContainer_Authentication.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | namespace Xigadee 6 | { 7 | public partial class ServiceHandlerContainer 8 | { 9 | /// 10 | /// Gets the authentication collection. 11 | /// 12 | public ServiceHandlerCollection Authentication { get; } 13 | 14 | private void OnAuthenticationAdd(IServiceHandlerAuthentication handler) 15 | { 16 | handler.Collector = Collector; 17 | handler.OriginatorId = OriginatorId; 18 | } 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/ServiceHandler/_docs/Serialization.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
XigadeeSorry, I'm still working here
7 | 8 | # Serialization 9 | 10 | ## Object Registry 11 | 12 | 13 | 14 | 15 | 16 |
Created by: Paul StancerNuGet PackageHome
17 | 18 | -------------------------------------------------------------------------------- /Src/Xigadee.Platform/_Docs/Images/15mins/ClientServer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/_Docs/Images/15mins/ClientServer.png -------------------------------------------------------------------------------- /Src/Xigadee.Platform/_Docs/Images/15mins/ClientServerSB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/_Docs/Images/15mins/ClientServerSB.png -------------------------------------------------------------------------------- /Src/Xigadee.Platform/_Docs/Images/15mins/Server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/_Docs/Images/15mins/Server.png -------------------------------------------------------------------------------- /Src/Xigadee.Platform/_Docs/Images/MessageFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/_Docs/Images/MessageFlow.png -------------------------------------------------------------------------------- /Src/Xigadee.Platform/_Docs/Images/MessageProcessing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/_Docs/Images/MessageProcessing.png -------------------------------------------------------------------------------- /Src/Xigadee.Platform/_Docs/Images/Microservice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/_Docs/Images/Microservice.png -------------------------------------------------------------------------------- /Src/Xigadee.Platform/_Docs/Images/Xigadee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/_Docs/Images/Xigadee.png -------------------------------------------------------------------------------- /Src/Xigadee.Platform/_Docs/Xigadee.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/_Docs/Xigadee.vsdx -------------------------------------------------------------------------------- /Src/Xigadee.Platform/_Docs/Xigadee2.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/Src/Xigadee.Platform/_Docs/Xigadee2.vsdx -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | title: Xigadee 2 | description: A Microservice library by Paul Stancer and Guy Steel at Hitachi Consulting 3 | google_analytics: 4 | show_downloads: true 5 | theme: jekyll-theme-minimal 6 | 7 | gems: 8 | - jekyll-mentions 9 | -------------------------------------------------------------------------------- /_meta/.json: -------------------------------------------------------------------------------- 1 | {"title":"","id":"bb4f3390-8c72-4120-a726-371ac5a7d4f3"} -------------------------------------------------------------------------------- /_meta/15-minute-microservice.json: -------------------------------------------------------------------------------- 1 | {"title":"/15-minute-microservice","id":"fdce7272-6f7c-4d09-9c25-973adbddf917"} -------------------------------------------------------------------------------- /docs/Logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/docs/Logo.gif -------------------------------------------------------------------------------- /docs/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/docs/Logo.png -------------------------------------------------------------------------------- /docs/Logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/docs/Logo2.png -------------------------------------------------------------------------------- /docs/WIP2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/docs/WIP2.png -------------------------------------------------------------------------------- /docs/X2a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/docs/X2a.png -------------------------------------------------------------------------------- /docs/Xigadee2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/docs/Xigadee2.png -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-tactile -------------------------------------------------------------------------------- /docs/hitachi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/docs/hitachi.png -------------------------------------------------------------------------------- /docs/smallWIP.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/docs/smallWIP.jpg -------------------------------------------------------------------------------- /docs/xigadee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xigadee/Microservice/95ad3e0726094355c32fcc14c4d466a35a9e812f/docs/xigadee.png --------------------------------------------------------------------------------