Exemplo n.º 1
0
        public string Action_Set_SendMessage(string uid, string messageSymbol, string message, List <string> lstOwners, AppLoader existedLoader)
        {
            foreach (string owner in lstOwners)
            {
                if (_accountTokenMap.ContainsKey(owner))
                {
                    string    owner_token  = _accountTokenMap[owner];
                    WebSocket owner_socket = null;
                    if (_sockets.ContainsKey(owner_token))
                    {
                        owner_socket = _sockets[owner_token];
                        StringBuilder sent_message = new StringBuilder();
                        sent_message.Append("<root>");
                        sent_message.Append("<from>" + uid);
                        sent_message.Append("</from>");
                        sent_message.Append("<group>");
                        sent_message.Append("</group>");
                        sent_message.Append("<action>");
                        sent_message.Append(Global.ActionsMap.Passive_Get_ReceivedMessage);
                        sent_message.Append("</action>");
                        sent_message.Append("<msg>");
                        sent_message.Append(message);
                        sent_message.Append("</msg>");
                        sent_message.Append("</root>");
                        SendStringAsync(owner_socket, message);
                    }
                }
            }
            Dictionary <string, string> activeParams = new Dictionary <string, string>();

            activeParams.Add("symbol", messageSymbol);
            DataTable activeDataTable = existedLoader.ExecuteSelectWithConditionsReturnDT(Global.GlobalDefines.DB_KEY_IKCODER_BASIC, Global.MapStoreProcedures.ikcoder_basic.spa_operation_messages_students, activeParams);

            if (activeDataTable == null)
            {
                return("<root type='error'><errmsg>lostdata</errmsg></root>");
            }
            else
            {
                string base64MsgContent = string.Empty;
                string id = string.Empty;
                Data_dbDataHelper.GetArrByteColumnDataToString(activeDataTable.Rows[0], "content", out base64MsgContent);
                Data_dbDataHelper.GetColumnData(activeDataTable.Rows[0], "id", out id);
                string      MsgContent = Util_Common.Decoder_Base64(base64MsgContent);
                XmlDocument contentDoc = new XmlDocument();
                contentDoc.LoadXml(MsgContent);
                XmlNode newItem = Util_XmlOperHelper.CreateNode(contentDoc, "item", message);
                Util_XmlOperHelper.SetAttribute(newItem, "date", DateTime.Now.ToString("yyyy-MM-dd"));
                Util_XmlOperHelper.SetAttribute(newItem, "time", DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second);
                Util_XmlOperHelper.SetAttribute(newItem, "dt", DateTime.Now.ToString());
                contentDoc.SelectSingleNode("/msg").AppendChild(newItem);
                string MsgBase64Conetent = Util_Common.Encoder_Base64(contentDoc.OuterXml);
                activeParams.Clear();
                activeParams.Add("id", id);
                activeParams.Add("content", MsgBase64Conetent);
                existedLoader.ExecuteUpdate(Global.GlobalDefines.DB_KEY_IKCODER_BASIC, Global.MapStoreProcedures.ikcoder_basic.spa_operation_messages_students, activeParams);
                return("<root><msg>sent</msg></root>");
            }
        }
Exemplo n.º 2
0
 public ContentResult Action()
 {
     try
     {
         XmlDocument resultDoc = new XmlDocument();
         resultDoc.LoadXml("<root></root>");
         string uname = GetAccountInfoFromBasicController("name");
         Dictionary <string, string> paramsForBasic = new Dictionary <string, string>();
         paramsForBasic.Add("@uid", uname);
         DataTable dtData = _appLoader.ExecuteSelectWithMixedConditionsReturnDT(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_course_exp, paramsForBasic);
         if (dtData != null && dtData.Rows.Count > 0)
         {
             DataRow currentRow = null;
             Data_dbDataHelper.GetActiveRow(dtData, 0, out currentRow);
             if (currentRow != null)
             {
                 int       exp_value = Data_dbDataHelper.GetColumnIntData(currentRow, "exp");
                 DataTable dtTitle   = _appLoader.ExecuteSelect(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_titles_defined);
                 if (dtData != null && dtData.Rows.Count > 0)
                 {
                     foreach (DataRow activeRow in dtData.Rows)
                     {
                         string title_name    = string.Empty;
                         string title_titles  = string.Empty;
                         int    title_exp_min = 0;
                         int    title_exp_max = 0;
                         Data_dbDataHelper.GetColumnData(activeRow, "name", out title_name);
                         Data_dbDataHelper.GetColumnData(activeRow, "titles", out title_titles);
                         title_exp_min = Data_dbDataHelper.GetColumnIntData(activeRow, "exp_min");
                         title_exp_max = Data_dbDataHelper.GetColumnIntData(activeRow, "exp_max");
                         if (exp_value >= title_exp_max)
                         {
                             XmlNode itemNode = Util_XmlOperHelper.CreateNode(resultDoc, "item", "");
                             resultDoc.SelectSingleNode("/root").AppendChild(itemNode);
                             Util_XmlOperHelper.SetAttribute(itemNode, "name", title_name);
                             Util_XmlOperHelper.SetAttribute(itemNode, "title", title_titles);
                             Util_XmlOperHelper.SetAttribute(itemNode, "isget", "1");
                         }
                         else
                         {
                             XmlNode itemNode = Util_XmlOperHelper.CreateNode(resultDoc, "item", "");
                             resultDoc.SelectSingleNode("/root").AppendChild(itemNode);
                             Util_XmlOperHelper.SetAttribute(itemNode, "name", title_name);
                             Util_XmlOperHelper.SetAttribute(itemNode, "title", title_titles);
                             Util_XmlOperHelper.SetAttribute(itemNode, "expvalue", exp_value.ToString());
                             Util_XmlOperHelper.SetAttribute(itemNode, "isget", "0");
                         }
                     }
                 }
             }
         }
         return(Content(resultDoc.OuterXml));
     }
     catch
     {
         return(Content(MessageHelper.ExecuteFalse(Global.MsgMap.MsgCodeMap[Global.MsgKeyMap.MsgKey_Fetch_Error], Global.MsgMap.MsgContentMap[Global.MsgKeyMap.MsgKey_Fetch_Error])));
     }
 }
        public ContentResult Action()
        {
            string strRequest = _appLoader.get_PostData(HttpContext.Request);

            try
            {
                if (string.IsNullOrEmpty(strRequest))
                {
                    return(Content(MessageHelper.ExecuteFalse(Global.MsgMap.MsgCodeMap[Global.MsgKeyMap.MsgKey_Request_Invalidate], Global.MsgMap.MsgContentMap[Global.MsgKeyMap.MsgKey_Request_Invalidate])));
                }
                XmlDocument requestDoc = new XmlDocument();
                requestDoc.LoadXml(strRequest);
                XmlNode typeNode   = requestDoc.SelectSingleNode("/root/type");
                XmlNode actionNode = requestDoc.SelectSingleNode("/root/action");
                XmlNode codeNode   = requestDoc.SelectSingleNode("/root/code");
                string  str_code   = Util_XmlOperHelper.GetNodeValue(codeNode);
                string  str_action = Util_XmlOperHelper.GetNodeValue(actionNode);
                string  str_type   = Util_XmlOperHelper.GetNodeValue(typeNode);
                Dictionary <string, string> paramsmap = new Dictionary <string, string>();
                string uname = GetAccountInfoFromBasicController("name");
                paramsmap.Add("@uid", uname);
                paramsmap.Add("@rdt", DateTime.Now.ToString("yyyy-MM-dd"));
                paramsmap.Add("@actions", str_action);
                paramsmap.Add("@code", str_code);
                paramsmap.Add("@type", str_type);
                DataTable dtLearning = _appLoader.ExecuteSelectWithMixedConditionsReturnDT(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_learninrecord, paramsmap);
                if (dtLearning != null)
                {
                    if (dtLearning.Rows.Count >= 1)
                    {
                        int    times = Data_dbDataHelper.GetColumnIntData(dtLearning.Rows[0], "times");
                        string id    = string.Empty;
                        Data_dbDataHelper.GetColumnData(dtLearning.Rows[0], "id", out id);
                        paramsmap.Add("@times", (times++).ToString());
                        paramsmap.Add("@rtime", DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second);
                        paramsmap.Add("@rfultime", DateTime.Now.ToString());
                        paramsmap.Add("@id", id);
                        _appLoader.ExecuteUpdate(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_learninrecord, paramsmap);
                        return(Content(MessageHelper.ExecuteSucessful()));
                    }
                }
                paramsmap.Add("@times", "1");
                paramsmap.Add("@rtime", DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second);
                paramsmap.Add("@rfultime", DateTime.Now.ToString());
                _appLoader.ExecuteInsert(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_learninrecord, paramsmap);
                return(Content(MessageHelper.ExecuteSucessful()));
            }
            catch
            {
                return(Content(MessageHelper.ExecuteFalse(Global.MsgMap.MsgCodeMap[Global.MsgKeyMap.MsgKey_Fetch_Error], Global.MsgMap.MsgContentMap[Global.MsgKeyMap.MsgKey_Fetch_Error])));
            }
        }
