public override void Dispose() { this.contractsClient?.Dispose(); this.contractsClient = null; base.Dispose(); }
private void DestroyContractsClient() { XmppState stateBefore = GetState(); if (!(this.contractsClient is null)) { this.contractsClient.IdentityUpdated -= ContractsClient_IdentityUpdated; this.contractsClient.PetitionForIdentityReceived -= ContractsClient_PetitionForIdentityReceived; this.contractsClient.PetitionedIdentityResponseReceived -= ContractsClient_PetitionedIdentityResponseReceived; this.contractsClient.PetitionForContractReceived -= ContractsClient_PetitionForContractReceived; this.contractsClient.PetitionedContractResponseReceived -= ContractsClient_PetitionedContractResponseReceived; this.contractsClient.PetitionForSignatureReceived -= ContractsClient_PetitionForSignatureReceived; this.contractsClient.PetitionedSignatureResponseReceived -= ContractsClient_PetitionedSignatureResponseReceived; this.contractsClient.PetitionForPeerReviewIDReceived -= ContractsClient_PetitionForPeerReviewIdReceived; this.contractsClient.PetitionedPeerReviewIDResponseReceived -= ContractsClient_PetitionedPeerReviewIdResponseReceived; this.contractsClient.Dispose(); this.contractsClient = null; } XmppState stateAfter = GetState(); if (stateBefore != stateAfter) { this.OnConnectionStateChanged(new ConnectionStateChangedEventArgs(stateAfter, false)); } }
public static async Task <LegalService> Create(TreeNode Parent, string JID, string Name, string Node, Dictionary <string, bool> Features) { LegalService Result = new LegalService(Parent, JID, Name, Node, Features); Result.contractsClient = await ContractsClient.Create(Result.Account.Client, JID); Result.contractsClient.IdentityUpdated += Result.ContractsClient_IdentityUpdated; return(Result); }
public override void Dispose() { if (this.contractsClient != null) { this.contractsClient.Dispose(); this.contractsClient = null; } base.Dispose(); }
private static void DisposeClient() { minuteTimer?.Dispose(); minuteTimer = null; contracts?.Dispose(); contracts = null; fileUpload?.Dispose(); fileUpload = null; xmpp?.Dispose(); xmpp = null; }
public async Task <LegalIdentity[]> GetLegalIdentities(XmppClient client = null) { if (client is null) { AssertContractsIsAvailable(); return(await contractsClient.GetLegalIdentitiesAsync()); } else { AssertContractsIsAvailable(false); using (ContractsClient cc = new ContractsClient(client, this.tagProfile.LegalJid)) // No need to load keys for this operation. { return(await cc.GetLegalIdentitiesAsync()); } } }
private static void DisposeClient() { minuteTimer?.Dispose(); minuteTimer = null; contracts?.Dispose(); contracts = null; fileUpload?.Dispose(); fileUpload = null; #if DEBUG if (!(xmppEventSink is null)) { Log.Unregister(xmppEventSink); xmppEventSink.Dispose(); xmppEventSink = null; } #endif xmpp?.Dispose(); xmpp = null; }
private async Task CreateContractsClient(bool CanCreateKeys) { if (!string.IsNullOrWhiteSpace(this.tagProfile.LegalJid)) { DestroyContractsClient(); XmppState stateBefore = GetState(); this.contractsClient = await this.neuronService.CreateContractsClientAsync(CanCreateKeys); this.contractsClient.IdentityUpdated += ContractsClient_IdentityUpdated; this.contractsClient.PetitionForIdentityReceived += ContractsClient_PetitionForIdentityReceived; this.contractsClient.PetitionedIdentityResponseReceived += ContractsClient_PetitionedIdentityResponseReceived; this.contractsClient.PetitionForContractReceived += ContractsClient_PetitionForContractReceived; this.contractsClient.PetitionedContractResponseReceived += ContractsClient_PetitionedContractResponseReceived; this.contractsClient.PetitionForSignatureReceived += ContractsClient_PetitionForSignatureReceived; this.contractsClient.PetitionedSignatureResponseReceived += ContractsClient_PetitionedSignatureResponseReceived; this.contractsClient.PetitionForPeerReviewIDReceived += ContractsClient_PetitionForPeerReviewIdReceived; this.contractsClient.PetitionedPeerReviewIDResponseReceived += ContractsClient_PetitionedPeerReviewIdResponseReceived; XmppState stateAfter = GetState(); if (stateBefore != stateAfter) { this.OnConnectionStateChanged(new ConnectionStateChangedEventArgs(stateAfter, false)); } } }
public LegalService(TreeNode Parent, string JID, string Name, string Node, Dictionary <string, bool> Features) : base(Parent, JID, Name, Node, Features) { this.contractsClient = new ContractsClient(this.Account.Client, JID); this.contractsClient.IdentityUpdated += ContractsClient_IdentityUpdated; }
/// <summary> /// Adds the extension to the client. /// </summary> /// <param name="Instance">Actor instance.</param> /// <param name="Client">XMPP Client</param> /// <returns>Extension object.</returns> public override async Task <object> Add(IActor Instance, Waher.Networking.XMPP.XmppClient Client) { ContractsClient Extension = new ContractsClient(Client, this.componentAddress); await Extension.LoadKeys(true); Client.SetTag("ContractsClient", Extension); Extension.ContractDeleted += (Sender, e) => { this.Model.ExternalEvent(Instance, "ContractDeleted", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; Extension.ContractSigned += (Sender, e) => { this.Model.ExternalEvent(Instance, "ContractSigned", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; Extension.ContractUpdated += (Sender, e) => { this.Model.ExternalEvent(Instance, "ContractUpdated", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; Extension.IdentityUpdated += (Sender, e) => { this.Model.ExternalEvent(Instance, "IdentityUpdated", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; Extension.PetitionForContractReceived += (Sender, e) => { this.Model.ExternalEvent(Instance, "PetitionForContractReceived", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; Extension.PetitionedContractResponseReceived += (Sender, e) => { this.Model.ExternalEvent(Instance, "PetitionedContractResponseReceived", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; Extension.PetitionForIdentityReceived += (Sender, e) => { this.Model.ExternalEvent(Instance, "PetitionForIdentityReceived", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; Extension.PetitionedIdentityResponseReceived += (Sender, e) => { this.Model.ExternalEvent(Instance, "PetitionedIdentityResponseReceived", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; Extension.PetitionForSignatureReceived += (Sender, e) => { this.Model.ExternalEvent(Instance, "PetitionForSignatureReceived", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; Extension.PetitionedSignatureResponseReceived += (Sender, e) => { this.Model.ExternalEvent(Instance, "PetitionedSignatureResponseReceived", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; Extension.PetitionForPeerReviewIDReceived += (Sender, e) => { this.Model.ExternalEvent(Instance, "PetitionForPeerReviewIDReceived", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; Extension.PetitionedPeerReviewIDResponseReceived += (Sender, e) => { this.Model.ExternalEvent(Instance, "PetitionedPeerReviewIDResponseReceived", new KeyValuePair <string, object>("e", e), new KeyValuePair <string, object>("Client", Client)); return(Task.CompletedTask); }; return(Extension); }