protected virtual void Initialize()
    {
        Title.text = news_entry.Title;
        string month = news_entry.Creation_time.ToString("MMMM").ToUpper().Substring(0, 3);

        Creation_time.text = month + " " + news_entry.Creation_time.Day.ToString() + " de " + news_entry.Creation_time.Year;
        Detail.text        = news_entry.Details;

        if (news_entry.Imgs.Count > 0 && news_entry.Imgs[0] != "empty")
        {
            foreach (string image in news_entry.Imgs)
            {
                Http_Client.Download_Image(image, transform, Handle_Img_Response);
            }
        }

        Canvas.ForceUpdateCanvases();
        GetComponentInChildren <VerticalLayoutGroup>().SetLayoutVertical();

        if (!news_entry.Seen)
        {
            string[] field_names  = { "REQUEST_TYPE", "news_id", "id" };
            string[] field_values = { "set_news_seen", news_entry.Id.ToString(), User.User_Info.Id.ToString() };
            Http_Client.Send_Post(field_names, field_values, (string response, Handler_Type type) => { }, Handler_Type.none);
            news_entry.Seen = true;
            User.User_Info.News_Data.Add(news_entry.Id);
            Database_Handler.Update_Unread(Handler_Type.news);
        }
    }
示例#2
0
    public static void Spawn_Sections()
    {
        List <DateTime>    sections = new List <DateTime>();
        List <int>         idxs     = new List <int>();
        List <Data_struct> list     = Database_Handler.Data_List_Get(typeof(Calendar_Events));

        for (int a = 0; a < list.Count; a++)
        {
            Calendar_Event c_event = (Calendar_Event)list[a];

            if (sections.Find(x => (x.Month == c_event.Date_Event.Month && x.Year == c_event.Date_Event.Year)).Year == 1)
            {
                sections.Add(new DateTime(c_event.Date_Event.Year, c_event.Date_Event.Month, 1));
                idxs.Add(a + idxs.Count);
            }
        }

        Transform parent = Calendar_Events.Singleton.Data_UI_Parent;

        for (int x = 0; x < idxs.Count; x++)
        {
            GameObject element_obj = Instantiate(((Calendar_Events)Calendar_Events.Singleton).Data_Section_UI_Prefab, parent);
            element_obj.name = typeof(Calendar_Events).ToString() + "_section";
            element_obj.transform.SetSiblingIndex(idxs[x] + 1);
            element_obj.GetComponent <Calendar_Events_section>().Set_Value(sections[x]);
        }
    }
示例#3
0
    public void Initialize(DateTime month)
    {
        this.Date       = month;
        month_text.text = month.ToString("MMMM") + " " + month.Year;

        // Get monday before first of the month.
        DateTime first_day = month.AddDays(-Get_Distance_To_Monday(month.DayOfWeek));
        DateTime temp      = first_day;

        foreach (Calendar_Day day in days)
        {
            day.Set_date(temp, this);
            List <Data_struct> list = new List <Data_struct>();

            // Set Calendar_Day values.
            foreach (Calendar_Event data in Database_Handler.Data_List_Get(typeof(Calendar_Events)))
            {
                if (data.Date_Event.Year == temp.Year && data.Date_Event.Month == temp.Month && data.Date_Event.Day == temp.Day)
                {
                    list.Add(data);
                }
            }

            day.Set_Event(list);
            temp = temp.AddDays(1);
        }
    }
示例#4
0
    /// <summary>
    /// Called on server response.
    /// </summary>
    protected void Handle_Vote_Response(string response, Handler_Type type)
    {
        if (response.Contains("500"))
        {
            Message.ShowMessage("Error interno del servidor.");
            return;
        }

        if (User.User_Info.Polls_Data.Exists(x => x.id == poll.Id))
        {
            User.User_Info.Polls_Data.Find(x => x.id == poll.Id).response = temp_vote;
        }
        else
        {
            User.User_Info.Polls_Data.Add(new User.Vote_Data()
            {
                id = poll.Id, response = temp_vote
            });
        }

        for (int x = 0; x < poll.Vote_Voters.Count; x++)
        {
            if (poll.Vote_Voters[x].Exists(a => a.Id == User.User_Info.Id))
            {
                poll.Vote_Voters[x].Remove(poll.Vote_Voters[x].Find(a => a.Id == User.User_Info.Id));
            }
        }

        poll.Vote_Voters[temp_vote].Add(User.User_Info);

        poll.Status = poll.Vote_Types[temp_vote];
        poll.Selected_Option_Idx = temp_vote;
        List <Data_struct> polls = Polls.Data_List_Get(typeof(Polls));

        for (int x = 0; x < polls.Count; x++)
        {
            if (polls[x].Id == poll.Id)
            {
                polls[x] = poll;
                Polls.Data_List_Set(typeof(Polls), polls);
                break;
            }
        }

        Message.ShowMessage("Base de datos actualizada con éxito.");

        if (this != null)
        {
            Show_Poll_Details();
            Set_Interactable(true);
        }

        Database_Handler.Update_Unread(Handler_Type.polls);
    }
