void Worker_DoWork(object sender, DoWorkEventArgs e) { List <Make> mklist = new MakeFactory().SelectAll(); List <AlphaElectric_DataAccessLayer.Type> paneltypelist = new TypeFactory().SelectAll(); List <SizeType> szlist = new SizeTypeFactory().SelectAll(); List <PanelShellGradeProtection> shellgradelist = new PanelShellGradeProtectionFactory().SelectAll(); List <Certification> certlist = new CertificationFactory().SelectAll(); List <PaType> parttypelist = new PaTypeFactory().SelectAll(); List <Location> locationlist = new LocationFactory().SelectAll(); this.Dispatcher.Invoke(() => { // Generic MakeComboBox.ItemsSource = mklist; MakeComboBox.DisplayMemberPath = "Name"; MakeComboBox.SelectedValuePath = "ID"; //Panel Type PanelTypeComboBox.ItemsSource = paneltypelist; PanelTypeComboBox.DisplayMemberPath = "Description"; PanelTypeComboBox.SelectedValuePath = "ID"; SizeComboBox.ItemsSource = szlist; SizeComboBox.DisplayMemberPath = "Description"; SizeComboBox.SelectedValuePath = "ID"; PanelIPNumberComboBox.ItemsSource = shellgradelist; PanelIPNumberComboBox.DisplayMemberPath = "IPNum"; PanelIPNumberComboBox.SelectedValuePath = "ID"; CertComboBox.ItemsSource = certlist; CertComboBox.DisplayMemberPath = "Name"; CertComboBox.SelectedValuePath = "ID"; //Part Type PartTypeComboBox.ItemsSource = parttypelist; PartTypeComboBox.DisplayMemberPath = "Name"; PartTypeComboBox.SelectedValuePath = "ID"; //Location LocationComboBox.ItemsSource = locationlist; LocationComboBox.DisplayMemberPath = "Name"; LocationComboBox.SelectedValuePath = "ID"; }); }
//响应微信平台推送消息 private void ResponseMsg(HttpContext httpContext, RequestParams requestParams) { BaseBLL weixin = null; IFactory factory = null; #region 通过微信类型生成对应的业务处理类 var application = new WApplicationInterfaceBLL(requestParams.LoggingSessionInfo); var appEntitys = application.QueryByEntity(new WApplicationInterfaceEntity() { WeiXinID = requestParams.WeixinId }, null); if (appEntitys != null && appEntitys.Length > 0) { var entity = appEntitys.FirstOrDefault(); BaseService.WriteLogWeixin("通过微信类型生成对应的业务处理类"); BaseService.WriteLogWeixin("WeiXinTypeId(微信类型): " + entity.WeiXinTypeId); switch (entity.WeiXinTypeId) { case WeiXinType.SUBSCRIPTION: factory = new SubscriptionFactory(); weixin = factory.CreateWeiXin(httpContext, requestParams); BaseService.WriteLogWeixin("订阅号"); break; case WeiXinType.SERVICE: factory = new ServiceFactory(); weixin = factory.CreateWeiXin(httpContext, requestParams); BaseService.WriteLogWeixin("服务号"); break; case WeiXinType.CERTIFICATION: //目前我们的客户一般是认证服务号,所以关注事件从这里查看 factory = new CertificationFactory(); weixin = factory.CreateWeiXin(httpContext, requestParams); BaseService.WriteLogWeixin("认证服务号"); break; case WeiXinType.SUBSCRIPTION_EXTEND: BaseService.WriteLogWeixin("可扩展订阅号"); break; case WeiXinType.SERVICE_EXTEND: BaseService.WriteLogWeixin("可扩展服务号"); break; case WeiXinType.CERTIFICATION_EXTEND: BaseService.WriteLogWeixin("可扩展认证服务号"); break; default: factory = new SubscriptionFactory(); weixin = factory.CreateWeiXin(httpContext, requestParams); BaseService.WriteLogWeixin("默认订阅号"); break; } } #endregion weixin.ResponseMsg();//根据消息类型,回应事件。有文本消息、图片消息、多客服、地理位置、事件 }
void Start() { try { RSA rsa = new RSA(_rsa); server = new TcpListenerX(int.Parse(txtPort.Text)); server.Start(); byte[] bytes = new byte[1024]; string data = null; TcpClient client = null; while (true) { if (started == false) { return; } log("waiting for a connection... "); client = server.AcceptTcpClient(); log("connected!"); data = null; try { using (NetworkStream stream = client.GetStream()) { stream.Write(RSA.KeyToString(rsa.PublicKey).StringToBytes(), 0, 397); if (stream.Read(bytes, 0, 397) != 0) { rsa.SetClientPublicKey(RSA.StringToKey(bytes.BytesToString())); bytes = new Byte[4096]; stream.Read(bytes, 0, 128); byte[] sign = bytes.Cute(0, 128); int r = stream.Read(bytes, 0, bytes.Length); data = bytes.Cute(0, r).BytesToString(); if (rsa.Varify(bytes.Cute(0, r), sign) == false) { log("signture invalied"); } else { log("signture valied"); } log("Received: " + data); if (data.StartsWith("get cert for ")) { string username = data.Substring("get cert for ".Length); X509Certificate2 cert = CertificationFactory.GenerateCertificate(); log("create certificate for user: "******"close connection with " + username); } else if (data.StartsWith("verify Cert for ")) { } } } } catch (Exception ex) { log("error: " + ex.Message); } finally { client.Close(); } } } catch { log("server stoped"); } }