Ejemplo n.º 1
0
        private string CreateAttestationFromRequest(PublishVerifiableClaimsRequest request)
        {
            var attestationMessage = new AttestationMessage
            {
                AttestUuid = request.AttestUuid,
                ValidFrom  = request.ValidFrom,
                ValidTo    = request.ValidTo,
                User       = new UserMessage
                {
                    Ssid  = request.User.Ssid,
                    Name  = request.User.Name,
                    Email = request.User.Email
                },
                Organization = new OrganizationMessage
                {
                    Name        = request.Organization.Name,
                    Location    = request.Organization.Location,
                    PlaceOfWork = request.Organization.PlaceOfWork
                },
                Lock = new LockMessage
                {
                    Id = request.Lock.Id,
                    LocationAddress = request.Lock.LocationAddress
                }
            };

            return(JsonSerializer.Serialize(attestationMessage));
        }
Ejemplo n.º 2
0
        public async Task <PublishVerifiableClaimsReply> PublishVerifiableClaims(PublishVerifiableClaimsRequest request)
        {
            using var channel = GrpcChannel.ForAddress("https://localhost:5001");
            var client = new Claims.ClaimsClient(channel);

            return(await client.PublishVerifiableClaimsAsync(request));
        }
Ejemplo n.º 3
0
        public override async Task <PublishVerifiableClaimsReply> PublishVerifiableClaims(PublishVerifiableClaimsRequest request, ServerCallContext context)
        {
            m_logger.LogInformation("PublishVerifiableClaims start");
            try
            {
                var channel         = m_mamChannelFactory.Create(Mode.Restricted, new Seed(request.Seed), securityLevel: SecurityLevel.Medium, channelKey: request.SideKey, keyIsTrytes: true);
                var attestationJson = CreateAttestationFromRequest(request);
                m_logger.LogInformation($"Remove before production! PublishVerifiableClaims Attestation JSON={attestationJson}");
                var message = channel.CreateMessage(TryteString.FromUtf8String(attestationJson));

                await channel.PublishAsync(message, minWeightMagnitude : 10);

                m_logger.LogInformation($"Remove before production! PublishVerifiableClaims Message={JsonSerializer.Serialize(message)}");


                return(CreatePublishVerifiableClaimsReplyFromMessage(message));
            }
            catch (Exception ex)
            {
                m_logger.LogError("CreateVerifiableClaims", ex);

                throw new RpcException(new Status(StatusCode.NotFound, ex.Message));
            }
            finally
            {
                m_logger.LogInformation("PublishVerifiableClaims end");
            }
        }