public void Remove(PublicWX wx) { _WXSLocker.AcquireWriterLock(int.MaxValue); if (_WXS.ContainsKey(wx.ID)) { _WXS.Remove(wx.ID); } _WXSLocker.ReleaseWriterLock(); }
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); }
public PublicWX this[string id] { get { PublicWX ret = null; _WXSLocker.AcquireReaderLock(int.MaxValue); if (_WXS.ContainsKey(id)) { ret = _WXS[id]; } _WXSLocker.ReleaseReaderLock(); return(ret); } }
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; }
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); }
/// <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); } }
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); }
/// <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); } }
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); }