示例#5
0
    /// <summary>
    /// Called on server response.
    /// </summary>
    protected void Handle_Event_Response(string response, Handler_Type type)
    {
        if (response.Contains("500"))
        {
            Message.ShowMessage("Error interno del servidor.");
            return;
        }

        if (User.User_Info.Events_Data.Exists(x => x.id == calendar_event.Id))
        {
            User.User_Info.Events_Data.Find(x => x.id == calendar_event.Id).response = temp_vote;
        }
        else
        {
            User.User_Info.Events_Data.Add(new User.Vote_Data()
            {
                id = calendar_event.Id, response = temp_vote
            });
        }

        for (int x = 0; x < calendar_event.Vote_Voters.Count; x++)
        {
            if (calendar_event.Vote_Voters[x].Exists(a => a.Id == User.User_Info.Id))
            {
                calendar_event.Vote_Voters[x].Remove(calendar_event.Vote_Voters[x].Find(a => a.Id == User.User_Info.Id));
            }
        }

        calendar_event.Vote_Voters[temp_vote].Add(User.User_Info);

        calendar_event.Status = calendar_event.Vote_Types[temp_vote];
        List <Data_struct> calendar_events = Calendar_Events.Data_List_Get(typeof(Calendar_Events));

        for (int x = 0; x < calendar_events.Count; x++)
        {
            if (calendar_events[x].Id == calendar_event.Id)
            {
                calendar_events[x] = calendar_event;
                Calendar_Events.Data_List_Set(typeof(Calendar_Events), calendar_events);
                break;
            }
        }

        Message.ShowMessage("Base de datos actualizada con éxito.");

        if (this != null)
        {
            Show_Event_Details();
            Set_Interactable(true);
        }

        Database_Handler.Update_Unread(Handler_Type.events);
    }
