Beispiel #1
0
        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));
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        public override void Dispose()
        {
            if (this.contractsClient != null)
            {
                this.contractsClient.Dispose();
                this.contractsClient = null;
            }

            base.Dispose();
        }
Beispiel #5
0
        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));
                }
            }
        }
Beispiel #9
0
 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);
        }