Ejemplo n.º 1
0
        public static void SendTakesList(ESocket socket)
        {
            string id = GachonSocket.GetId(socket);

            if (id != null)
            {
                MysqlNode node = new MysqlNode(private_data.mysqlOption, "SELECT * FROM takes_course JOIN course ON takes_course.course_no=course.no WHERE student_id=?id");
                node["id"] = id;
                JArray group  = new JArray();
                JArray course = new JArray();
                using (node.ExecuteReader())
                {
                    while (node.Read())
                    {
                        if (node.GetString("type") == "Class")
                        {
                            course.Add(node.GetString("name"));
                        }
                        else if (node.GetString("type") == "Group")
                        {
                            group.Add(node.GetString("name"));
                        }
                    }
                }

                JObject json = new JObject();
                json["type"]  = AndroidProtocol.GroupList;
                json["group"] = group;
                json["class"] = course;
                socket.Send(json);
            }
        }
Ejemplo n.º 2
0
        public static void NewKeyword(ESocket socket, string keyword)
        {
            string id = GachonSocket.GetId(socket);

            if (id != null)
            {
                keyword = keyword.Trim();
                if (keyword.Length == 0)
                {
                    NetworkMessageList.TipMessage(socket, "추가하실 키워드를 입력해주세요.");
                    return;
                }
                MysqlNode node = new MysqlNode(private_data.mysqlOption, "INSERT INTO keyword(student_id, keyword) VALUES (?id, ?keyword)");
                node["id"]      = id;
                node["keyword"] = keyword;
                int result = node.ExecuteNonQuery();
                if (result != 1)
                {
                    NetworkMessageList.TipMessage(socket, "이미 등록된 키워드입니다.");
                }
                else if (result == 0)
                {
                    NetworkMessageList.TipMessage(socket, "오류로 인해 키워드 추가가 불가능합니다 (ERROR CODE : " + result + ")");
                }
                else
                {
                    NetworkMessageList.TipMessage(socket, "[키워드] \"" + keyword + "\" 가 추가되었습니다.");
                    KeywordList(socket);
                }
            }
        }
Ejemplo n.º 3
0
        public static void GetPostList(ESocket socket, int no)
        {
            string id = GachonSocket.GetId(socket);

            if (id != null)
            {
                MysqlNode mysqlNode = new MysqlNode(private_data.mysqlOption, "SELECT * FROM post_name where receiver=?id and no > ?no order by date");
                mysqlNode["no"] = no;
                mysqlNode["id"] = id;
                JArray array = new JArray();
                using (mysqlNode.ExecuteReader())
                {
                    while (mysqlNode.Read())
                    {
                        JObject item = new JObject();
                        item["title"]     = mysqlNode.GetString("title");
                        item["content"]   = mysqlNode.GetString("content");
                        item["no"]        = mysqlNode.GetInt("no");
                        item["sender"]    = mysqlNode.GetString("sender_name");
                        item["sender_id"] = mysqlNode.GetString("sender");
                        item["date"]      = (mysqlNode.GetDateTime("date")).ToString("yyyy-MM-dd HH:mm:ss");
                        array.Add(item);
                    }
                }

                JObject json = new JObject();
                json["type"]  = AndroidProtocol.PostList;
                json["items"] = array;
                socket.Send(json);
                return;
            }
        }
Ejemplo n.º 4
0
        public static void ReturnInfo(ESocket socket)
        {
            string id = GachonSocket.GetId(socket);

            if (id != null)
            {
                JObject json = new JObject();
                json["type"]       = AndroidProtocol.Info;
                json["name"]       = GachonObjects.AllUser[id].Name;
                json["department"] = GachonObjects.AllUser[id].Department;
                json["number"]     = GachonObjects.AllUser[id].StudentNumber;
                socket.Send(json);
            }
        }
Ejemplo n.º 5
0
        public static void KeywordList(ESocket socket)
        {
            string id = GachonSocket.GetId(socket);

            if (id != null)
            {
                MysqlNode node = new MysqlNode(private_data.mysqlOption, "SELECT * FROM keyword WHERE student_id=?id");
                node["id"] = id;
                JArray array = new JArray();
                using (node.ExecuteReader())
                {
                    while (node.Read())
                    {
                        array.Add(node.GetString("keyword"));
                    }
                }
                JObject json = new JObject();
                json["type"] = AndroidProtocol.KeywordList;
                json["list"] = array;
                socket.Send(json);
            }
        }
Ejemplo n.º 6
0
        public static bool SendPost(ESocket socket, JObject message)
        {
            // 유효성 검사
            string id = GachonSocket.GetId(socket);

            if (id == null)
            {
                NetworkMessageList.TipMessage(socket, "로그인 권한을 얻을 수 없습니다. 다시 접속해주세요.");
                return(false);
            }
            string title = ((string)message["title"]).Trim();

            if (string.IsNullOrEmpty(title))
            {
                NetworkMessageList.TipMessage(socket, "우편 제목을 입력해주세요.");
                return(false);
            }
            string content = ((string)message["content"]);

            if (string.IsNullOrEmpty(content))
            {
                content = ""; // 우편 내용은 없어도 가능
            }
            string receiver = ((string)message["receiver"]);

            if (string.IsNullOrEmpty(receiver))
            {
                NetworkMessageList.TipMessage(socket, "받을 사람을 입력해주세요.");
                return(false);
            }
            string receiver_id = GachonLibrary.GachonUser.GetID(receiver);

            if (receiver_id == null)
            {
                NetworkMessageList.TipMessage(socket, "데이터베이스에서 해당 유저를 찾을 수 없습니다. (가천빌리지에 한번이라도 로그인 해야함)");
                return(false);
            }
            else if (receiver_id == "")
            {
                NetworkMessageList.TipMessage(socket, "수신자가 중복으로 존재합니다. 이름 뿐만 아니라 학번 또는 아이디 정보를 입력하여 받는 사람을 정확히 지정해주세요.");
                return(false);
            }
            if (User.Items.ContainsKey(socket)) // 게임 접속 유저일경우
            {
                User user    = User.Items[socket];
                int  file_no = -1;
                if (message["file"] != null)
                {
                    file_no = (int)message["file"];
                    if (!user.HaveItem(file_no))
                    {
                        NetworkMessageList.TipMessage(socket, "해당 파일에 대한 권한이 없습니다. 인벤토리를 확인해주세요.");
                        return(false);
                    }
                }
                SendPost(title, content, id, receiver_id, true, file_no);
                NetworkMessageList.TipMessage(socket, "우편을 성공적으로 전송하였습니다.");
                GetPage(user, 1); // 우편 리스트를 보며주는 UI로 연결
                return(true);
            }
            else // 게임 유저가 아닐경우 (안드로이드)
            {
                SendPost(title, content, id, receiver_id);
                return(true);
            }
        }