Exemplo n.º 4
0
        public XmlDocument createXmlDoc()
        {
            XmlDocument source = new XmlDocument();

            source.LoadXml("<root></root>");
            XmlNode rootNode = source.SelectSingleNode("/root");

            Util_XmlOperHelper.SetAttribute(rootNode, "name", name);
            Util_XmlOperHelper.SetAttribute(rootNode, "regtime", regedtime.ToString());
            Util_XmlOperHelper.SetAttribute(rootNode, "id", id);
            Util_XmlOperHelper.SetAttribute(rootNode, "lastvisited", lastVisted.ToString());
            return(source);
        }
Exemplo n.º 5
0
 public ContentResult Action()
 {
     try
     {
         string uname = GetAccountInfoFromBasicController("name");
         Dictionary <string, string> paramsMap = new Dictionary <string, string>();
         paramsMap.Add("@uid", uname);
         DataTable     dtData = _appLoader.ExecuteSelectWithConditionsReturnDT(AppMain.Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, AppMain.Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_coursepackage, paramsMap);
         List <string> lstCoursesFromPackage = new List <string>();
         foreach (DataRow activeDR in dtData.Rows)
         {
             string courseid = string.Empty;
             Data_dbDataHelper.GetColumnData(activeDR, "courseid", out courseid);
             string overdate = string.Empty;
             Data_dbDataHelper.GetColumnData(activeDR, "overdate", out overdate);
             DateTime dtOverdate = DateTime.Now;
             DateTime.TryParse(overdate, out dtOverdate);
             if (dtOverdate <= DateTime.Now)
             {
                 lstCoursesFromPackage.Add(courseid);
             }
         }
         XmlDocument returnDoc = new XmlDocument();
         returnDoc.LoadXml("<root></root>");
         dtData = _appLoader.ExecuteSelect(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_course_main);
         foreach (DataRow activeRow in dtData.Rows)
         {
             string course_name = string.Empty;
             Data_dbDataHelper.GetColumnData(activeRow, "name", out course_name);
             string course_id = string.Empty;
             Data_dbDataHelper.GetColumnData(activeRow, "id", out course_id);
             string course_title = string.Empty;
             Data_dbDataHelper.GetColumnData(activeRow, "title", out course_title);
             string course_isfree = string.Empty;
             Data_dbDataHelper.GetColumnData(activeRow, "isfree", out course_isfree);
             if (lstCoursesFromPackage.Contains(course_id) || course_isfree == "1")
             {
                 XmlNode newItemNode = Util_XmlOperHelper.CreateNode(returnDoc, "item", "");
                 Util_XmlOperHelper.SetAttribute(newItemNode, "name", course_name);
                 Util_XmlOperHelper.SetAttribute(newItemNode, "id", course_id);
                 Util_XmlOperHelper.SetAttribute(newItemNode, "title", course_title);
                 returnDoc.SelectSingleNode("/root").AppendChild(newItemNode);
             }
         }
         return(Content(returnDoc.OuterXml));
     }
     catch
     {
         return(Content(MessageHelper.ExecuteFalse(Global.MsgMap.MsgCodeMap[Global.MsgKeyMap.MsgKey_Fetch_Error], Global.MsgMap.MsgContentMap[Global.MsgKeyMap.MsgKey_Fetch_Error])));
     }
 }
