public void Init(IGConnectionLocal userConnection) { IGSMStatusUser userStatus = userConnection.GetUserStatus(); if (userStatus != null) { SetParameter(IGSMSTATUS_SESSIONLENGTH, userStatus.m_nSessionLength.ToString()); SetParameter(IGSMSTATUS_IDLETIME, userStatus.m_nIdleTime.ToString()); SetParameter(IGSMSTATUS_STATUS, ((int)userStatus.m_eStatus).ToString()); IGRequestProcessing imProcUser = IGRequestProcessing.GetUserRequest(userStatus.m_sUser); SetParameter(IGSMSTATUS_PROGRESS, ((imProcUser == null) || (imProcUser.GetProgress() < 0)) ? "-" : imProcUser.GetProgress().ToString() + "%"); SetParameter(IGSMSTATUS_LASTREQ, (userStatus.m_nLastReqId > 0) ? userStatus.m_nLastReqId.ToString() : "None"); List<string> lsImages = new List<string>(); lock (userStatus.m_lsImages) { lsImages.AddRange(userStatus.m_lsImages); } foreach (string sImage in lsImages) { XmlNode imageNode = m_xmlDoc.CreateNode(XmlNodeType.Element, IGSMSTATUS_IMAGE, null); XmlAttribute newAttImageId = m_xmlDoc.CreateAttribute(IGRequest.IGREQUEST_FRAMEID); newAttImageId.Value = sImage; imageNode.Attributes.Append(newAttImageId); IGRequestProcessing imProc = IGRequestProcessing.GetImageRequest(sImage); XmlAttribute newAttProgress = m_xmlDoc.CreateAttribute(IGSMSTATUS_PROGRESS); newAttProgress.Value = ((imProc == null) || (imProc.GetProgress() < 0)) ? "-" : imProc.GetProgress().ToString() + "%"; imageNode.Attributes.Append(newAttProgress); XmlAttribute newAttStatus = m_xmlDoc.CreateAttribute(IGSMSTATUS_STATUS); int nStatus = (imProc == null) ? (int)IGState.IGSMSTATUS_READY : (int)imProc.GetStatus(); newAttStatus.Value = nStatus.ToString(); imageNode.Attributes.Append(newAttStatus);/* XmlAttribute newAttLastReq = m_xmlDoc.CreateAttribute(IGSMSTATUS_LASTREQ); newAttLastReq.Value = (userStatus.m_nLastReqId > 0) ? userStatus.m_nLastReqId.ToString() : "None"; imageNode.Attributes.Append(newAttLastReq);*/ m_xmlNodeAnswer.AppendChild(imageNode); } } }
public int DisconnectUser(string sUser, string sGuid, out IGConnectionLocal userConnection) { userConnection = null; IGConnection connection = null; int nResult = GetConnection(sUser, out connection); if (nResult != IGSMAnswer.IGSMANSWER_ERROR_NONE) return nResult; userConnection = (IGConnectionLocal)connection; IGSMStatusUser statusUser = userConnection.GetUserStatus(); if (statusUser.m_eStatus != IGSMStatusUser.IGState.IGSMSTATUS_READY) { nResult = (int)IGSMAnswer.IGSMANSWER_ERROR_CODE.IGSMANSWER_ERROR_SERVERBUSY; userConnection.Reset(sGuid); } else userConnection.DisconnectUser(sGuid); return nResult; }