示例#6
0
    void Update()
    {
        if (!downloaded_all || Database_Handler.Singleton != null && !Initialized[Database_Handler.Singleton.GetType()] || (!updating && scroll_view_content.localPosition.y < -50 && Input.GetMouseButtonUp(0)))
        {
            if (!downloaded_all)
            {
                Database_Handler.Load_Data_Server(Handler_Type.events);
                Database_Handler.Load_Data_Server(Handler_Type.news);
                Database_Handler.Load_Data_Server(Handler_Type.polls);
                Database_Handler.Load_Data_Server(Handler_Type.docs);
                downloaded_all = true;
            }
            else
            {
                if (Menu.Active_Item == Menu.Menu_item.Home)
                {
                    Database_Handler.Load_Data_Server(Handler_Type.events);
                }
                else if (Menu.Active_Item != Menu.Menu_item.Users)
                {
                    Database_Handler.Load_Data_Server((Handler_Type)Menu.Active_Item);
                }

                if (Initialized[typeof(Calendar_Events)])
                {
                    User.Update_Data("", "", false, true);
                }
            }

            updating = true;
            load_icon.gameObject.SetActive(true);
            load_icon.sizeDelta = new Vector3(load_icon.sizeDelta.x, 60);
            Utils.Update_UI     = true;
        }
        else if (!updating && User_Loaded >= 1 && Singleton.load_icon.sizeDelta.y > 0)
        {
            Singleton.load_icon.sizeDelta = new Vector3(Singleton.load_icon.sizeDelta.x, Singleton.load_icon.sizeDelta.y - Time.deltaTime * 250);

            if (Singleton.load_icon.sizeDelta.y < 0)
            {
                Singleton.load_icon.sizeDelta = new Vector3(Singleton.load_icon.sizeDelta.x, 0);
                Singleton.load_icon.gameObject.SetActive(false);

                if (Menu.Active_Item == Menu.Menu_item.Home)
                {
                    Utils.Update_UI = true;
                }
            }
        }
    }
    public void Delete()
    {
        string[] field_names = { "REQUEST_TYPE", "data_id" };
        string[] field_values;

        if (Data.GetType().Equals(typeof(Poll)))
        {
            field_values = new string[] { "delete_poll", Data.Id.ToString() }
        }
        ;

        else if (Data.GetType().Equals(typeof(Calendar_Event)))
        {
            field_values = new string[] { "delete_event", Data.Id.ToString() }
        }
        ;

        else if (Data.GetType().Equals(typeof(News_Entry)))
        {
            field_values = new string[] { "delete_news", Data.Id.ToString() }
        }
        ;

        else
        {
            return;
        }


        Notification_UI_Pop.Show_Message(
            "Confirmar eliminación",
            "Seguro que quieres eliminar este archivo?",
            () =>
        {
            Type type = Data.Database_Handler_Type();
            List <Data_struct> data_list = Database_Handler.Data_List_Get(type);
            data_list.Remove(data_list.Find(a => a.Id == Data.Id));
            Database_Handler.Data_List_Set(type, data_list);

            Http_Client.Send_Post(
                field_names,
                field_values,
                Handle_Delete_Response
                );

            Menu.Singleton.Load_Scene_Menu_Item(Prev);
        },
            "Eliminar",
            "Cancelar");
    }
    static void Load_Data_Cache()
    {
        if (PlayerPrefs.HasKey("user_database") && PlayerPrefs.HasKey("version") && PlayerPrefs.HasKey("db_key") &&
            PlayerPrefs.GetString("version") == Application.version.ToString() &&
            Database_Handler.Is_Clean(PlayerPrefs.GetString("user_database")))
        {
            Debug.Log("Loading from cache");
            User.Psswd = PlayerPrefs.GetString("user_psswd");
            User.User_Info.Username = PlayerPrefs.GetString("user_username");
            Login.Singleton.Set_Input_Fields();
            User.Parse_User_Data(PlayerPrefs.GetString("user_database"));
            Database_Handler.Load_Data_Cache(Handler_Type.news);
            Database_Handler.Load_Data_Cache(Handler_Type.events);
            Database_Handler.Load_Data_Cache(Handler_Type.polls);
            Database_Handler.Load_Data_Cache(Handler_Type.docs);

            User.Update_Data("", "", false);
        }
    }
    static System.Collections.IEnumerator Redirect(Data_struct data)
    {
        while (Database_Handler.Data_List_Get(data.Database_Handler_Type()).Count == 0)
        {
            yield return(null);
        }

        yield return(null);

        List <Data_struct> data_list   = Database_Handler.Data_List_Get(data.Database_Handler_Type());
        Data_struct        chosen_data = data_list.Find(x => x.Id == data.Id);

        if (!chosen_data.Equals(Activator.CreateInstance(chosen_data.GetType())))
        {
            Database_Handler.Selected_Data = chosen_data;

            switch ((Notification_Sender.Redirect_Type)Enum.Parse(typeof(Notification_Sender.Redirect_Type), data.GetType().ToString()))
            {
            case Notification_Sender.Redirect_Type.Calendar_Event:
                Menu.Singleton.Load_Scene_Menu_Item(Menu.Menu_item.Events_details);
                break;

            case Notification_Sender.Redirect_Type.News_Entry:
                Menu.Singleton.Load_Scene_Menu_Item(Menu.Menu_item.News_details);
                break;

            case Notification_Sender.Redirect_Type.Poll:
                if (((Poll)chosen_data).Votable_Type == Votable_Type.Multiple_Single_Select)
                {
                    Menu.Singleton.Load_Scene_Menu_Item(Menu.Menu_item.Poll_details_single);
                }
                else
                {
                    Menu.Singleton.Load_Scene_Menu_Item(Menu.Menu_item.Poll_details_multi);
                }
                break;
            }
        }
    }
示例#10
0
    public static void Parse_User_Data(string response, bool load = true, bool save = false)
    {
        if (load)
        {
            On_Success_temp = Login.Singleton.On_Load_Success;
            OnFailure_temp  = Login.Singleton.On_Load_Failure;
        }

        string[] tokens       = Utils.Split(response, '~');
        string[] tokens_error = Utils.Split(response, '*');

        if (tokens[0] == "VERIFIED.")
        {
            Handle_User_Data(tokens[1]);

            if (save)
            {
                Debug.Log("Saving user database.");
                Database_Handler.Save_Database("user_database", response);
                PlayerPrefs.SetString("user_username", User_Info.Username);
                PlayerPrefs.SetString("user_psswd", Psswd);
                PlayerPrefs.SetString("version", Application.version.ToString());
            }

            Initialized = true;
            On_Success_temp?.Invoke();
        }
        else
        {
            if (!response.ToLower().Contains("wrong_credentials"))
            {
                Message.ShowMessage("Error interno del servidor.");
            }

            OnFailure_temp?.Invoke();
        }
    }
