/// <summary> /// Event arguments for node callback events. /// </summary> /// <param name="NodeName">Name of node.</param> /// <param name="Configuration">Node configuration.</param> /// <param name="e">IQ result event arguments.</param> public ConfigurationEventArgs(string NodeName, NodeConfiguration Configuration, DataFormEventArgs e) : base(e.Form, e) { this.nodeName = NodeName; this.configuration = Configuration; }
/// <summary> /// Event arguments for node subscription options callback events. /// </summary> /// <param name="NodeName">Name of node.</param> /// <param name="Jid">JID of subscription.</param> /// <param name="Options">Subscription options, if available.</param> /// <param name="e">IQ result event arguments.</param> public SubscriptionOptionsEventArgs(string NodeName, string Jid, SubscriptionOptions Options, DataFormEventArgs e) : base(e.Form, e) { this.nodeName = NodeName; this.jid = Jid; this.options = Options; }
/// <summary> /// Event arguments for node subscription callback events. /// </summary> /// <param name="NodeName">Name of node.</param> /// <param name="Jid">JID of subscription.</param> /// <param name="SubscriptionId">Subscription ID</param> /// <param name="Options">Subscription options, if available.</param> /// <param name="Availability">If options are supported.</param> /// <param name="Expires">When the subscription expires.</param> /// <param name="Status">Status of subscription.</param> /// <param name="e">IQ result event arguments.</param> public SubscriptionEventArgs(string NodeName, string Jid, string SubscriptionId, SubscriptionOptions Options, OptionsAvailability Availability, DateTime Expires, NodeSubscriptionStatus Status, DataFormEventArgs e) : base(NodeName, Jid, Options, e) { this.availability = Availability; this.expires = Expires; this.subscriptionId = SubscriptionId; this.status = Status; }
private async Task GetFormResult(object Sender, IqResultEventArgs e) { object[] P = (object[])e.State; DataFormResultEventHandler Callback = (DataFormResultEventHandler)P[0]; if (Callback is null) { return; } object State = P[1]; ThingReference[] Nodes = (ThingReference[])P[2]; DataForm Form = null; if (e.Ok) { foreach (XmlNode N in e.Response.ChildNodes) { if (N.LocalName == "x") { Form = new DataForm(this.client, (XmlElement)N, this.SubmitForm, this.CancelForm, e.From, e.To); break; } } if (!(Form is null)) { Form.State = Nodes; } } if (!(Callback is null)) { DataFormEventArgs e2 = new DataFormEventArgs(Form, e); try { e2.State = State; await Callback(this, e2); } catch (Exception ex) { Log.Critical(ex); } } }
private async void ControlFormResponse(object Sender, DataFormEventArgs e) { try { if (e.Ok) { string[] Parameters; lock (this.parametersSorted) { foreach (Field F in e.Form.Fields) { if (!F.ReadOnly && !F.Exclude) { this.parametersSorted[F.Var] = true; } } Parameters = new string[this.parametersSorted.Count]; this.parametersSorted.Keys.CopyTo(Parameters, 0); } this.availableParameterNames = Parameters; await Database.Update(this); DispatcherOperation Op = MainWindow.currentInstance.Dispatcher.BeginInvoke(new ThreadStart(() => { SortedDictionary <string, bool> Selected = null; bool AllSelected = this.parameterNames == null; if (!AllSelected) { Selected = new SortedDictionary <string, bool>(StringComparer.CurrentCultureIgnoreCase); foreach (ListBoxItem Item in this.parametersListBox.Items) { if (Item.IsSelected) { Selected[(string)Item.Tag] = true; } } } this.parametersListBox.Items.Clear(); foreach (string ParameterName in this.availableParameterNames) { this.parametersListBox.Items.Add(new ListBoxItem() { Content = ParameterName, IsSelected = AllSelected || Selected.ContainsKey(ParameterName), Tag = ParameterName }); } })); } else { MainWindow.ErrorBox(string.IsNullOrEmpty(e.ErrorText) ? "Unable to get control form." : e.ErrorText); } } catch (Exception ex) { ex = Log.UnnestException(ex); MainWindow.ErrorBox(ex.Message); } }