示例#1
0
 private void Awake()
 {
     Singleton           = this;
     image               = GetComponent <Image>();
     load_icon           = transform.GetChild(0).gameObject.GetComponent <RectTransform>();
     scroll_view_content = transform.parent.GetComponent <RectTransform>();
 }
    IEnumerator Send_Post_Coroutine(string[] field_name, string[] field_value, Action <string, Handler_Type> concludingMethod, bool add_user_credentials, Handler_Type type)
    {
        WWWForm form = new WWWForm();

        form.AddField("API_USER", "USER");
        form.AddField("API_PASSWORD", "8420b25f4c1ad7ac906364ee943a7bef");
        form.AddField("db_username", "dbu14967");
        form.AddField("db_password", "DrTgcePl06K#");

        if (add_user_credentials)
        {
            form.AddField("username", User.User_Info.Username);
            form.AddField("psswd", User.Psswd);
        }

        for (int x = 0; x < field_name.Length; x++)
        {
            form.AddField(field_name[x], field_value[x]);
        }

        using (UnityWebRequest www = UnityWebRequest.Post(API_URL, form))
        {
            yield return(www.SendWebRequest());

            if (www.isNetworkError)
            {
                string error = www.error;

                if (error == "Cannot resolve destination host")
                {
                    error = "No estás conectad@ a internet.";
                }

                Message.ShowMessage(error);
                Debug.LogWarning(error);
                Scroll_Updater.Disable();
                Login.Singleton.On_Load_Failure();
            }
            else
            {
                StringBuilder sb = new StringBuilder();

                foreach (KeyValuePair <string, string> dict in www.GetResponseHeaders())
                {
                    sb.Append(dict.Key).Append(": \t[").Append(dict.Value).Append("]\n");
                }

                string response_header  = sb.ToString();
                string response_content = www.downloadHandler.text;

                Debug.Log(response_content);
                concludingMethod(response_content, type);
            }
        }
    }
示例#3
0
    public void Logout()
    {
        Database_Handler.Initialize_Dictionaries();
        string lock_pwd = PlayerPrefs.GetString("lock_pwd");
        string db_key   = PlayerPrefs.GetString("db_key");

        PlayerPrefs.DeleteAll();
        PlayerPrefs.SetString("lock_pwd", lock_pwd);
        PlayerPrefs.SetString("db_key", db_key);

        Firebase_Handler.Modify_Registration_Token(Firebase_Handler.Operation.remove, new Firebase_Handler.FCM_Params()
        {
            Concluding_Method = (object[] data) =>
            {
                User.Initialized = false;
                Firebase_Handler.Singleton.enabled    = true;
                Firebase_Handler.Own_Notification_Key = "";
                Scroll_Updater.Initialize();

                for (int x = 0; x < SceneManager.sceneCount; x++)
                {
                    Scene scene = SceneManager.GetSceneAt(x);

                    if (scene.name != "Login")
                    {
                        SceneManager.UnloadSceneAsync(scene);
                    }
                }

                User.User_Info = new User.User_Information {
                    Username = ""
                };
            }
        });

        Login.Singleton.Reset_Input_Fields();
    }
    // ______________________________________
    //
    // 4. PARSE DATA.
    // ______________________________________
    //


    /// <summary>
    /// Parses a database gotten from the device's cache or from a server's response.
    /// </summary>
    /// <param name="data_to_parse">Data from cache or server to parse.</param>
    /// <param name="save">If data_to_parse should be saved on the device's cache.</param>
    /// <param name="handler_type">The child class type of Database_Handler that is going to parse data_to_parse.</param>
    static void Parse_Data(string data_to_parse, bool save, Handler_Type handler_type)
    {
        if (!Is_Clean(data_to_parse))
        {
            Message.ShowMessage("Error interno del servidor.");
            return;
        }

        Func <string, Data_struct> Parse_Data_Single = null;
        Func <List <Data_struct> > Sort_List         = null;
        Type type = null;

        switch (handler_type)
        {
        case Handler_Type.news:
            Parse_Data_Single = News.Parse_Single_Data;
            type      = typeof(News);
            Sort_List = News.Sort_List;
            break;

        case Handler_Type.polls:
            Parse_Data_Single = Polls.Parse_Single_Data;
            type      = typeof(Polls);
            Sort_List = Polls.Sort_List;
            break;

        case Handler_Type.events:
            Parse_Data_Single = Calendar_Events.Parse_Single_Data;
            type      = typeof(Calendar_Events);
            Sort_List = Calendar_Events.Sort_List;
            break;

        case Handler_Type.docs:
            Parse_Data_Single = Docs.Parse_Single_Data;
            type = typeof(Docs);
            break;
        }

        List <Data_struct> data_list = new List <Data_struct>();

        if (save)
        {
            Save_Database(handler_type.ToString() + "_database", data_to_parse);
        }

        // Separate news database from initial server information. (E.g. "VERIFIED.|*databases*|")
        string data = Utils.Split(data_to_parse, '~')[1];

        // Separate each row to parse it individually. (E.g. "*row*%*row*")
        if (Encryption.Has_Valid_Key())
        {
            foreach (string element in Utils.Split(data, "%"))
            {
                data_list.Add(Parse_Data_Single(element));
            }
        }

        Data_List_Set(type, data_list);

        if (Singleton != null)
        {
            Singleton.enabled = true;
        }

        Sort_List?.Invoke();
        Scroll_Updater.Disable();

        if (Menu.Active_Item == Menu.Menu_item.Home)
        {
            foreach (Scrollable scrollable in FindObjectsOfType <Scrollable>())
            {
                scrollable.Initialize();
            }
        }

        Post_Parse(handler_type);
    }
 void Awake()
 {
     Singleton = this;
     Database_Handler.Initialize_Dictionaries();
     Scroll_Updater.Initialize();
 }