public async Task InvokeAsync(HttpContext context, RequestDelegate next)
        {
            var agentContext = await agentProvider.GetContextAsync();

            var provisioningRecord = await provisioningService.GetProvisioningAsync(agentContext.Wallet);

            var connectionId = provisioningRecord.GetTag(MediatorProvisioningService.EdgeInvitationTagName);

            if (connectionId == null)
            {
                throw new Exception("This agent hasn't been provisioned as mediator agent");
            }
            var inviation = await connectionService.GetAsync(agentContext, connectionId);

            var agentConfiguration = new AgentPublicConfiguration
            {
                ServiceEndpoint = provisioningRecord.Endpoint.Uri,
                RoutingKey      = provisioningRecord.Endpoint.Verkey,
                Invitation      = inviation.GetTag(MediatorProvisioningService.InvitationTagName)
                                  .ToObject <ConnectionInvitationMessage>()
            };

            context.Response.ContentType = "application/json";
            context.Response.StatusCode  = (int)HttpStatusCode.OK;
            await context.Response.WriteAsync(agentConfiguration.ToJson());
        }
Esempio n. 2
0
        public async Task <AgentPublicConfiguration> GetConfigurationAsync()
        {
            var agentContext = await agentProvider.GetContextAsync();

            var provisioningRecord = await provisioningService.GetProvisioningAsync(agentContext.Wallet);

            var connectionId = provisioningRecord.GetTag(MediatorProvisioningService.EdgeInvitationTagName);

            if (connectionId == null)
            {
                throw new Exception("This agent hasn't been provisioned as mediator agent");
            }
            var inviation = await connectionService.GetAsync(agentContext, connectionId);

            var agentConfiguration = new AgentPublicConfiguration
            {
                ServiceEndpoint = provisioningRecord.Endpoint.Uri,
                RoutingKey      = provisioningRecord.Endpoint.Verkey.First(),
                Invitation      = inviation.GetTag(MediatorProvisioningService.InvitationTagName)
                                  .ToObject <ConnectionInvitationMessage>()
            };

            return(agentConfiguration);
        }