private async void Notify(ConnectionEndpoint endpoint, NetworkEvent networkEvent) { lock (this) { pendingCount++; if (pendingCount == 1) { Trace("Queue started"); syncPendingSent = new SyncEvent(); } } await Task.Delay(Parameters.CallLatency); endpoint.Notify(networkEvent); lock (this) { pendingCount--; if (pendingCount == 0) { Trace("Queue empty"); syncPendingSent.SetComplete(); } } }
public async void Import() { //BIP 39 var sentence = string.Join(" ", faucet.mnemonic); (byte[] publicKey, byte[] privateKey) = CryptoServices.ImportBIP39(sentence, faucet.email, faucet.password); var keypair = new KeyPair ( new PublicKey(publicKey), new PrivateKey(privateKey, PIN) ); // Import Identity var identity = Engine.FindIdentity(keypair.PublicID); if (identity == null) { identity = await Engine.ImportIdentity( IdentityType.Light.Stereotype, Name, keypair); } identity.Unlock(PIN); Main.CurrentIdentity = (IdentityVM)identity; WhenComplete.SetComplete(); // Activate await Engine.ActivateIdentity(identity, faucet.secret, faucet.ModelAmount); }
public void Update(TaskProgress progress) { Trace($"Update progress: {progress}"); Task.Progress = progress; switch (progress) { case TaskProgress.Acknowledged: WhenAcknowledged.SetComplete(); break; case TaskProgress.Confirmed: WhenAcknowledged.SetComplete(); WhenCompleted.SetComplete(); break; case TaskProgress.Timeout: WhenAcknowledged.Timeout(); WhenCompleted.Timeout(); break; case TaskProgress.Failed: WhenAcknowledged.Fail(); WhenCompleted.Fail(); break; case TaskProgress.Cancelled: WhenAcknowledged.SetComplete(); WhenCompleted.Cancel(); break; } }
public Task <SigningResult> Approve(bool isApproved) { IsApproved = isApproved; taskUser.SetComplete(isApproved); return(taskSign.WhenComplete); }
public async Task <bool?> Backup(string identityID, byte[] backupData) { var sync = new SyncEvent(); var mailController = new MFMailComposeViewController(); mailController.SetSubject(Localizer.Translate("BackupFor") + " " + identityID); mailController.SetMessageBody(Localizer.Translate("BackupMailBody"), false); var nsData = NSData.FromArray(backupData); mailController.AddAttachmentData(nsData, "application/json", $"{identityID}.blue"); mailController.Finished += (object s, MFComposeResultEventArgs args) => { switch (args.Result) { case MFMailComposeResult.Saved: case MFMailComposeResult.Sent: sync.SetComplete(); break; default: sync.SetComplete(false); break; } args.Controller.DismissViewController(true, null); }; UIApplication .SharedApplication .KeyWindow .RootViewController .PresentViewController(mailController, true, null); return(await sync.WhenComplete); }
public async Task Start() { Trace($"Start"); // Parallel: Load Identities and connect to Service await Task.WhenAll( InitializeProviders(), ConnectToService()); // Connected now, get info about identities Task initialization = InitializeIdentities(); Task timeout = Task.Delay(IdentitiesInitializedTimeout); var first = await Task.WhenAny( initialization, timeout ); // Notify Trace($"Initialized"); Initialized?.Invoke(first == initialization); WhenInitialized.SetComplete(); }
public NotificationHub(SimulationParameters parameters) : base(parameters) { // start with all messages sent syncPendingSent = new SyncEvent(); syncPendingSent.SetComplete(); }
internal void Close(SigningResult result) { Result = result; taskSign.SetComplete(result); }
private void EndInitialize() { isInitializing = false; WhenInitialized.SetComplete(); }