Exemplo n.º 1
0
        public virtual void SetUp(MessageFamily handler, string trustAnchorDID)
        {
            _handler        = handler;
            _messageHandler = async(messageName, message) =>
            {
                if ("created".Equals(messageName))
                {
                    var threadId        = message.GetValue("~thread")["thid"];
                    var relationshipDID = message.GetValue("did");

                    var relationship = new Relationship(relationshipDID.ToString(), threadId.ToString(), trustAnchorDID);
                    await _repository.Add(relationship);

                    await _unitOfWork.Commit();
                }
                else if ("invitation".Equals(messageName))
                {
                    var relationship =
                        await _repository.LoadByTrustAnchorDID(TrustAnchorDID.FromString(trustAnchorDID));

                    string inviteURL = message.GetValue("inviteURL");
                    relationship.SetInviteUrl(inviteURL);
                    await _unitOfWork.Commit();

                    var qrGenerator = new QRCodeGenerator();
                    var qrCodeData  = qrGenerator.CreateQrCode(inviteURL, QRCodeGenerator.ECCLevel.L);
                    var qrCode      = new QRCode(qrCodeData);
                    var qrCodeImage = qrCode.GetGraphic(4);
                    relationship.GenerateQrCode(qrCodeImage);
                    await _unitOfWork.Commit();
                }
            };
        }
Exemplo n.º 2
0
        protected override void When(object @event)
        {
            switch (@event)
            {
            case RelationshipEvents.Created e:
                Id             = new RelationshipDID(e.DID);
                ThreadId       = e.ThreadId;
                TrustAnchorDID = new TrustAnchorDID(e.TrustAnchorDID);
                break;

            case RelationshipEvents.InviteUrlChanged e:
                InviteUrl = new Uri(e.InviteUrl);
                break;

            case RelationshipEvents.QrCodeGenerated e:
                QrCode = e.QrCode;
                break;
            }
        }