www.pudn.com > Fetion.rar > BuddyMatchChannel.cs


namespace Imps.Client.Pc.Channel 
{ 
    using Imps.Client; 
    using Imps.Client.Core; 
    using Imps.Client.Pc; 
    using Imps.Client.Utils; 
    using Imps.Common; 
    using System; 
    using System.Runtime.InteropServices; 
    using System.Security.Permissions; 
    using System.Text; 
 
    [ComVisible(true), PermissionSet(SecurityAction.Demand, Name="FullTrust")] 
    public class BuddyMatchChannel : WebPageChannel 
    { 
        public BuddyMatchChannel(IFrameworkWindow host) : base(host) 
        { 
        } 
 
        private byte[] CreatePostData(User user) 
        { 
            string s = this.getUrlArguments(user); 
            return Encoding.UTF8.GetBytes(s); 
        } 
 
        private string getUrlArguments(User user) 
        { 
            StringBuilder builder = new StringBuilder(); 
            builder.AppendFormat("c={0}", user.SsicUrlEncoded); 
            builder.AppendFormat("&gender={0}", ((int) user.PersonalInfo.Gender.Value).ToString()); 
            builder.AppendFormat("&province={0}", user.PersonalInfo.Province.Value); 
            builder.AppendFormat("&city={0}", user.PersonalInfo.City.Value); 
            builder.AppendFormat("&avatarUrlBase={0}", user.Configuration.SystemSetting.PortraitSetting.UriDownloadPortrait); 
            builder.AppendFormat("&t={0}", new Random().Next().ToString()); 
            return builder.ToString(); 
        } 
 
        public override bool Load(string strUri, string args) 
        { 
            string baseUrl = this.BaseUrl; 
            if (string.IsNullOrEmpty(baseUrl)) 
            { 
                base.NavigateToBlankPage(); 
            } 
            else 
            { 
                if (!string.IsNullOrEmpty(args)) 
                { 
                    baseUrl = baseUrl + "?" + args + "&"; 
                } 
                else 
                { 
                    baseUrl = baseUrl + "?"; 
                } 
                base.InitUrl = baseUrl + "t=" + new Random().Next().ToString(); 
                ClientLogger.WriteBizOperation("速配", baseUrl); 
                byte[] postData = this.CreatePostData(base.FrameworkWnd.AccountManager.CurrentUser); 
                base.InnerWebBrowser.ObjectForScripting = this; 
                base.InnerWebBrowser.Navigate(base.InitUrl, postData); 
            } 
            return true; 
        } 
 
        public void ShowAddBuddyWindow(string sidText) 
        { 
            long result = 0L; 
            long.TryParse(sidText, out result); 
            base.FrameworkWnd.ContactManager.ShowAddBuddyWindow(null, null, new long?(result), "", null, ContactType.ImpsContact); 
        } 
 
        public void ShowContactDetail(string contactUri) 
        { 
            base.FrameworkWnd.ContactManager.ShowContactDetail(contactUri); 
        } 
 
        public void StartConversation(string contactUri) 
        { 
            base.FrameworkWnd.ConversationManager.StartConversation(base.FrameworkWnd.MainWindow, ConversationOperation.ImChat, new string[] { contactUri }); 
        } 
 
        public void StartIVR(string contactUri) 
        { 
            base.FrameworkWnd.IVRManager.StartIVR(base.FrameworkWnd.MainWindow, new string[] { contactUri }); 
        } 
 
        private string BaseUrl 
        { 
            get 
            { 
                return base.FrameworkWnd.AccountManager.CurrentUser.Configuration.SystemSetting.ServerUriSetting.MatchingPortal; 
            } 
        } 
    } 
}