private void HandleSearchManager(ref LoginSocketState state, string query, Dictionary <string, string> keyValues)
 {
     if (state.State == 0)
     {
         if (query.Equals("nicks", StringComparison.InvariantCultureIgnoreCase))
         {
             SendToClient(ref state, LoginServerMessages.SendNicks(ref state, keyValues));
         }
         else if (query.Equals("check", StringComparison.InvariantCultureIgnoreCase))
         {
             SendToClient(ref state, LoginServerMessages.SendCheck(ref state, keyValues));
         }
         else if (query.Equals("search", StringComparison.InvariantCultureIgnoreCase))
         {
             SendToClient(ref state, LoginServerMessages.SendSearch(ref state, keyValues));
         }
         else if (query.Equals("newuser", StringComparison.InvariantCultureIgnoreCase))
         {
             SendToClient(ref state, LoginServerMessages.NewUser(ref state, keyValues));
         }
         else
         {
             Log(Category, String.Format("[{0}] Unhandled query type: {1}", state.Type, query));
         }
     }
     else if (state.State == 1)
     {
         state.State++;
     }
     else if (state.State >= 2)
     {
         state.Dispose();
     }
 }
        private void HandleClientManager(ref LoginSocketState state, string query, Dictionary <string, string> keyValues)
        {
            if (state == null || String.IsNullOrWhiteSpace(query) || keyValues == null)
            {
                return;
            }

            if (state.State == 1)
            {
                if (query.Equals("login", StringComparison.InvariantCultureIgnoreCase))
                {
                    SendToClient(ref state, LoginServerMessages.SendProof(ref state, keyValues));
                    state.StartKeepAlive(this);
                }
                else if (query.Equals("newuser", StringComparison.InvariantCultureIgnoreCase))
                {
                    SendToClient(ref state, LoginServerMessages.NewUser(ref state, keyValues));
                }
            }
            else if (state.State == 2)
            {
                if (query.Equals("status", StringComparison.InvariantCultureIgnoreCase))
                {
                    //LogError("STATUS NOT RESPONDED","1");
                    //SendToClient(ref state, LoginServerMessages.StatusResponse(ref state, keyValues));
                }
                else if (query.Equals("getprofile", StringComparison.InvariantCultureIgnoreCase))
                {
                    SendToClient(ref state, LoginServerMessages.SendProfile(ref state, keyValues, false));
                }
                else if (query.Equals("updatepro", StringComparison.InvariantCultureIgnoreCase))
                {
                    LoginServerMessages.UpdateProfile(ref state, keyValues);
                }
            }
            else if (state.State == 3)
            {
                if (query.Equals("logout", StringComparison.InvariantCultureIgnoreCase))
                {
                    LoginServerMessages.Logout(ref state, keyValues);
                }
                else if (query.Equals("getprofile", StringComparison.InvariantCultureIgnoreCase))
                {
                    SendToClient(ref state, LoginServerMessages.SendProfile(ref state, keyValues, true));
                }
            }
            else if (state.State >= 4)
            {
                state.Dispose();
            }
        }