public override Field GetResult() { Field field = new Field( Field.Var, null, Field.Type ); if ( _comboBox.SelectedItem != null ) { field.SetValue( ( string )( ( ComboBoxItem ) _comboBox.SelectedItem ).DataContext ) ; } else { field.SetValue( null ) ; } return field ; }
public override Field GetResult() { Field field = new Field( Field.Var, null, Field.Type ); field.SetValue( Field.GetValue() ); return field ; }
public override Field GetResult() { Field field = new Field( Field.Var, null, Field.Type ); field.SetValue( _password.Password ) ; return field ; }
public override Field GetResult() { Field field = new Field( Field.Var, null, Field.Type ); if ( Field.Type == FieldType.Text_Multi || Field.Type == FieldType.Jid_Multi ) { string [] values = new string[ _textBox.LineCount ]; for ( int i = 0; i < _textBox.LineCount; i++ ) { values[ i ] = _textBox.GetLineText( i ) ; } field.SetValues( values ) ; } else { field.SetValue( _textBox.Text ) ; } return field ; }
/// <summary> /// helper function that maps old jabber hidden search and register fields to our XData fields /// </summary> /// <param name="var"></param> /// <param name="val"></param> /// <returns></returns> private Field CreateDummyHiddenField(string var, string val) { Field field = new Field(var, var, FieldType.Hidden); field.SetValue(val); return field; }
/// <summary> /// Creates the XData Response Element from the entered Data in the GUI Form /// </summary> /// <returns></returns> public Data CreateResponse() { Data data = new Data(XDataFormType.submit); foreach(XDataFieldControl ctl in panelFields.Controls) { Type type = ctl.GetType(); if ( type == typeof(XDataTextBox) ) { Field f; XDataTextBox txt = ctl as XDataTextBox; if (txt.Multiline == true) { f = new Field(FieldType.Text_Multi); } else { if (txt.IsPrivate) f = new Field(FieldType.Text_Private); else f = new Field(FieldType.Text_Single); } f.AddValues(txt.Values); f.Var = txt.Var; data.AddField(f); } else if ( type == typeof(XDataHidden) ) { Field f; XDataHidden hidden = ctl as XDataHidden; f = new Field(FieldType.Hidden); f.AddValue(hidden.Value); f.Var = hidden.Var; data.AddField(f); } else if ( type == typeof(XDataJidSingle) ) { XDataJidSingle jids = ctl as XDataJidSingle; Field f = new Field(FieldType.Jid_Single); f.SetValue(jids.Value); f.Var = jids.Var; data.AddField(f); } else if ( type == typeof(XDataJidMulti) ) { XDataJidMulti jidm = ctl as XDataJidMulti; Field f = new Field(FieldType.Jid_Multi); f.AddValues(jidm.Values); f.Var = jidm.Var; data.AddField(f); } else if ( type == typeof(XDataCheckBox) ) { XDataCheckBox chk = ctl as XDataCheckBox; Field f = new Field(FieldType.Boolean); f.SetValueBool(chk.Value); f.Var = chk.Var; data.AddField(f); } else if ( type == typeof(XDataListMulti) ) { XDataListMulti listm = ctl as XDataListMulti; Field f = new Field(FieldType.List_Multi); f.AddValues(listm.Values); f.Var = listm.Var; data.AddField(f); } else if ( type == typeof(XDataListSingle) ) { XDataListSingle lists = ctl as XDataListSingle; Field f = new Field(FieldType.List_Single); f.SetValue(lists.Value); f.Var = lists.Var; data.AddField(f); } } return data; }
//SEND: //<iq xmlns="jabber:client" id="agsXMPP_14" type="get" to="users.localhost"> // <query xmlns="jabber:iq:search" /> //</iq> //RECV: //<iq xmlns="jabber:client" from="users.localhost" to="test@localhost/MF" type="result" id="agsXMPP_14"> // <query xmlns="jabber:iq:search"> // <instructions /> // <x xmlns="jabber:x:data" type="form"> // <instructions>Use this form to search for users in the SoapBox User Directory. Use '*' as a wildcard character.</instructions> // <title>SoapBox User Directory</title> // <field type="list-single" label="Group" var="role"> // <desc>Search for Users in the Group</desc> // <option label="All"><value>0</value></option> // <option label="Administrator"><value>103</value></option> // </field> // <field type="text-single" label="User Name" var="userName"> // <desc>User Name to Search for</desc> // </field> // </x> // </query> //</iq> //SEND: //<iq xmlns="jabber:client" id="agsXMPP_16" to="users.localhost" type="set"> // <query xmlns="jabber:iq:search"> // <x xmlns="jabber:x:data" type="submit"> // <field type="text-single" var="userName"> // <value>test</value> // </field> // <field type="list-single" var="role"> // <value>0</value> // </field> // </x> // </query> //</iq> //RECV: //<iq xmlns="jabber:client" from="users.localhost" to="test@localhost/MF" type="result" id="agsXMPP_16"> // <query xmlns="jabber:iq:search"> // <x xmlns="jabber:x:data" type="result"> // <title>UserRecords</title> // <reported> // <field type="hidden" label="JabberID" var="jid"/> // <field type="text-single" label="User Name" var="UserJIDNode"/> // <field type="text-single" label="Domain" var="UserJIDDomain"/> // <field type="boolean" label="MessageLogging" var="MessageLogging"> // <value>0</value> // </field> // <field type="int32-single" label="ActualMaxRecords" var="ActualMaxRecords"/> // </reported> // <item> // <field type="hidden" label="JabberID" var="jid"> // <value>test@localhost</value> // </field> // <field type="text-single" label="User Name" var="UserJIDNode"> // <value>test</value> // </field> // <field type="text-single" label="Domain" var="UserJIDDomain"> // <value>localhost</value> // </field> // <field type="boolean" label="MessageLogging" var="MessageLogging"> // <value>0</value> // </field> // <field type="int32-single" label="ActualMaxRecords" var="ActualMaxRecords"> // <value>3</value> // </field> // </item> // <item> // <field type="hidden" label="JabberID" var="jid"> // <value>test2@localhost</value> // </field> // <field type="text-single" label="User Name" var="UserJIDNode"> // <value>test2</value> // </field> // <field type="text-single" label="Domain" var="UserJIDDomain"> // <value>localhost</value> // </field> // <field type="boolean" label="MessageLogging" var="MessageLogging"> // <value>0</value> // </field> // <field type="int32-single" label="ActualMaxRecords" var="ActualMaxRecords"> // <value>3</value> // </field> // </item> // <item> // <field type="hidden" label="JabberID" var="jid"> // <value>test3@localhost</value> // </field> // <field type="text-single" label="User Name" var="UserJIDNode"> // <value>test3</value> // </field> // <field type="text-single" label="Domain" var="UserJIDDomain"> // <value>localhost</value> // </field> // <field type="boolean" label="MessageLogging" var="MessageLogging"> // <value>0</value> // </field> // <field type="int32-single" label="ActualMaxRecords" var="ActualMaxRecords"> // <value>3</value> // </field> // </item> // </x> // </query> //</iq> private void ProcessSearchIQ(IQ iq) { agsXMPP.protocol.iq.search.SearchIq searchIq = new SearchIq(IqType.result); searchIq.Id = iq.Id; searchIq.From = iq.To; searchIq.To = this.m_ClientAccount.JID; if (iq.Type == IqType.get) { searchIq.Query.Instructions = "Fill in a field to search for any matching Jabber User"; // <UserID>test</UserID> // <UserName>test</UserName> // <Password>test</Password> // <Role>0</Role> // <Privacy></Privacy> // <Privilege>0</Privilege> Data data = new Data(XDataFormType.form); data.Instructions = "Use this form to search for users in the SiteView MF User Directory. Use '*' as a wildcard character."; data.Title = "SiteView MF User Directory"; searchIq.Query.Data = data; Field field = null; Option option = null; //field = new Field(); //field.Type = FieldType.List_Single; //field.Label = "Group"; //field.Var = "Group"; //field.Description = "Search for Users in the Group"; //option = new Option("All", "0"); //field.AddOption(option); //option = new Option("SiteView", "1"); //field.AddOption(option); //data.AddField(field); field = new Field(); field.Type = FieldType.Text_Single; field.Label = "User ID"; field.Var = "UserID"; field.Description = "User ID to Search for"; data.AddField(field); field = new Field(); field.Type = FieldType.Text_Single; field.Label = "User Name"; field.Var = "UserName"; field.Description = "User Name to Search for"; data.AddField(field); //searchIq.Query.AddTag("Role"); //searchIq.Query.AddTag("Group"); //searchIq.Query.AddTag("Privilege"); } else if (iq.Type == IqType.set) { Search search = iq.Query as Search; Data xOldData = search.Data; if (xOldData.Type == XDataFormType.submit) { string strUserID = xOldData.GetField("UserID").GetValue(); string strUserName = xOldData.GetField("UserName").GetValue(); //string strGroup = xOldData.GetField("Group").GetValue(); //if (strGroup == "0") //{ // strGroup = string.Empty; //} //else if (strGroup == "1") //{ // strGroup = "SiteView"; //} //else //{ // strGroup = null; //} Data data = new Data(XDataFormType.result); data.Title = "UserRecords"; searchIq.Query.Data = data; Reported reported = new Reported(); data.Reported = reported; Field field = null; field = new Field(); field.Type = FieldType.Hidden; field.Label = "Jabber ID"; field.Var = "JID"; reported.AddField(field); //field = new Field(); //field.Type = FieldType.Text_Single; //field.Label = "Group"; //field.Var = "Group"; //reported.AddField(field); field = new Field(); field.Type = FieldType.Text_Single; field.Label = "User ID"; field.Var = "UserID"; reported.AddField(field); field = new Field(); field.Type = FieldType.Text_Single; field.Label = "User Name"; field.Var = "UserName"; reported.AddField(field); //company........continue.... foreach (Account account in this.m_Server.AccountManager.Accounts) { if (account.Type != AccountType.User) { continue; } if (strUserID != null && account.UserID.IndexOf(strUserID) < 0) { continue; } if (strUserName != null && account.UserName.IndexOf(strUserName) < 0) { continue; } //if (strGroup != null && account.Group.IndexOf(strGroup) < 0) //{ // continue; //} Item item = data.AddItem(); field = item.AddField(); field.Type = FieldType.Hidden; field.Label = "Jabber ID"; field.Var = "JID"; field.SetValue(account.JID.ToString()); //field = item.AddField(); //field.Type = FieldType.Text_Single; //field.Label = "Group"; //field.Var = "Group"; //field.SetValue(account.Group); field = item.AddField(); field.Type = FieldType.Text_Single; field.Label = "User ID"; field.Var = "UserID"; field.SetValue(account.UserID); field = item.AddField(); field.Type = FieldType.Text_Single; field.Label = "User Name"; field.Var = "UserName"; field.SetValue(account.UserName); } } } Send(searchIq); }