예제 #1
0
        private async void ProvisioningClient_CanControlQuestion(object Sender, CanControlEventArgs e)
        {
            try
            {
                CanControlQuestion Question = await Database.FindFirstDeleteRest <CanControlQuestion>(new FilterAnd(
                                                                                                          new FilterFieldEqualTo("Key", e.Key), new FilterFieldEqualTo("JID", e.JID)));

                if (Question == null)
                {
                    Question = new CanControlQuestion()
                    {
                        Created         = DateTime.Now,
                        Key             = e.Key,
                        JID             = e.JID,
                        RemoteJID       = e.RemoteJID,
                        ProvisioningJid = this.provisioningClient.ProvisioningServerAddress,
                        ServiceTokens   = e.ServiceTokens,
                        DeviceTokens    = e.DeviceTokens,
                        UserTokens      = e.UserTokens,
                        ParameterNames  = e.Parameters,
                        NodeId          = e.NodeId,
                        SourceId        = e.SourceId,
                        Partition       = e.Partition
                    };

                    await Database.Insert(Question);

                    await MainWindow.currentInstance.NewQuestion(Question);
                }
            }
            catch (Exception ex)
            {
                Log.Critical(ex);
            }
        }
예제 #2
0
        private async Task ProvisioningClient_CanControlQuestion(object Sender, CanControlEventArgs e)
        {
            CanControlQuestion Question = await Database.FindFirstDeleteRest <CanControlQuestion>(new FilterAnd(
                                                                                                      new FilterFieldEqualTo("Key", e.Key), new FilterFieldEqualTo("JID", e.JID)));

            if (Question is null)
            {
                Question = new CanControlQuestion()
                {
                    Created         = DateTime.Now,
                    Key             = e.Key,
                    JID             = e.JID,
                    RemoteJID       = e.RemoteJID,
                    OwnerJID        = XmppClient.GetBareJID(e.To),
                    ProvisioningJID = this.provisioningClient.ProvisioningServerAddress,
                    ServiceTokens   = e.ServiceTokens,
                    DeviceTokens    = e.DeviceTokens,
                    UserTokens      = e.UserTokens,
                    ParameterNames  = e.Parameters,
                    NodeId          = e.NodeId,
                    SourceId        = e.SourceId,
                    Partition       = e.Partition
                };

                await Database.Insert(Question);

                MainWindow.UpdateGui(() =>
                                     MainWindow.currentInstance.NewQuestion(this.Account, this.provisioningClient, Question));
            }
        }
예제 #3
0
        private async void ProvisioningClient_CanControlQuestion(object Sender, CanControlEventArgs e)
        {
            try
            {
                CanControlQuestion Question = await Database.FindFirstDeleteRest <CanControlQuestion>(new FilterAnd(
                                                                                                          new FilterFieldEqualTo("Key", e.Key), new FilterFieldEqualTo("JID", e.JID)));

                if (Question is null)
                {
                    Question = new CanControlQuestion()
                    {
                        Created         = DateTime.Now,
                        Key             = e.Key,
                        JID             = e.JID,
                        RemoteJID       = e.RemoteJID,
                        OwnerJID        = XmppClient.GetBareJID(e.To),
                        ProvisioningJID = this.provisioningClient.ProvisioningServerAddress,
                        ServiceTokens   = e.ServiceTokens,
                        DeviceTokens    = e.DeviceTokens,
                        UserTokens      = e.UserTokens,
                        ParameterNames  = e.Parameters,
                        NodeId          = e.NodeId,
                        SourceId        = e.SourceId,
                        Partition       = e.Partition
                    };

                    await Database.Insert(Question);

                    DispatcherOperation Op = MainWindow.currentInstance.Dispatcher.BeginInvoke(new ThreadStart(() =>
                                                                                                               MainWindow.currentInstance.NewQuestion(this.Account, this.provisioningClient, Question)));
                }
            }
            catch (Exception ex)
            {
                Log.Critical(ex);
            }
        }