예제 #1
0
    private IEnumerator SendPut <T> (setResult <T> setter)
    {
        Debug.Log("SENT " + qStr);
        UnityWebRequest webReq = UnityWebRequest.Get(qStr);

        yield return(webReq.Send());

        if (webReq.isError)
        {
            Debug.Log(webReq.error);
        }
        else
        {
            // Show results as text
            Debug.Log("Got TEXT " + webReq.downloadHandler.text);

            _Message = JsonUtility.FromJson <JSNDropMessage>(webReq.downloadHandler.text);
            _result  = webReq.downloadHandler.text;            // a bit messy

            var aResult = JsonUtility.FromJson <T>(webReq.downloadHandler.text);
            Debug.Log(aResult.ToString());
            List <T> theList = new List <T>();
            setter(theList);
        }
    }
예제 #2
0
    // Method to Push/Put data into the JSNdrop database
    private IEnumerator SendPut <T>(setResult <T> setter)
    {
        Debug.Log("SENT " + qStr);                          // Log whats sent
        UnityWebRequest webReq = UnityWebRequest.Get(qStr); // Create Web Request conatining put request string

        yield return(webReq.Send());                        // send the request and exit method remembering where upto in method for when done

        if (webReq.isNetworkError)                          // Network error
        {
            Debug.Log(webReq.error);                        //Log Error
        }
        else
        {
            // Show results as text because send was successful
            Debug.Log("Got TEXT " + webReq.downloadHandler.text);
            try // Error handle incase of errors
            {
                //Convert returned JSN data into message class object
                _Message = JsonUtility.FromJson <JSNDropMessage>(webReq.downloadHandler.text);
                if (_Message.Type == "INSERT" || _Message.Type == "UPDATE") // Confirm it is as expected and log
                {
                    Debug.Log(_Message.Type + " Successfull!");
                }
                List <T> theList = new List <T>();         // Create empty list for returning as requires List for return to work
                setter(theList);                           // Return to caller the list
            }
            catch (Exception)                              // Error?
            {
                Debug.Log("JSN Send Put Failed - ERROR!"); // Log
                List <T> theList = null;                   // Create Null List to return to caller
                setter(theList);                           // return to caller the list
            }
        }
    }
예제 #3
0
    // Send Reg is slightly different
    // void aSetTableConnection(string tbName, string tConnection);
    private IEnumerator SendReg(string pTblName)
    {
        UnityWebRequest webReq = UnityWebRequest.Get(qStr);

        yield return(webReq.Send());

        if (webReq.isError)
        {
            Debug.Log(webReq.error);
        }
        else
        {
            // Show results as text
            Debug.Log(webReq.downloadHandler.text);

            _Message = JsonUtility.FromJson <JSNDropMessage>(webReq.downloadHandler.text);
            if (_Message.Message == "NEW" || _Message.Message == "EXISTS")
            {
                _result      = _Message.Type;
                connectionID = _Message.Type;
                if (_tables == null)
                {
                    _tables = new Dictionary <string, string>();
                }
                if (!_tables.ContainsKey(pTblName))
                {
                    _tables.Add(pTblName, connectionID);
                }
            }
            else
            {
                _result = webReq.downloadHandler.text;                 // a bit messy
            }
        }
    }
예제 #4
0
    // Send Reg to create table in database if not exist
    private IEnumerator SendReg <T>(string pTblName, setResult <T> setter)
    {
        Debug.Log("Sent Req: " + qStr);                     // log
        UnityWebRequest webReq = UnityWebRequest.Get(qStr); // create web request containing the request

        yield return(webReq.Send());                        // Send request and exit method remembering where upto for when co-routine calls again

        if (webReq.isNetworkError)                          // Network error
        {
            Debug.Log(webReq.error);                        // log
        }
        else
        {
            //Request success, Convert JSN back into Message class Object format
            _Message = JsonUtility.FromJson <JSNDropMessage>(webReq.downloadHandler.text);
            if (_Message.Message == "NEW" || _Message.Message == "EXISTS") // Check expected New or Exist Response
            {
                string connectionID = _Message.Type;                       // put into variable, not really needed but clearer to read
                // Keep track of tables by adding the tables name and connection ID returned from request to Dictionary
                if (!_tables.ContainsKey(pTblName))
                {
                    _tables.Add(pTblName, connectionID);
                }
            }
            else
            {
                Debug.Log("What just happened? This should never occur :("); // Should never happen but just incase
            }
            List <T> theList = new List <T>();                               // Caller Expects reply so create empty list
            setter(theList);                                                 // Return to caller the empty list
        }
    }