コード例 #1
0
ファイル: RoomsController.cs プロジェクト: rfire01/SAGLET
        public void HandleLiveAction(string actID, string xmlstr, string log, string eventName, int roomID)
        {
            //temporary solution for "if(url.xml == null)" always pass
            var    logRes = JsonConvert.DeserializeObject <dynamic>(log);
            string user   = logRes.userName.Value.ToString().Trim();

            if (isSagletUserInRoom(roomID.ToString(), user))
            {
                return;
            }
            criticalPointAlerts.user_action(roomID, user);
            UpdateRoomLastUpdate(roomID);
            //end temporary solution

            // TODO handle log and eventName
            var url = JsonConvert.DeserializeObject <dynamic>(xmlstr);

            if (url.xml == null)
            {
                return;
            }
            //var logRes= JsonConvert.DeserializeObject<dynamic>(log);

            VAction action = VAction.ConvertLiveActionJson(actID, url.xml.ToString(), logRes, eventName);

            if (action != null)
            {
                action.CriticalPoints = CriticalPointAnalyzer.Analyze(action);
                //int roomID = db.Tabs.Find(action.TabID).GroupID;
                //action.CriticalPoints.Add(criticalPointAlerts.user_action(roomID, action.UserID, (List<CriticalActionPoints>)action.CriticalPoints));

                //temporary canceled
                SaveActionToDB(roomID, action);
                hubDetails.UpdateRoomActionLiveControl(roomID.ToString(), action);
                //hubIndex.UpdateRoomIndex(roomID.ToString());
            }
        }
コード例 #2
0
ファイル: RoomsController.cs プロジェクト: rfire01/SAGLET
        /* Sockets msgs */
        public void HandleLiveMessage(int roomID, string json)
        {
            var  results = JsonConvert.DeserializeObject <dynamic>(json);
            VMsg msg     = VMsg.ConvertLiveMessageJson(roomID, results);

            //check msg not empty and its not teacher message
            if (msg != null && !isSagletUserInRoom(roomID.ToString(), msg.UserID))
            {
                msg.CriticalPoints = CriticalPointAnalyzer.Analyze(msg, hubDetails);  //tag for current message

                if (msg.Text.Contains("joined"))
                {
                    string user = msg.Text.Split(' ')[0];

                    if (!isSagletUserInRoom(roomID.ToString(), user))
                    {
                        if (criticalPointAlerts.RoomStarted(roomID))
                        {
                            string[]      arr        = { user };
                            List <string> userJoined = new List <string>(arr);
                            string        jsonRes    = JsonConvert.SerializeObject(new KeyValuePair <CriticalPointTypes, List <string> >(CriticalPointTypes.UJ, userJoined));
                            hubDetails.UpdateUserInRoom(roomID.ToString(), jsonRes);
                        }
                        criticalPointAlerts.user_joined(roomID, user);
                    }

                    CriticalMsgPoints serverCp = new CriticalMsgPoints();
                    serverCp.Type = CriticalPointTypes.None;
                    msg.CriticalPoints.Add(serverCp);
                }
                else if (msg.Text.Contains("left"))
                {
                    string user = msg.Text.Split(' ')[0];

                    if (!isSagletUserInRoom(roomID.ToString(), user))
                    {
                        if (criticalPointAlerts.RoomStarted(roomID))
                        {
                            string[]      arr2     = { user };
                            List <string> userLeft = new List <string>(arr2);
                            string        jsonRes  = JsonConvert.SerializeObject(new KeyValuePair <CriticalPointTypes, List <string> >(CriticalPointTypes.UL, userLeft));
                            hubDetails.UpdateUserInRoom(roomID.ToString(), jsonRes);
                        }
                        criticalPointAlerts.user_left(roomID, user);
                    }

                    CriticalMsgPoints serverCp = new CriticalMsgPoints();
                    serverCp.Type = CriticalPointTypes.None;
                    msg.CriticalPoints.Add(serverCp);
                }
                else
                {
                    if (msg.UserID != "server")
                    {
                        msg.CriticalPoints.Add(criticalPointAlerts.user_msg(msg.GroupID, msg.UserID, (List <CriticalMsgPoints>)msg.CriticalPoints));
                    }
                    else
                    {
                        CriticalMsgPoints serverCp = new CriticalMsgPoints();
                        serverCp.Type = CriticalPointTypes.None;
                        msg.CriticalPoints.Add(serverCp);
                    }
                }

                //temporary canceled
                //need to fix saveChatMsgToDB to handle 2 cps
                //SaveChatMsgToDB(roomID, msg);

                if (msg.UserID != "server")
                {
                    Logger.Log(msg.TimeStamp.ToLocalTime().ToString(), roomID.ToString(), msg.UserID, msg.Text, msg.CriticalPoints.ElementAt(0).Type.ToString(), msg.CriticalPoints.ElementAt(1).Type.ToString());
                    UpdateRoomLastUpdate(roomID);
                    hubDetails.UpdateRoomMsgLiveControl(roomID.ToString(), msg);
                }
            }
        }