Exemplo n.º 6
0
 public ContentResult Action()
 {
     try
     {
         XmlDocument messageDoc = new XmlDocument();
         messageDoc.LoadXml("<root></root>");
         XmlNode rootNode = messageDoc.SelectSingleNode("/root");
         XmlNode itemNode = Util_XmlOperHelper.CreateNode(messageDoc, "item", "");
         Util_XmlOperHelper.SetAttribute(itemNode, "MainService", "true");
         rootNode.AppendChild(itemNode);
         try
         {
             _appLoader.InitApiConfigs(Global.GlobalDefines.SY_CONFIG_FILE);
             itemNode = Util_XmlOperHelper.CreateNode(messageDoc, "item", "");
             Util_XmlOperHelper.SetAttribute(itemNode, "InitService", "true");
             rootNode.AppendChild(itemNode);
         }
         catch
         {
             itemNode = Util_XmlOperHelper.CreateNode(messageDoc, "item", "");
             Util_XmlOperHelper.SetAttribute(itemNode, "InitService", "false");
             rootNode.AppendChild(itemNode);
         }
         try
         {
             _appLoader.ConnectDB(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN);
             itemNode = Util_XmlOperHelper.CreateNode(messageDoc, "item", "");
             Util_XmlOperHelper.SetAttribute(itemNode, "ConnectDBService", "true");
             rootNode.AppendChild(itemNode);
         }
         catch
         {
             itemNode = Util_XmlOperHelper.CreateNode(messageDoc, "item", "");
             Util_XmlOperHelper.SetAttribute(itemNode, "ConnectDBService", "false");
             rootNode.AppendChild(itemNode);
         }
         return(Content(messageDoc.OuterXml));
     }
     catch
     {
         return(Content(MessageHelper.ExecuteFalse()));
     }
     finally
     {
         _appLoader.CloseDB();
     }
 }
 /// <summary>
 ///
 /// </summary>
 /// <returns>
 /// 1.name
 /// 2.regtime
 /// 3.id
 /// 4.lastvisited
 /// </returns>
 public string GetAccountInfoFromBasicController(string attrname)
 {
     if (string.IsNullOrEmpty(attrname))
     {
         return(string.Empty);
     }
     else
     {
         string      Url       = ROOT_SERVER + "Account_Students_GetCurrentAccountInfo";
         string      result    = RequestForString(Url, true);
         XmlDocument resultDoc = new XmlDocument();
         resultDoc.LoadXml(result);
         XmlNode rootNode     = resultDoc.SelectSingleNode("/root");
         string  returnResult = Util_XmlOperHelper.GetAttrValue(rootNode, attrname);
         return(returnResult);
     }
 }
        public ContentResult Action()
        {
            try
            {
                string      accoutInfo     = RequestForString("Account_Students_GetCurrentAccountInfo", true);
                XmlDocument accountInfoDoc = new XmlDocument();
                accountInfoDoc.LoadXml(accoutInfo);
                XmlNode rootNode = accountInfoDoc.SelectSingleNode("/root");
                if (rootNode != null)
                {
                    string id = Util_XmlOperHelper.GetAttrValue(rootNode, "id");
                    Dictionary <string, string> lstParams = new Dictionary <string, string>();
                    lstParams.Add("uid", id);
                    DataTable dtExp = _appLoader.ExecuteSelectWithMixedConditionsReturnDT(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_exp, lstParams);
                    if (dtExp != null && dtExp.Rows.Count > 0)
                    {
                        DataRow currentRow = null;
                        Data_dbDataHelper.GetActiveRow(dtExp, 0, out currentRow);
                        string strExp = string.Empty;
                        Data_dbDataHelper.GetColumnData(currentRow, "exp", out strExp);
                        int currentExp = 0;
                        int.TryParse(strExp, out currentExp);
                        DataTable dtData = _appLoader.ExecuteSelect(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_titles_defined);
                        //foreach(DataRow )


                        return(Content(Data_dbDataHelper.ActionConvertDTtoXMLString(dtData)));
                    }
                    else
                    {
                        return(Content(MessageHelper.ExecuteFalse(Global.MsgMap.MsgCodeMap[Global.MsgKeyMap.MsgKey_Fetch_Error], Global.MsgMap.MsgContentMap[Global.MsgKeyMap.MsgKey_Fetch_Error])));
                    }
                }
                else
                {
                    return(Content(MessageHelper.ExecuteFalse(Global.MsgMap.MsgCodeMap[Global.MsgKeyMap.MsgKey_Login_Needed], Global.MsgMap.MsgContentMap[Global.MsgKeyMap.MsgKey_Login_Needed])));
                }
            }
            catch
            {
                return(Content(MessageHelper.ExecuteFalse(Global.MsgMap.MsgCodeMap[Global.MsgKeyMap.MsgKey_Fetch_Error], Global.MsgMap.MsgContentMap[Global.MsgKeyMap.MsgKey_Fetch_Error])));
            }
        }
        public ContentResult action()
        {
            Dictionary <string, string> paramsmap = new Dictionary <string, string>();
            string uname = GetAccountInfoFromBasicController("name");

            paramsmap.Add("@uid", uname);
            class_data_MySqlDataReader mySqlDataReader = (class_data_MySqlDataReader)_appLoader.ExecuteSelectWithConditionsReturnDR(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_appstudio_store, paramsmap);
            XmlDocument doc = new XmlDocument();

            doc.LoadXml("<root></root>");
            while (mySqlDataReader.ActiveDataReader.Read())
            {
                XmlNode newItem = Util_XmlOperHelper.CreateNode(doc, "item", "");
                doc.SelectSingleNode("/root").AppendChild(newItem);
                Util_XmlOperHelper.SetAttribute(newItem, "id", mySqlDataReader.ActiveDataReader.GetString("id"));
                Util_XmlOperHelper.SetAttribute(newItem, "pname", mySqlDataReader.ActiveDataReader.GetString("pname"));
                Util_XmlOperHelper.SetAttribute(newItem, "imdt", mySqlDataReader.ActiveDataReader.GetString("imdt"));
            }
            mySqlDataReader.ActiveDataReader.Close();
            return(Content(doc.OuterXml));
        }
