public void ClientInterface(Client clientM) { bool clientConnected = true; //Add Some Sort of Return method later on Socket cSock = clientM.ClientSocket; while (clientConnected) { try { string token = Receive.ReceiveMessage(cSock); string request = Receive.ReceiveMessage(cSock); int lastResp = clientM.GetLastResponseSpan() - DateTime.Now.Minute; if (lastResp > 5) { //Renew Token } else { clientM.LastResponse = DateTime.Now; } if (token == clientM.TToken) { //Temporary Tokens are only able to Login Or Register switch (request) { default: //Send.SendMessage(clientSocket, "Invalid request socket killed") //string ipadd = cSock.LocalEndPoint.ToString(); break; case "Login": LoginAuthentication.LoginHandler(cSock, ref clientM); break; case "Register": RegisterAuthentication.RegistrationHandler(cSock); break; } } else if (token == clientM.SToken) { //Clients with a Session token can send any command. switch (request) { case "StoreMenuInfo": //Single Command Which Handles all Menu Related commands to prevent 20 different requests in the switch statement StoreMenuHandler.MenuHandler(cSock); break; case "StoreInfo": //Handles Store Info Transaction from Vendor StoreInfo.GetStoreInfo(cSock); break; case "UpdateStoreInfo": //Handles Settings For Vendor StoreInfo.UpdateStoreInfo(cSock); break; case "OrderHandling": // Handles all Order Requests from Customers & Vendors OrderHandler orderHand = new OrderHandler(); orderHand.HandleOrder(ref clientM); break; case "GetUserInfo": //Used to Set & Retreive user Information CustomerHandler.GetCustomerInfo(cSock); break; case "UpdateUserInfo": //Same as UpdateStoreInfo but is used for Customers. CustomerHandler.UpdateUserInfo(cSock); break; case "ReviewHandler": ReviewHandler revHandle = new ReviewHandler(); revHandle.HandleReviews(ref clientM); break; } } else { //Add Some sort of handling || just leave blank ServerLogger($"Invalid Token Received From Client {token}", cSock); } } catch (Exception) { //ServerLogger("Undiagnosed Error Uccored When Contacting Client Retrying...", cSock); } } }