Пример #1
0
        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);
                }
            }
        }