Esempio n. 1
0
    public void MakeNewGroup(string groupname)
    {
        string newKey = FirebaseDatabase.DefaultInstance.GetReference("GROUP/").Push().Key; //새로운 키를 생성함 -> 그룹 고유의 아이디임
        Group  newbe  = new Group(newKey, groupname, userID);


        DB_GROUPCODE db = new DB_GROUPCODE();

        db.code = newKey;



        db.member.Add(userID);
        db.name = groupname;
        string json = JsonUtility.ToJson(db);

        FirebaseDatabase.DefaultInstance.GetReference("GROUP/" + newKey).SetRawJsonValueAsync(json);
        _controller.group_list.Add(newbe);

        int     index = _controller.group_list.Count - 1;
        GROUPDB tmpdb = new GROUPDB();

        tmpdb.code = newKey;
        FirebaseDatabase.DefaultInstance.GetReference("USER/" + userID + "/group_list/" + index).SetRawJsonValueAsync(JsonUtility.ToJson(tmpdb));
    }
Esempio n. 2
0
    public void AcceptInvite(Feed feed)
    {
        string code = feed.groupcode;

        FirebaseDatabase.DefaultInstance.GetReference("GROUP/" + code).GetValueAsync().ContinueWith(task =>
        {
            if (task.IsFaulted)
            {
            }
            else if (task.IsCanceled)
            {
            }
            else if (task.IsCompleted)
            {
                DataSnapshot snap = task.Result;
                Group group       = new Group();

                if (snap.ChildrenCount == 0)
                {
                    Debug.Log("empty");
                    return;
                }

                IDictionary result = (IDictionary)snap.Value;

                group.name = result["name"].ToString();
                group.code = result["code"].ToString();
                //그룹의 시간표
                if (result.Contains("events_list"))
                {
                    Dictionary <string, object> evnet_list = (Dictionary <string, object>)result["events_list"];

                    //List<object> evnet_list = (List<object>)result["events_list"];
                    foreach (var eitem in evnet_list)
                    {
                        string key      = eitem.Key;
                        IDictionary tmp = (IDictionary)eitem.Value;

                        int year           = Convert.ToInt32(tmp["year"].ToString());
                        int month          = Convert.ToInt32(tmp["month"].ToString());
                        int day            = Convert.ToInt32(tmp["day"].ToString());
                        int hour           = Convert.ToInt32(tmp["hour"].ToString());
                        int min            = Convert.ToInt32(tmp["min"].ToString());
                        string title       = tmp["title"].ToString();
                        string description = tmp["description"].ToString();
                        string place       = tmp["place"].ToString();
                        group.events_list.Add(key, new Events(year, month, day, hour, min, title, description, place));
                    }
                }


                if (result.Contains("feed"))
                {
                    Dictionary <string, object> feed_list = (Dictionary <string, object>)result["feed"];

                    //List<object> evnet_list = (List<object>)result["events_list"];
                    foreach (var eitem in feed_list)
                    {
                        string key      = eitem.Key;
                        IDictionary tmp = (IDictionary)eitem.Value;

                        string title = tmp["title"].ToString();
                        string body  = tmp["body"].ToString();
                        string gcode = group.code;

                        MainController.Feed tmpFeed = new MainController.Feed();
                        tmpFeed.title     = title;
                        tmpFeed.body      = body;
                        tmpFeed.groupcode = gcode;

                        group.feed_list.Add(key, tmpFeed);
                    }
                }
                DB_GROUPCODE tmpdb = new DB_GROUPCODE();
                if (result.Contains("member"))
                {
                    List <object> memberlist = (List <object>)result["member"];
                    foreach (var sitem in memberlist)
                    {
                        tmpdb.member.Add(sitem.ToString());

                        if (!sitem.ToString().Equals(userID))
                        {
                            RetrieveMemberData(group, sitem.ToString());
                        }
                    }
                }
                tmpdb.code = code;
                tmpdb.name = group.name;
                tmpdb.member.Add(userID);
                //todo add groupinfo
                _controller.group_list.Add(group);

                Debug.Log("add");

                int memberidx = _controller.group_list[_controller.group_list.Count - 1].member.Count;

                FirebaseDatabase.DefaultInstance.GetReference("GROUP/" + code).SetRawJsonValueAsync(JsonUtility.ToJson(tmpdb));
                int gidx   = _controller.group_list.Count - 1;
                GROUPDB DB = new GROUPDB();
                DB.code    = code;

                FirebaseDatabase.DefaultInstance.GetReference("USER/" + userID + "/group_list/" + gidx).SetRawJsonValueAsync(JsonUtility.ToJson(DB));
                _controller.setGroup();
            }
        });
    }