protected internal void SendUpdateOnline() { try { StatusOnlineJSON statusOnlineJSON = new StatusOnlineJSON(); List <string> usersOnline = new List <string>(); foreach (var client in users) { usersOnline.Add(client.Username); } statusOnlineJSON.UserList = usersOnline; string json = System.Text.Json.JsonSerializer.Serialize <StatusOnlineJSON>(statusOnlineJSON); foreach (var client in users) { byte[] data = Encoding.UTF8.GetBytes(json); Int32 sizeRequests = data.Length; byte[] sizeRequestsByte = BitConverter.GetBytes(sizeRequests); client.StreamSend.Write(sizeRequestsByte, 0, sizeRequestsByte.Length); client.StreamSend.Write(data, 0, data.Length); } } catch (Exception) { Console.WriteLine("SendUpdateOnline() Error."); } }
private void SendOlineStatus(StatusOnlineJSON statusOnlineJSON) { List <string> usersOnline = new List <string>(); foreach (var users in Server.GetConnection()) { usersOnline.Add(users.Username); } statusOnlineJSON.UserList = usersOnline; string answer = System.Text.Json.JsonSerializer.Serialize <StatusOnlineJSON>(statusOnlineJSON); Client.SendAnswer(answer); }
public static List <string> RefreshUsersOnline() { try { StatusOnlineJSON statusOnlineJSON = new StatusOnlineJSON(); string requestJSON = JsonSerializer.Serialize <StatusOnlineJSON>(statusOnlineJSON); ClientLogic.SendMessage(requestJSON); statusOnlineJSON = JsonSerializer.Deserialize <StatusOnlineJSON>(ClientLogic.GetAnswer()); return(statusOnlineJSON.UserList); } catch (Exception) { MessageBox.Show("RefreshUsersOnline() Error."); } return(null); }
public void RequestActivation(string json) { string request = string.Empty; if (json != string.Empty) { var key = (JObject)JsonConvert.DeserializeObject(json); request = key["Key"].Value <string>(); } switch (request) { case "registration": RegistrationJSON registrationJSON = System.Text.Json.JsonSerializer.Deserialize <RegistrationJSON>(json); Console.WriteLine($"New Client. Registration request."); Console.WriteLine("Requests: " + json); Registration(registrationJSON); Server.SendUpdateOnline(); break; case "emailconfirmation": EmailConfirmationJSON emailConfirmationJSON = System.Text.Json.JsonSerializer.Deserialize <EmailConfirmationJSON>(json); Console.WriteLine($"New Client. Email confirmation request."); Console.WriteLine("=> Requests: " + json); EmailCodeVerification(emailConfirmationJSON); break; case "authorization": AuthorizationJSON authorizationJSON = System.Text.Json.JsonSerializer.Deserialize <AuthorizationJSON>(json); Console.WriteLine($"New Client. Authorization request."); Console.WriteLine("=> Requests: " + json); Authorization(authorizationJSON); Server.SendUpdateOnline(); break; case "addfriend": AddFriendJSON addFriendJSON = System.Text.Json.JsonSerializer.Deserialize <AddFriendJSON>(json); Console.WriteLine($"New Client. Username: {Client.Username} add friend username:{addFriendJSON.FriendUsername}"); Console.WriteLine("=> Requests: " + json); AddFriend(addFriendJSON); Server.SendUpdateOnline(); break; case "getfriendlist": GetFrindListJSON getFrindListJSON = System.Text.Json.JsonSerializer.Deserialize <GetFrindListJSON>(json); Console.WriteLine($"Client Username: {Client.Username}. FriendList request."); Console.WriteLine("=> Requests: " + json); GetFriendList(getFrindListJSON); break; case "getchat": GetChatJSON getChatJSON = System.Text.Json.JsonSerializer.Deserialize <GetChatJSON>(json); Console.WriteLine($"Client Username: {Client.Username}. GetChat request."); Console.WriteLine("=> Requests: " + json); GetChat(getChatJSON); break; case "sendmessage": SendMessageJSON sendMessageJSON = System.Text.Json.JsonSerializer.Deserialize <SendMessageJSON>(json); Console.WriteLine($"Client Username: {Client.Username}. Send message to user {sendMessageJSON.FriendUsername}"); Console.WriteLine("=> Requests: " + json); SendMessage(sendMessageJSON); break; case "removefriend": AddFriendJSON removeFriend = System.Text.Json.JsonSerializer.Deserialize <AddFriendJSON>(json); Console.WriteLine($"Client Username: {Client.Username}. Remove friend {removeFriend.FriendUsername}"); Console.WriteLine("=> Requests: " + json); RemoveFriend(removeFriend); Server.SendUpdateOnline(); break; case "statusonline": StatusOnlineJSON statusOnlineJSON = System.Text.Json.JsonSerializer.Deserialize <StatusOnlineJSON>(json); Console.WriteLine($"Client Username: {Client.Username}. Refresh status online."); Console.WriteLine("=> Requests: " + json); SendOlineStatus(statusOnlineJSON); break; default: Console.WriteLine($"Client IP: {Client.IPClient}. Sent string.Empty request."); Client.Close(); break; } }