Exemplo n.º 10
0
        public string Action_Get_DialogList(string uid, AppLoader existedLoader)
        {
            string    query_sql       = "SELECT * FROM ikcoder_basic.messagesindex_students where symbol in (select symbol from ikcoder_basic.messagesindex_students where uid = '" + uid + "')";
            DataTable activeDataTable = existedLoader.ExecuteSQL(Global.GlobalDefines.DB_KEY_IKCODER_BASIC, query_sql);

            if (activeDataTable == null)
            {
                return("<root type='error'><errmsg>nodata</errmsg></root>");
            }
            else
            {
                XmlDocument returnDoc = new XmlDocument();
                returnDoc.LoadXml("<root></root>");
                XmlNode rootNode  = returnDoc.SelectSingleNode("/root");
                int     uid_index = 1;
                foreach (DataRow activeRow in activeDataTable.Rows)
                {
                    string strSymbol = string.Empty;
                    Data_dbDataHelper.GetColumnData(activeRow, "symbol", out strSymbol);
                    string uid_fromdb = string.Empty;
                    Data_dbDataHelper.GetColumnData(activeRow, "uid", out uid_fromdb);
                    if (uid == uid_fromdb)
                    {
                        continue;
                    }
                    XmlNode itemNode = returnDoc.SelectSingleNode("/root/item[@symbol='" + strSymbol + "']");
                    if (itemNode == null)
                    {
                        itemNode = Util_XmlOperHelper.CreateNode(returnDoc, "item", "");
                        rootNode.AppendChild(itemNode);
                    }
                    Util_XmlOperHelper.SetAttribute(itemNode, "uid", uid_fromdb);
                    Util_XmlOperHelper.SetAttribute(itemNode, "symbol", strSymbol);
                    Util_XmlOperHelper.SetAttribute(itemNode, "index", uid_index.ToString());
                    uid_index++;
                }
                return(returnDoc.OuterXml.ToString());
            }
        }
        public bool VerifyToken()
        {
            string token = _appLoader.get_ClientToken(Request, SYBOL_TOKEN_BASIC);

            if (token == string.Empty)
            {
                return(false);
            }
            else
            {
                try
                {
                    Util_NetServices netObj    = new Util_NetServices();
                    string           result    = netObj.RequestWithGet(ROOT_SERVER + "Account_Students_SignStatus?" + SYBOL_TOKEN_BASIC + "=" + token).ToString();
                    XmlDocument      resultDoc = new XmlDocument();
                    resultDoc.LoadXml(result);
                    XmlNode executedNode = resultDoc.SelectSingleNode("/root/executed");
                    if (executedNode != null)
                    {
                        if (Util_XmlOperHelper.GetNodeValue(executedNode) == "true")
                        {
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        return(false);
                    }
                }
                catch
                {
                    return(false);
                }
            }
        }
Exemplo n.º 12
0
        private string ProcessProtocal(string token, string message, AppLoader existedLoader, out string refAction)
        {
            refAction = "";
            XmlDocument protocalMessageDoc = new XmlDocument();

            protocalMessageDoc.LoadXml(message);
            XmlNode fromNode = protocalMessageDoc.SelectSingleNode("/root/from");

            if (fromNode == null)
            {
                return("<root type='error'><errmsg>nofrom</errmsg></root>");
            }
            string from = Util_XmlOperHelper.GetNodeValue(fromNode);

            /*if(from != token)
             *      return "<root type='error'><errmsg>invalidated token</errmsg></root>";*/
            XmlNode actionNode = protocalMessageDoc.SelectSingleNode("/root/action");

            if (actionNode == null)
            {
                return("<root type='error'><errmsg>noaction</errmsg></root>");
            }
            string  action     = Util_XmlOperHelper.GetNodeValue(actionNode);
            XmlNode paramsNode = protocalMessageDoc.SelectSingleNode("/root/params");

            refAction = action;
            Global.ItemAccountStudents activeStuentItem = Global.LoginServices.Pull(token);
            switch (action)
            {
            case Global.ActionsMap.Action_Get_DialogList:
                /*
                 * <root>
                 * <from>
                 * token
                 * <from>
                 * <action>
                 * Action_Get_DialogList
                 * </action>
                 * </root>
                 *
                 */
                return(Action_Get_DialogList(activeStuentItem.name, existedLoader));

            case Global.ActionsMap.Action_Get_DialogContent:
                /*
                 * <root>
                 * <from>
                 * token
                 * </from>
                 * <symbol>
                 * </symbol>
                 * <action>
                 * Action_Get_DialogContent
                 * </action>
                 * </root>
                 *
                 */
                string  message_symbol    = string.Empty;
                XmlNode messageSymbolNode = protocalMessageDoc.SelectSingleNode("/root/symbol");
                if (messageSymbolNode == null)
                {
                    return("<root type='error'><errmsg>nosymbol</errmsg></root>");
                }
                message_symbol = Util_XmlOperHelper.GetNodeValue(messageSymbolNode);
                if (string.IsNullOrEmpty(message_symbol))
                {
                    return("<root type='error'><errmsg>nosymbol</errmsg></root>");
                }
                return(Action_Get_DialogContent(message_symbol, existedLoader));

            case Global.ActionsMap.Action_Set_NewDialog:
                /*
                 * <root>
                 * <from>
                 * token
                 * </from>
                 * <target>
                 * <item>
                 * u1
                 * </item>
                 * <item>
                 * u2
                 * </item>
                 * </target>
                 * <action>
                 * Action_Set_NewDialog
                 * </action>
                 * </root>
                 *
                 */
                XmlNodeList   targetUserNodes = protocalMessageDoc.SelectNodes("/root/target/item");
                List <string> lstTargetItems  = new List <string>();
                if (targetUserNodes != null && targetUserNodes.Count > 0)
                {
                    foreach (XmlNode itemNode in targetUserNodes)
                    {
                        string value = Util_XmlOperHelper.GetNodeValue(itemNode);
                        lstTargetItems.Add(value);
                    }
                }
                else
                {
                    return("<root type='error'><errmsg>notargets</errmsg></root>");
                }
                Global.ItemAccountStudents activeItem = Global.LoginServices.Pull(token);
                lstTargetItems.Add(activeItem.name);
                return(Action_Set_NewDialog(token, lstTargetItems, existedLoader));

            case Global.ActionsMap.Action_Get_RelationsList:
                /*
                 * <root>
                 * <from>
                 * token
                 * </from>
                 * <action>
                 * Action_Get_RelationsList
                 * </action>
                 * </root>
                 */
                return(Action_Get_RelationsList(from, existedLoader));

            case Global.ActionsMap.Action_Get_RelationsSearch:
                /*
                 * <root>
                 * <from>
                 * token
                 * </from>
                 * <action>
                 * Action_Get_RelationsSearch
                 * </action>
                 * <value>
                 * </value>
                 * </root>
                 */
                string  keyvalue  = string.Empty;
                XmlNode valueNode = protocalMessageDoc.SelectSingleNode("/root/value");
                if (valueNode != null)
                {
                    keyvalue = Util_XmlOperHelper.GetNodeValue(valueNode);
                }
                return(Action_Get_RelationsSearch(keyvalue, existedLoader));

            case Global.ActionsMap.Action_Get_RelationsAcceptableList:
                return(Action_Get_RelationsAcceptableList(token, existedLoader));

            case Global.ActionsMap.Action_Set_NewFriend:
                /*
                 * <root>
                 * <from>
                 * token
                 * </from>
                 * <action>
                 * Action_Set_NewFriend
                 * </action>
                 * <msg>
                 * </msg>
                 * <suname>
                 * </suname>
                 * </root>
                 */
                string  suname     = string.Empty;
                XmlNode sunameNode = protocalMessageDoc.SelectSingleNode("/root/suname");
                string  msg        = string.Empty;
                XmlNode msgNode    = protocalMessageDoc.SelectSingleNode("/root/msg");
                if (sunameNode == null)
                {
                    return("<root type='error'><errmsg>nosuname</errmsg></root>");
                }
                else
                {
                    suname = Util_XmlOperHelper.GetNodeValue(sunameNode);
                    return(Action_Set_NewFriend(from, suname, msg, existedLoader));
                }

            case Global.ActionsMap.Action_Set_AcceptFriend:
                /*
                 * <root>
                 * <from>
                 * token
                 * </from>
                 * <action>
                 * Action_Set_AcceptFriend
                 * </action>
                 * <id>
                 * </id>
                 * </root>
                 */
                string  id      = string.Empty;
                XmlNode id_node = protocalMessageDoc.SelectSingleNode("/root/id");
                if (id_node == null)
                {
                    return("<root type='error'><errmsg>no puname</errmsg></root>");
                }
                else
                {
                    id = Util_XmlOperHelper.GetNodeValue(id_node);
                }
                return(Action_Set_AcceptFriend(id, existedLoader));

            case Global.ActionsMap.Action_Get_BatchArrProfile:
                /*
                 * <root>
                 * <from>
                 * token
                 * </from>
                 * <action>
                 * Action_Get_BatchArrProfile
                 * </action>
                 * <params>
                 * <item>
                 * </item>
                 * </params>
                 * </root>
                 */
                List <string> lstID = new List <string>();
                XmlNodeList   items = paramsNode.SelectNodes("item");
                foreach (XmlNode item in items)
                {
                    string itemValue = Util_XmlOperHelper.GetNodeValue(item);
                    lstID.Add(itemValue);
                }
                return(Action_Get_BatchArrProfile(lstID, existedLoader));

            case Global.ActionsMap.Action_Set_SendMessage:
                /*
                 * <root>
                 * <from>
                 * token
                 * </from>
                 * <symbol>
                 * symbol for message
                 * </symbol>
                 * <action>
                 * Action_Set_OpenDialog
                 * </action>
                 * <target>
                 * <item>
                 * u1
                 * </item>
                 * <item>
                 * u2
                 * </item>
                 * </target>
                 * <message>
                 * </message>
                 * </root>
                 *
                 */
                XmlNode symbolNode = protocalMessageDoc.SelectSingleNode("/root/symbol");
                if (symbolNode == null)
                {
                    return("<root type='error'><errmsg>nosymbol</errmsg></root>");
                }
                string  symbolValue = Util_XmlOperHelper.GetNodeValue(symbolNode);
                XmlNode targetNode  = protocalMessageDoc.SelectSingleNode("/root/target");
                if (targetNode == null)
                {
                    return("<root type='error'><errmsg>notarget</errmsg></root>");
                }
                string        tagetValue      = Util_XmlOperHelper.GetNodeValue(targetNode);
                XmlNodeList   targetItemNodes = protocalMessageDoc.SelectNodes("/root/target/item");
                List <string> lstOwners       = new List <string>();
                foreach (XmlNode itemNode in targetItemNodes)
                {
                    string value = Util_XmlOperHelper.GetNodeValue(itemNode);
                    lstOwners.Add(value);
                }
                XmlNode messageNode  = protocalMessageDoc.SelectSingleNode("/root/message");
                string  messageValue = Util_XmlOperHelper.GetNodeValue(messageNode);
                return(Action_Set_SendMessage(activeStuentItem.name, symbolValue, messageValue, lstOwners, existedLoader));
            }
            return("");
        }
Exemplo n.º 13
0
        public ContentResult Action()
        {
            try
            {
                XmlDocument doc_Result       = new XmlDocument();
                XmlDocument doc_AccountTotal = new XmlDocument();
                doc_Result.LoadXml("<root></root>");
                XmlNode rootNode = doc_Result.SelectSingleNode("/root");
                Util_XmlOperHelper.SetAttribute(rootNode, "gdate", DateTime.Now.ToString("yyyy-MM-dd"));
                string uname = GetAccountInfoFromBasicController("name");
                string uid   = GetAccountInfoFromBasicController("id");

                //Get total count
                doc_AccountTotal = GetAPIFromCoreBasic("Account_Students_TotalCount");
                XmlNode rowNode       = doc_AccountTotal.SelectSingleNode("/root/row[@index='1']");
                string  strTotalValue = Util_XmlOperHelper.GetAttrValue(rowNode, "total");
                int     iTotalValue   = 1;
                int.TryParse(strTotalValue, out iTotalValue);
                if (iTotalValue == 0)
                {
                    iTotalValue = 1;
                }


                //Get exp
                Dictionary <string, string> paramsMap = new Dictionary <string, string>();
                paramsMap.Add("@uid", uname);
                DataTable dtData_Exp    = _appLoader.ExecuteSelectWithConditionsReturnDT(AppMain.Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, AppMain.Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_exp, paramsMap);
                int       totalExpValue = 0;
                foreach (DataRow activeRow in dtData_Exp.Rows)
                {
                    string strExpValueFromDB = string.Empty;
                    Data_dbDataHelper.GetColumnData(activeRow, "exp", out strExpValueFromDB);
                    int iTmpValue = 0;
                    int.TryParse(strExpValueFromDB, out iTmpValue);
                    totalExpValue = totalExpValue + iTmpValue;
                }

                //Get exp postion for all
                string    sql             = "select (@pos:=@pos+1) as pos,tmpResult.* from (SELECT sum(exp) as rexp,uid FROM ikcoder_appmain.students_exp group by uid order by rexp desc) tmpResult,(select @pos:=0) r";
                DataTable dtData_Position = _appLoader.ExecuteSQL(AppMain.Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, sql);
                string    position        = string.Empty;
                if (dtData_Position != null && dtData_Position.Rows.Count > 0)
                {
                    DataRow[] row = dtData_Position.Select("uid='" + uname + "'");

                    if (row.Length == 1)
                    {
                        Data_dbDataHelper.GetColumnData(row[0], "pos", out position);
                    }
                    else
                    {
                        position = "1";
                    }
                }
                int iPosition = 1;
                int.TryParse(position, out iPosition);

                //Get finished lessons
                paramsMap.Clear();
                paramsMap.Add("@uid", uname);
                List <string> lstLessonsFinished_Code = new List <string>();
                List <string> lstLessonsFinished_Name = new List <string>();
                DataTable     dtData_FinishedLesson   = _appLoader.ExecuteSelectWithConditionsReturnDT(AppMain.Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, AppMain.Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_lessonfinished, paramsMap);
                int           iFinishedLessons        = 0;
                if (dtData_FinishedLesson != null && dtData_FinishedLesson.Rows.Count > 0)
                {
                    iFinishedLessons = dtData_FinishedLesson.Rows.Count;
                    foreach (DataRow activeDR in dtData_FinishedLesson.Rows)
                    {
                        string lesson_code = string.Empty;
                        Data_dbDataHelper.GetColumnData(activeDR, "lesson_code", out lesson_code);
                        lstLessonsFinished_Code.Add(lesson_code);
                    }
                }

                //Get achieved defined
                DataTable dtData_Achieved = _appLoader.ExecuteSelect(AppMain.Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, AppMain.Global.MapStoreProcedures.ikcoder_appmain.spa_operation_achieved_defined);

                //Get Lessons Basic
                DataTable dtData_Basic = _appLoader.ExecuteSelect(AppMain.Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, AppMain.Global.MapStoreProcedures.ikcoder_appmain.spa_operation_course_basic);

                //Get Learning Status
                DataTable dtData_LearningStatus = _appLoader.ExecuteSelectWithConditionsReturnDT(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_learninrecord, paramsMap);

                //Get Course Main
                DataTable dtData_CourseMain = _appLoader.ExecuteSelect(AppMain.Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, AppMain.Global.MapStoreProcedures.ikcoder_appmain.spa_operation_course_main);

                //Get Lessons Total
                sql = "SELECT count(*) as total,course_name FROM ikcoder_appmain.course_basic group by course_name";
                DataTable dtData_LessonsTotal = _appLoader.ExecuteSQL(AppMain.Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, sql);

                //Get Finished Lessons Total
                sql = "SELECT count(*) as total,course_name FROM ikcoder_appmain.students_lessonfinished group by course_name";
                DataTable dtData_FinishedLessonsTotal = _appLoader.ExecuteSQL(AppMain.Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, sql);

                //Build Sumary
                XmlNode sumaryNode = Util_XmlOperHelper.CreateNode(doc_Result, "sumary", "");
                rootNode.AppendChild(sumaryNode);
                Util_XmlOperHelper.SetAttribute(sumaryNode, "exp", totalExpValue.ToString());
                if (iTotalValue == 1)
                {
                    Util_XmlOperHelper.SetAttribute(sumaryNode, "over", "100");
                }
                else
                {
                    double dOver = (1.00 - (double)((double)iPosition / (double)iTotalValue)) * 100;
                    Util_XmlOperHelper.SetAttribute(sumaryNode, "over", Math.Round(dOver, 2).ToString());
                }
                Util_XmlOperHelper.SetAttribute(sumaryNode, "finished", iFinishedLessons.ToString());

                //Build Achieved
                XmlNode achievedNode = Util_XmlOperHelper.CreateNode(doc_Result, "achieved", "");
                rootNode.AppendChild(achievedNode);
                foreach (string lesson_code in lstLessonsFinished_Code)
                {
                    DataRow[] achievedRows = dtData_Achieved.Select("lesson_code='" + lesson_code + "'");
                    foreach (DataRow achievedRow in achievedRows)
                    {
                        string archieved_title = string.Empty;
                        Data_dbDataHelper.GetColumnData(achievedRow, "title", out archieved_title);
                        string archieved_content = string.Empty;
                        Data_dbDataHelper.GetColumnData(achievedRow, "content", out archieved_content);
                        XmlNode newAchievedItem = Util_XmlOperHelper.CreateNode(doc_Result, "item", "");
                        Util_XmlOperHelper.SetAttribute(newAchievedItem, "title", archieved_title);
                        Util_XmlOperHelper.SetAttribute(newAchievedItem, "content", archieved_content);
                        achievedNode.AppendChild(newAchievedItem);
                    }
                }

                //Build STEML
                XmlNode abilityNode    = Util_XmlOperHelper.CreateNode(doc_Result, "ability", "");
                XmlNode lessonsLstNode = Util_XmlOperHelper.CreateNode(doc_Result, "lstlessons", "");
                abilityNode.AppendChild(lessonsLstNode);
                XmlNode steamNode = Util_XmlOperHelper.CreateNode(doc_Result, "steam", "");
                abilityNode.AppendChild(steamNode);
                Dictionary <char, int> steamMapForLessons = new Dictionary <char, int>();
                foreach (string lesson_code in lstLessonsFinished_Code)
                {
                    if (dtData_Basic != null && dtData_Basic.Rows.Count > 0)
                    {
                        DataRow[] finishedLessonRows = dtData_Basic.Select("lesson_code='" + lesson_code + "'");
                        if (finishedLessonRows.Length > 0)
                        {
                            XmlNode finishedLessonRowsItem = Util_XmlOperHelper.CreateNode(doc_Result, "item", "");
                            string  lesson_title           = string.Empty;
                            string  lesson_steam           = string.Empty;
                            Data_dbDataHelper.GetColumnData(finishedLessonRows[0], "lesson_title", out lesson_title);
                            Data_dbDataHelper.GetColumnData(finishedLessonRows[0], "steam", out lesson_steam);
                            Util_XmlOperHelper.SetAttribute(finishedLessonRowsItem, "lesson_title", lesson_title);
                            lessonsLstNode.AppendChild(finishedLessonRowsItem);
                            char[] steam_chars = lesson_steam.ToCharArray();
                            foreach (char steam_char in steam_chars)
                            {
                                if (steamMapForLessons.ContainsKey(steam_char))
                                {
                                    steamMapForLessons[steam_char] = steamMapForLessons[steam_char] + 1;
                                }
                                else
                                {
                                    steamMapForLessons.Add(steam_char, 1);
                                }
                            }
                        }
                    }
                }
                foreach (char steam_char in steamMapForLessons.Keys)
                {
                    XmlNode newSteamNode = Util_XmlOperHelper.CreateNode(doc_Result, steam_char.ToString(), (steamMapForLessons[steam_char] * 100).ToString());
                    steamNode.AppendChild(newSteamNode);
                }
                rootNode.AppendChild(abilityNode);

                //Build Course Finsished Map
                XmlNode courseFinishedMapNode = Util_XmlOperHelper.CreateNode(doc_Result, "coursefinished", "");
                rootNode.AppendChild(courseFinishedMapNode);
                Dictionary <string, CourseMainInfoItem> totalfinished_courses = new Dictionary <string, CourseMainInfoItem>();
                foreach (DataRow courseRow in dtData_CourseMain.Rows)
                {
                    XmlNode newItemNode = Util_XmlOperHelper.CreateNode(doc_Result, "item", "");
                    courseFinishedMapNode.AppendChild(newItemNode);
                    string course_name = string.Empty;
                    Data_dbDataHelper.GetColumnData(courseRow, "name", out course_name);
                    Util_XmlOperHelper.SetAttribute(newItemNode, "name", course_name);
                    string course_title = string.Empty;
                    Data_dbDataHelper.GetColumnData(courseRow, "title", out course_title);
                    Util_XmlOperHelper.SetAttribute(newItemNode, "title", course_title);
                    DataRow[] rows_finishedLesson    = dtData_FinishedLesson.Select("course_name='" + course_name + "'");
                    string    lessonFinished_Total   = string.Empty;
                    int       i_lessonFinished_Total = 0;
                    if (rows_finishedLesson.Length > 0)
                    {
                        Data_dbDataHelper.GetColumnData(rows_finishedLesson[0], "total", out lessonFinished_Total);
                        int.TryParse(lessonFinished_Total, out i_lessonFinished_Total);
                        Util_XmlOperHelper.SetAttribute(newItemNode, "count_finished", lessonFinished_Total);
                    }
                    else
                    {
                        Util_XmlOperHelper.SetAttribute(newItemNode, "count_finished", "0");
                    }
                    DataRow[] rows_total      = dtData_LessonsTotal.Select("course_name='" + course_name + "'");
                    string    lessons_Total   = string.Empty;
                    int       i_lessons_Total = 1;
                    if (rows_total.Length > 0)
                    {
                        Data_dbDataHelper.GetColumnData(rows_total[0], "total", out lessons_Total);
                        int.TryParse(lessons_Total, out i_lessons_Total);
                        Util_XmlOperHelper.SetAttribute(newItemNode, "count_total", lessons_Total);
                    }
                    else
                    {
                        Util_XmlOperHelper.SetAttribute(newItemNode, "count_total", "1");
                    }
                    Util_XmlOperHelper.SetAttribute(newItemNode, "rate", ((i_lessonFinished_Total / i_lessons_Total) * 100).ToString());
                }


                //Build Time Line
                XmlNode timelineNode = Util_XmlOperHelper.CreateNode(doc_Result, "timeline", "");
                rootNode.AppendChild(timelineNode);
                if (dtData_LearningStatus != null && dtData_LearningStatus.Rows.Count > 0)
                {
                    DataRow[] start_rows = dtData_LearningStatus.Select("actions='" + Global.LearningActionsMap.LessonAction_StartLearning + "'");

                    foreach (DataRow start_row in start_rows)
                    {
                        string   str_start_rdt = string.Empty;
                        DateTime dt_start_rdt  = new DateTime();
                        Data_dbDataHelper.GetColumnData(start_row, "rfultime", out str_start_rdt);
                        DateTime.TryParse(str_start_rdt, out dt_start_rdt);
                        int    i_times  = Data_dbDataHelper.GetColumnIntData(start_row, "times");
                        string str_code = string.Empty;
                        Data_dbDataHelper.GetColumnData(start_row, "code", out str_code);
                        DataRow[] end_rows = dtData_LearningStatus.Select("actions='" + Global.LearningActionsMap.LessonAction_EndLearning + "' and code='" + str_code + "'");
                        TimeSpan  timeSpan = new TimeSpan();
                        bool      isEnded  = false;
                        string    end_dt   = string.Empty;
                        if (end_rows.Length > 0)
                        {
                            string str_end_rdt = string.Empty;
                            Data_dbDataHelper.GetColumnData(end_rows[0], "rfultime", out str_end_rdt);
                            DateTime dt_end_rdt = new DateTime();
                            DateTime.TryParse(str_end_rdt, out dt_end_rdt);
                            if (dt_end_rdt.Year == dt_start_rdt.Year && dt_end_rdt.Month == dt_start_rdt.Month && dt_end_rdt.Day == dt_start_rdt.Day)
                            {
                                isEnded  = true;
                                timeSpan = dt_end_rdt - dt_start_rdt;
                                end_dt   = dt_end_rdt.Year + "-" + dt_end_rdt.Month + "-" + dt_end_rdt.Day;
                            }
                        }
                        XmlNode timeItemNode = Util_XmlOperHelper.CreateNode(doc_Result, "item", "");
                        Util_XmlOperHelper.SetAttribute(timeItemNode, "hours", timeSpan.Hours.ToString());
                        Util_XmlOperHelper.SetAttribute(timeItemNode, "minutes", timeSpan.Minutes.ToString());
                        Util_XmlOperHelper.SetAttribute(timeItemNode, "dt", end_dt != string.Empty ? end_dt : DateTime.Now.ToString("yyyy-MM-dd"));
                        timelineNode.AppendChild(timeItemNode);
                    }
                }

                return(Content(doc_Result.OuterXml));
            }
            catch (Exception err)
            {
                return(Content(err.Message + "|" + err.StackTrace));
            }
        }
 public ContentResult Action(string course_name)
 {
     try
     {
         string uname = GetAccountInfoFromBasicController("name");
         Dictionary <string, string> paramsForBasic = new Dictionary <string, string>();
         paramsForBasic.Add("@course_name", course_name);
         List <string> lstCourses              = new List <string>();
         DataTable     dtData_lesson           = _appLoader.ExecuteSelectWithConditionsReturnDT(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_course_basic, paramsForBasic);
         Dictionary <string, string> paramsmap = new Dictionary <string, string>();
         paramsmap.Add("@uid", uname);
         DataTable dtData_finished = _appLoader.ExecuteSelectWithConditionsReturnDT(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_lessonfinished, paramsmap);
         paramsmap.Clear();
         paramsmap.Add("@uid", uname);
         DataTable   dtData_Learning = _appLoader.ExecuteSelectWithConditionsReturnDT(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_learninrecord, paramsmap);
         XmlDocument returnDoc       = new XmlDocument();
         returnDoc.LoadXml("<root></root>");
         foreach (DataRow row in dtData_lesson.Rows)
         {
             XmlNode itemNode = Util_XmlOperHelper.CreateNode(returnDoc, "item", "");
             returnDoc.SelectSingleNode("/root").AppendChild(itemNode);
             string lesson_title = string.Empty;
             string lesson_code  = string.Empty;
             string lesson_steam = string.Empty;
             string lesson_udba  = string.Empty;
             string lesson_steps = string.Empty;
             string lesson_order = string.Empty;
             Data_dbDataHelper.GetColumnData(row, "lesson_title", out lesson_title);
             Data_dbDataHelper.GetColumnData(row, "lesson_code", out lesson_code);
             Data_dbDataHelper.GetColumnData(row, "steam", out lesson_steam);
             Data_dbDataHelper.GetColumnData(row, "udba", out lesson_udba);
             Data_dbDataHelper.GetColumnData(row, "totalsteps", out lesson_steps);
             Data_dbDataHelper.GetColumnData(row, "lorder", out lesson_order);
             Util_XmlOperHelper.SetAttribute(itemNode, "lesson_title", lesson_title);
             Util_XmlOperHelper.SetAttribute(itemNode, "lesson_code", lesson_code);
             Util_XmlOperHelper.SetAttribute(itemNode, "steam", lesson_steam);
             Util_XmlOperHelper.SetAttribute(itemNode, "udba", lesson_udba);
             Util_XmlOperHelper.SetAttribute(itemNode, "totalsteps", lesson_steps);
             Util_XmlOperHelper.SetAttribute(itemNode, "order", lesson_order);
             Util_XmlOperHelper.SetAttribute(itemNode, "status", "0");
             if (dtData_Learning != null && dtData_Learning.Rows.Count > 0)
             {
                 DataRow[] learningRows = dtData_Learning.Select("code='" + lesson_code + "' and actions='" + Global.LearningActionsMap.LessonAction_StartLearning + "'");
                 if (learningRows.Length > 0)
                 {
                     Util_XmlOperHelper.SetAttribute(itemNode, "status", "1");
                 }
             }
             if (dtData_finished != null && dtData_finished.Rows.Count > 0)
             {
                 DataRow[] finishedRows = dtData_finished.Select("lesson_code='" + lesson_code + "'");
                 if (finishedRows.Length > 0)
                 {
                     Util_XmlOperHelper.SetAttribute(itemNode, "status", "2");
                 }
             }
         }
         return(Content(returnDoc.OuterXml));
     }
     catch
     {
         return(Content(MessageHelper.ExecuteFalse()));
     }
 }
        public ContentResult Action()
        {
            string requestData = _appLoader.get_PostData(Request);

            if (string.IsNullOrEmpty(requestData))
            {
                return(Content(MessageHelper.ExecuteFalse(Global.MsgMap.MsgCodeMap[Global.MsgKeyMap.MsgKey_Request_Invalidate], Global.MsgMap.MsgContentMap[Global.MsgKeyMap.MsgKey_Request_Invalidate])));
            }
            else
            {
                XmlDocument requestDoc = new XmlDocument();
                try
                {
                    requestDoc.LoadXml(requestData);
                }
                catch
                {
                    return(Content(MessageHelper.ExecuteFalse(Global.MsgMap.MsgCodeMap[Global.MsgKeyMap.MsgKey_Request_Invalidate], Global.MsgMap.MsgContentMap[Global.MsgKeyMap.MsgKey_Request_Invalidate])));
                }
                XmlNode codeNode = requestDoc.SelectSingleNode("/root/code");
                XmlNode stepNode = requestDoc.SelectSingleNode("/root/step");
                XmlNode typeNode = requestDoc.SelectSingleNode("/root/type");
                XmlNode docNode  = requestDoc.SelectSingleNode("/root/doc");
                string  str_code = string.Empty;
                string  str_step = string.Empty;
                string  str_type = string.Empty;
                string  str_doc  = string.Empty;
                if (codeNode == null)
                {
                    return(Content(MessageHelper.ExecuteFalse(Global.MsgMap.MsgCodeMap[Global.MsgKeyMap.MsgKey_Request_Invalidate], Global.MsgMap.MsgContentMap[Global.MsgKeyMap.MsgKey_Request_Invalidate])));
                }
                str_code = Util_XmlOperHelper.GetNodeValue(codeNode);
                if (stepNode != null)
                {
                    str_step = Util_XmlOperHelper.GetNodeValue(stepNode);
                }
                if (typeNode != null)
                {
                    str_type = Util_XmlOperHelper.GetNodeValue(typeNode);
                }
                if (docNode != null)
                {
                    str_doc = Util_XmlOperHelper.GetNodeValue(docNode);
                }
                string uname = GetAccountInfoFromBasicController("name");
                Dictionary <string, string> paramsForBasic = new Dictionary <string, string>();
                paramsForBasic.Add("@uid", uname);
                paramsForBasic.Add("@lesson_code", str_code);
                DataTable dtData = _appLoader.ExecuteSelectWithMixedConditionsReturnDT(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_lessonstatus, paramsForBasic);
                paramsForBasic.Add("@current_step", str_step);
                paramsForBasic.Add("@current_statusdoc", str_doc);
                paramsForBasic.Add("@type", str_type);
                paramsForBasic.Add("@recorddt", DateTime.Now.ToString());
                if (dtData != null && dtData.Rows.Count == 1)
                {
                    if (_appLoader.ExecuteUpdate(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_lessonstatus, paramsForBasic))
                    {
                        return(Content(MessageHelper.ExecuteSucessful()));
                    }
                    else
                    {
                        return(Content(MessageHelper.ExecuteFalse()));
                    }
                }
                else
                {
                    if (_appLoader.ExecuteInsert(Global.GlobalDefines.DB_KEY_IKCODER_APPMAIN, Global.MapStoreProcedures.ikcoder_appmain.spa_operation_students_lessonstatus, paramsForBasic))
                    {
                        return(Content(MessageHelper.ExecuteSucessful()));
                    }
                    else
                    {
                        return(Content(MessageHelper.ExecuteFalse()));
                    }
                }
            }
        }