示例#1
0
        // POST -> api/createRoom | roomName in form data
        public static ResponseData CreateRoom(Session session, Dictionary <string, string> kwargs)
        {
            string   roomName = kwargs["roomName"];
            Guid     userID   = Guid.Parse(session.SessionData["UserID"]);
            ChatRoom chatRoom = new ChatRoom()
            {
                Name   = roomName,
                IDList = new List <Guid>()
                {
                    userID
                }
            };

            JSONFileService.Add(chatRoom);

            JSONFileService.Update <User>(userID, chatRoom.ID);

            string status = string.Format("Created chatroom {0}", roomName);

            return(new ResponseData()
            {
                ContentType = "text",
                Encoding = Encoding.UTF8,
                Data = Encoding.UTF8.GetBytes(status),
                Status = ServerStatus.OK,
                Complete = true
            });
        }
示例#2
0
        // GET -> api/seticon | icon in params
        public static ResponseData SetIcon(Session session, Dictionary <string, string> kwargs)
        {
            string icon = kwargs["icon"];

            JSONFileService.Update(Guid.Parse(session.SessionData["UserID"]), icon);
            JSONPacket jp = new JSONPacket()
            {
                HasIcon = true, Redirect = "/welcome"
            };

            return(new ResponseData()
            {
                Data = Encoding.UTF8.GetBytes(jp.ToString()),
                Complete = true,
                ContentType = "text/json",
                Encoding = Encoding.UTF8,
                Status = ServerStatus.OK
            });
        }
示例#3
0
        // GET -> api/join?id=...
        public static ResponseData JoinRoom(Session session, Dictionary <string, string> kwargs)
        {
            Guid         RoomId;
            ServerStatus status = ServerStatus.UnknownType;

            if (Guid.TryParse(kwargs["id"], out RoomId))
            {
                Guid UserID = Guid.Parse(session.SessionData["UserID"]);
                JSONFileService.Update <ChatRoom>(RoomId, UserID);
                JSONFileService.Update <User>(UserID, RoomId);
                status = ServerStatus.OK;
            }
            return(new ResponseData()
            {
                Complete = true,
                ContentType = "text/json",
                Encoding = Encoding.UTF8,
                Status = status,
                Data = new byte[] {}
            });
        }
示例#4
0
        // POST -> api/messages | message text and user icon in form data
        public static ResponseData AddMessage(Session session, Dictionary <string, string> kwargs)
        {
            string currRoom;

            if (session.SessionData.TryGetValue("currentRoom", out currRoom))
            {
                string  messageBody = kwargs["message"];
                string  icon        = kwargs["icon"];
                Message message     = new Message()
                {
                    Sender   = session.SessionData["Username"],
                    Body     = messageBody,
                    TimeSent = DateTime.Now,
                    Icon     = icon
                };
                JSONFileService.Update(Guid.Parse(currRoom), message);
                kwargs["id"] = currRoom;
                return(GetMessages(session, kwargs));
            }
            return(new ResponseData()
            {
                Status = ServerStatus.ServerError, Complete = true
            });
        }