/// <summary> /// Gets server virtual servers and binds them to this, if not binded already. /// </summary> private void Bind() { /* GetVirtualServers Responses: +OK <sizeOfData> * <data> * + ERR <errorText> */ lock (m_pParent){ // Call TCP GetVirtualServers m_pParent.TcpClient.TcpStream.WriteLine("GetVirtualServers"); string response = m_pParent.ReadLine(); if (!response.ToUpper().StartsWith("+OK")) { throw new Exception(response); } int sizeOfData = Convert.ToInt32(response.Split(new char[] { ' ' }, 2)[1]); MemoryStream ms = new MemoryStream(); m_pParent.TcpClient.TcpStream.ReadFixedCount(ms, sizeOfData); // Decompress dataset DataSet ds = Utils.DecompressDataSet(ms); if (ds.Tables.Contains("Servers")) { foreach (DataRow dr in ds.Tables["Servers"].Rows) { m_pVirtualServers.Add(new VirtualServer( m_pParent, this, dr["ID"].ToString(), ConvertEx.ToBoolean(dr["Enabled"], true), dr["Name"].ToString(), dr["API_assembly"].ToString(), dr["API_class"].ToString(), dr["API_initstring"].ToString() )); } } } }
/// <summary> /// Gets server users default folders and binds them to this, if not binded already. /// </summary> private void Bind() { /* GetUsersDefaultFolders <virtualServerID> * Responses: +OK <sizeOfData> * <data> * + ERR <errorText> */ lock (m_pVirtualServer.Server.LockSynchronizer){ // Call TCP GetUsersDefaultFolders m_pVirtualServer.Server.TcpClient.TcpStream.WriteLine("GetUsersDefaultFolders " + m_pVirtualServer.VirtualServerID); string response = m_pVirtualServer.Server.ReadLine(); if (!response.ToUpper().StartsWith("+OK")) { throw new Exception(response); } int sizeOfData = Convert.ToInt32(response.Split(new char[] { ' ' }, 2)[1]); MemoryStream ms = new MemoryStream(); m_pVirtualServer.Server.TcpClient.TcpStream.ReadFixedCount(ms, sizeOfData); // Decompress dataset DataSet ds = Utils.DecompressDataSet(ms); if (ds.Tables.Contains("UsersDefaultFolders")) { foreach (DataRow dr in ds.Tables["UsersDefaultFolders"].Rows) { m_pFolders.Add(new UsersDefaultFolder( this, dr["FolderName"].ToString(), ConvertEx.ToBoolean(dr["Permanent"]) )); } } } }