public async Task <bool> AddClient(string name, string groupName, string TSURL, string password) { client = new ServerQueryClient(TSURL, 10011, TimeSpan.FromSeconds(3)); try { ServerQueryBaseResult connected = client.Initialize().Result; if (connected.Success) { ServerQueryBaseResult login = client.Login("serveradmin", password).Result; if (login.Success) { ServerQueryBaseResult use = client.Use(UseServerBy.Port, 9987).Result; if (use.Success) { client.KeepAlive(TimeSpan.FromMinutes(2)); clientList = client.ClientList().Result; ClientInfoResult ClientInfo = clientList.Values.Where(m => m.ClientNickname == name).FirstOrDefault(); if (ClientInfo != null) { await GetDBID(ClientInfo.ClientUniqueIdentifier); await GetServerGroup(groupName); await AddClient(); Message = string.Format("User {0} successfully created on TS Server {1}.", name, TSURL); } else { SuccessType = AddSuccess.Fail; Message = string.Format("Could not find a valid user on {0}. Please make sure your nickname is {1} and try again.", TSURL, name); } } } } } catch (Exception ex) { SuccessType = AddSuccess.Fail; } finally { ServerQueryBaseResult unregister = client.ServerNotifyUnregister().Result; ServerQueryBaseResult logout = client.Logout().Result; ServerQueryBaseResult quit = client.Quit().Result; } return(true); }
/// <summary> /// Fetches available clients from the remote update service. /// </summary> /// <returns></returns> public ClientInfo[] FetchClients() { // Create HTTP POST request to the predefined check-in URL HttpWebRequest request = HttpWebRequest.CreateHttp(Configuration.CLIENTS_URI); request.Accept = "application/xml"; request.Method = "GET"; // Get the response stream and check the status code and content type HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode != HttpStatusCode.OK) { // Something went wrong, server did not send 200 OK throw new InvalidOperationException("Server did not respond with 200 OK"); } // Deserialize response stream from the XML into CheckinResult DataContractSerializer xmlSerializer = new DataContractSerializer(typeof(ClientListResult)); ClientListResult result = (ClientListResult)xmlSerializer.ReadObject(response.GetResponseStream()); return(result.Clients); }
public static void ConnectQueryAsync() { ServerQueryClient client = new ServerQueryClient(host, port, TimeSpan.FromSeconds(1)); ServerQueryBaseResult connected = client.Initialize().Result; if (connected.Success) { MessageBox.Show("connected"); } ServerQueryBaseResult login = client.Login(user, password).Result; if (!login.Success) { MessageBox.Show(login.ErrorMessage); } ServerQueryBaseResult use = client.Use(UseServerBy.Port, 10677).Result; if (!use.Success) { MessageBox.Show(use.ErrorMessage); } //client.SendTextMessage(TextMessageTargetMode.TextMessageTarget_CLIENT, 3, "please respond"); ClientListResult clientList = client.ClientList().Result; if (!clientList.Success) { MessageBox.Show(clientList.ErrorMessage); } client.NotifyTextMessage += (source, notification) => MessageBox.Show(notification.Invokername + ": " + notification.Msg); ServerQueryBaseResult registerTextChannel = client.ServerNotifyRegister(Event.textprivate).Result; if (!registerTextChannel.Success) { MessageBox.Show(registerTextChannel.ErrorMessage); } client.KeepAlive(TimeSpan.FromMinutes(10)); client.NotifyChannelEdited += (source, notification) => MessageBox.Show(notification.Invokername + ": " + notification.Invokerid); for (int i = 0; i < clientList.Values.Count; i++) { ClientInfoResult clientInfoResult = clientList.Values[i]; int id = clientInfoResult.ClientId; String name = clientInfoResult.ClientNickname; if (!name.Contains("Sharix")) { client.SendTextMessage(TextMessageTargetMode.TextMessageTarget_CLIENT, id, "you are a nonce lol"); MessageBox.Show(id.ToString() + " " + name); } } }