コード例 #1
0
ファイル: WXManager.cs プロジェクト: NingMoe/603-HHCloud
 public void Remove(PublicWX wx)
 {
     _WXSLocker.AcquireWriterLock(int.MaxValue);
     if (_WXS.ContainsKey(wx.ID))
     {
         _WXS.Remove(wx.ID);
     }
     _WXSLocker.ReleaseWriterLock();
 }
コード例 #2
0
        protected override void ItemShowing()
        {
            PublicWX wx = UpdatingItem as PublicWX;

            txtID.Text             = wx.ID;
            txtID.ReadOnly         = true;
            txtName.Text           = wx.Name;
            txtAppID.Text          = wx.AppID;
            txtAppSecret.Text      = wx.AppSecret;
            txtToken.Text          = wx.Token;
            txtEncodingAESKey.Text = wx.EncodingAESKey;
            ShowDBConnet(wx.DBConnect);
        }
コード例 #3
0
ファイル: WXManager.cs プロジェクト: NingMoe/603-HHCloud
 public PublicWX this[string id]
 {
     get
     {
         PublicWX ret = null;
         _WXSLocker.AcquireReaderLock(int.MaxValue);
         if (_WXS.ContainsKey(id))
         {
             ret = _WXS[id];
         }
         _WXSLocker.ReleaseReaderLock();
         return(ret);
     }
 }
コード例 #4
0
        protected override void ShowItemInGridViewRow(DataGridViewRow row, object item)
        {
            PublicWX info = item as PublicWX;

            row.Tag = item;
            row.Cells["colID"].Value                    = info.ID;
            row.Cells["colName"].Value                  = info.Name;
            row.Cells["colAppID"].Value                 = info.AppID;
            row.Cells["colAppSecret"].Value             = info.AppSecret;
            row.Cells["colToken"].Value                 = info.Token;
            row.Cells["colEncodingAESKey"].Value        = info.EncodingAESKey;
            row.Cells["colAccessToken"].Value           = info.AccessToken;
            row.Cells["colAccessTokenExpireTime"].Value = info.AccessTokenExpireTime;
        }
コード例 #5
0
        protected override CommandResult UpdateItem(object updatingItem)
        {
            PublicWX      wx  = updatingItem as PublicWX;
            CommandResult ret = (new PublicWXBLL(AppSettings.Current.ConnStr)).Update(wx);

            if (ret.Result == ResultCode.Successful)
            {
                if (WXManager.Current != null)
                {
                    WXManager.Current.Add(wx);
                }
            }
            return(ret);
        }
コード例 #6
0
        /// <summary>
        /// 获取某个公众号的ACCESSKEY
        /// </summary>
        /// <param name="wx"></param>
        /// <returns></returns>
        public async Task <WXAccessKey> GetAccessKeyAsync(PublicWX wx)
        {
            using (var client = HttpClientFactory.Create())
            {
                string uri = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", wx.AppID, wx.AppSecret);
                HttpResponseMessage response = await client.GetAsync(uri);

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var ret = await response.Content.ReadAsAsync <WXAccessKey>();

                    return(ret);
                }
                return(null);
            }
        }
コード例 #7
0
        protected override bool DeletingItem(object item)
        {
            PublicWXBLL   bll    = new PublicWXBLL(AppSettings.Current.ConnStr);
            PublicWX      info   = item as PublicWX;
            CommandResult result = bll.Delete(info);

            if (result.Result == ResultCode.Successful)
            {
                if (WXManager.Current != null)
                {
                    WXManager.Current.Remove(info);
                }
            }
            else
            {
                MessageBox.Show(result.Message, "删除失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            return(result.Result == ResultCode.Successful);
        }
コード例 #8
0
        /// <summary>
        /// 获取自定义菜单
        /// </summary>
        /// <param name="wx"></param>
        /// <returns></returns>
        public async Task <string> GetMenu(PublicWX wx)
        {
            if (string.IsNullOrEmpty(wx.AccessToken))
            {
                throw new InvalidOperationException("公众号还没有获取Access_Key");
            }
            using (var client = HttpClientFactory.Create())
            {
                string uri = string.Format("https://api.weixin.qq.com/cgi-bin/menu/get?access_token={0}", wx.AccessToken);
                HttpResponseMessage response = await client.GetAsync(uri);

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var ret = await response.Content.ReadAsStringAsync();

                    return(ret);
                }
                return(null);
            }
        }
コード例 #9
0
        protected override Object GetItemFromInput()
        {
            PublicWX info = UpdatingItem as PublicWX;

            if (UpdatingItem == null)
            {
                info    = new PublicWX();
                info.ID = txtID.Text;
            }
            info.Name = txtName.Text;
            if (info.AppID != txtAppID.Text || info.AppSecret != txtAppSecret.Text) //如果重新设置了APPID或APPSECRET
            {
                info.AccessToken           = null;
                info.AccessTokenTime       = null;
                info.AccessTokenExpireTime = null;
            }
            info.AppID          = txtAppID.Text;
            info.AppSecret      = txtAppSecret.Text;
            info.Token          = txtToken.Text;
            info.EncodingAESKey = txtEncodingAESKey.Text;
            info.DBConnect      = GetDBConnect();
            return(info);
        }