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)); }
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)); }
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"); } }