public async void Endorse() { // Do some endorsement var endorsement = LocalIdentityStore.Instance.EndorseFriendAsIdentityOwner(_verifiedIdentity.IdentityGUID, _verifiedIdentity.KeyPairsAssertingOwnership.First().Fingerprint); var identityFriendlyName = new InputPageViewModel( new List <InputViewModel>() { new InputViewModel() { Label = "Friendly Name", Content = string.Empty }, }, async(inputs) => { _verifiedIdentity.FriendlyName = inputs.First().Content; _verifiedIdentity.Endorsements.Add(endorsement); await LocalIdentityStore.Instance.StoreIdentity(_verifiedIdentity); }, new MainPageViewModel()); // Share endorsement var currentIdentity = await LocalIdentityStore.Instance.GetCurrentIdentity(); var idDisplay = new QRDisplayViewModel(currentIdentity.IdentityGUID.ToString(), "ID"); var publicKeyDisplay = new QRDisplayViewModel(currentIdentity.KeyPairsAssertingOwnership.First().PublicKeyBytes, "Public Key"); var endorsementDisplay = new QRDisplayViewModel(endorsement.ToString(), "Endorsement"); idDisplay.PostDisplayComplete = publicKeyDisplay; publicKeyDisplay.PostDisplayComplete = endorsementDisplay; endorsementDisplay.PostDisplayComplete = identityFriendlyName; await NavigationMaster.Instance.NavigateTo(idDisplay); }
public async Task AcceptEndorsement() { Endorsement endorsement = null; KeyPair publicKey = null; // assigning here to make compiler happy Guid guid; Identity endorserIdentity = null; var getFriendlyName = new InputPageViewModel( new List <InputViewModel>() { new InputViewModel() }, async(content) => { endorserIdentity.FriendlyName = content.First().Content; if (endorserIdentity.IsValidEndorsement(endorsement)) { await LocalIdentityStore.Instance.StoreIdentity(endorserIdentity); LocalIdentityStore.Instance.AcceptEndorsement(endorsement); } }, new MainPageViewModel()); var readEndorsement = new ScanQRCodeViewModel( async(string result) => { endorsement = Endorsement.GetFromJSONString(result); endorserIdentity = await LocalIdentityStore.Instance.GetIdentity(guid); if (endorserIdentity == null) { endorserIdentity = new Identity(guid); } endorserIdentity.KeyPairsAssertingOwnership.Add(publicKey); }, getFriendlyName, "Scan endorsement"); var readPublicKey = new ScanQRCodeViewModel((byte[] result) => { publicKey = new KeyPair(result); }, readEndorsement, "Scan Public Key"); var readGuid = new ScanQRCodeViewModel((string result) => { guid = Guid.Parse(result); }, readPublicKey, "Scan ID"); await NavigationMaster.Instance.NavigateTo(readGuid); }