示例#11
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();
    }
示例#12
0
    public void Initialize()
    {
        List <Data_struct> data = Database_Handler.Data_List_Get(typeof(Calendar_Events));

        Shown_Events = new List <Calendar_Event>();

        for (int x = 0; x < data.Count; x++)
        {
            if (x >= 5)
            {
                break;
            }
            Shown_Events.Add((Calendar_Event)data[x]);
        }

        if (!calendar && Shown_Events.Count > 0)
        {
            shown_events_UI[0].Set_Data(Shown_Events[Shown_Events.Count - 1]);
            shown_events_UI[0].gameObject.SetActive(true);

            for (int x = 1; x < shown_events_UI.Length; x++)
            {
                int idx = x - 1;

                if (idx >= Shown_Events.Count)
                {
                    idx -= Shown_Events.Count;
                }

                shown_events_UI[x].Set_Data(Shown_Events[idx]);
                shown_events_UI[x].gameObject.SetActive(true);
            }

            Idx_Handler.Singleton.Initialize(Shown_Events.Count);
        }
    }
 void OnDestroy()
 {
     Singleton = null;
 }
    // ______________________________________
    //
    // 2. MONOBEHAVIOUR LIFE CYCLE.
    // ______________________________________
    //


    protected virtual void Awake()
    {
        Singleton = this;
    }
示例#15
0
 void Awake()
 {
     Singleton = this;
     Database_Handler.Initialize_Dictionaries();
     Scroll_Updater.Initialize();
 }
    public void Save()
    {
        List <string> field_names = new List <string>()
        {
            "REQUEST_TYPE",
        };

        List <string> field_values = new List <string>()
        {
            "",
            Data.Id.ToString(),
            Encryption.Encrypt(Data.Title),
            Encryption.Encrypt(Data.Details),
            Data.Author_Id.ToString(),
            Data.Privacy.ToString()
        };

        if (Data.GetType().Equals(typeof(Poll)))
        {
            Poll data = (Poll)Data;
            field_names.AddRange(new List <string>()
            {
                "poll_id",
                "poll_name",
                "poll_details",
                "poll_author_id",
                "poll_privacy",
                "poll_date_creation",
                "poll_date_deadline",
                "poll_options"
            });

            field_values[0] = "set_poll";
            field_values.AddRange(new List <string>()
            {
                Utils.Get_String_SQL(data.Creation_Time),
                Utils.Get_String_SQL(data.Date_Deadline),
                Utils.List_To_String(data.Vote_Types)
            });
        }

        else if (Data.GetType().Equals(typeof(Calendar_Event)))
        {
            Calendar_Event data = (Calendar_Event)Data;
            field_names.AddRange(new List <string>()
            {
                "event_id",
                "event_name",
                "event_details",
                "event_author_id",
                "event_privacy",
                "event_location_event",
                "event_location_meeting",
                "event_date_event",
                "event_date_meeting",
                "event_date_deadline",
                "event_transportation",
                "event_cash",
                "event_food"
            });

            field_values[0] = "set_event";
            field_values.AddRange(new List <string>()
            {
                Encryption.Encrypt(data.Location_Event),
                Encryption.Encrypt(data.Location_Meeting),
                Utils.Get_String_SQL(data.Date_Event),
                Utils.Get_String_SQL(data.Date_Meeting),
                Utils.Get_String_SQL(data.Date_Deadline),
                Encryption.Encrypt(data.Transportation),
                Encryption.Encrypt(data.Cash),
                Encryption.Encrypt(data.Food)
            });
        }

        else if (Data.GetType().Equals(typeof(News_Entry)))
        {
            News_Entry data = (News_Entry)Data;
            field_names.AddRange(new List <string>()
            {
                "news_id",
                "news_name",
                "news_details",
                "news_author_id",
                "news_privacy",
                "news_date_creation",
                "news_images"
            });

            field_values[0] = "set_news";
            field_values.AddRange(new List <string>()
            {
                Utils.Get_String_SQL(data.Creation_time),
                Encryption.Encrypt(Utils.List_To_String(data.Imgs))
            });
        }

        else
        {
            return;
        }

        Database_Handler.Selected_Data = Data;

        if (Data.Id == 0)
        {
            Database_Handler.Data_List_Add(Data.Database_Handler_Type(), Data);
        }

        Http_Client.Send_Post(
            field_names.ToArray(),
            field_values.ToArray(),
            Handle_Save_Response
            );

        Save_Button.interactable = false;
    }