11using System ;
22using System . Collections . Generic ;
33using System . Diagnostics ;
4- using System . Text ;
54using System . Threading . Tasks ;
65using Microsoft . Extensions . Logging ;
76using Microsoft . Extensions . Options ;
8- using Myvas . AspNetCore . Weixin ;
97using Myvas . AspNetCore . Weixin . EfCore ;
108
11- namespace Demo . Applications ;
9+ namespace Myvas . AspNetCore . Weixin ;
1210
13- public class DemoWeixinEventSink : DemoWeixinEventSink < WeixinSubscriberEntity , string >
14- {
15- public DemoWeixinEventSink ( IOptions < WeixinSiteOptions > optionsAccessor ,
16- ILogger < WeixinEfCoreEventSink < WeixinSubscriberEntity , string > > logger ,
17- IWeixinReceivedMessageStore < WeixinReceivedMessageEntity > messageStore ,
18- IWeixinReceivedEventStore < WeixinReceivedEventEntity > eventStore ,
19- IWeixinSubscriberStore < WeixinSubscriberEntity , string > subscriberStore )
20- : base ( optionsAccessor , logger , messageStore , eventStore , subscriberStore )
21- {
22- }
23- }
24-
25- public class DemoWeixinEventSink < TWeixinSubscriberEntity , TKey > : WeixinTraceEventSink
26- where TWeixinSubscriberEntity : class , IWeixinSubscriberEntity < TKey > , new ( )
27- where TKey : IEquatable < TKey >
11+ public class DemoEventSink : WeixinTraceEventSink
2812{
2913 protected readonly IWeixinReceivedEventStore < WeixinReceivedEventEntity > _eventStore ;
3014
3115 protected readonly IWeixinReceivedMessageStore < WeixinReceivedMessageEntity > _messageStore ;
3216
33- protected readonly IWeixinSubscriberStore < TWeixinSubscriberEntity , TKey > _subscriberStore ;
17+ protected readonly IWeixinSubscriberStore _subscriberStore ;
3418
35- public DemoWeixinEventSink ( IOptions < WeixinSiteOptions > optionsAccessor ,
36- ILogger < WeixinEfCoreEventSink < TWeixinSubscriberEntity , TKey > > logger ,
37- IWeixinReceivedMessageStore < WeixinReceivedMessageEntity > messageStore ,
38- IWeixinReceivedEventStore < WeixinReceivedEventEntity > eventStore ,
39- IWeixinSubscriberStore < TWeixinSubscriberEntity , TKey > subscriberStore )
19+ public DemoEventSink ( IOptions < WeixinSiteOptions > optionsAccessor ,
20+ ILogger < DemoEventSink > logger ,
21+ IWeixinReceivedMessageStore messageStore ,
22+ IWeixinReceivedEventStore eventStore ,
23+ IWeixinSubscriberStore subscriberStore )
4024 : base ( optionsAccessor , logger )
4125 {
4226 _messageStore = messageStore ?? throw new ArgumentNullException ( nameof ( messageStore ) ) ;
@@ -102,7 +86,7 @@ public override async Task<bool> OnTextMessageReceived(object sender, WeixinEven
10286 _logger . LogTrace ( ex . InnerException ?? ex , ex . InnerException ? . Message ?? ex . Message ) ;
10387 }
10488
105- var echo = $ "收到一条微信文本消息: { e . Xml . Content } ";
89+ var echo = $ "Content: { e . Xml . Content } ";
10690 await ResponseWithText ( e . Context , e . Xml , echo ) ;
10791 return true ;
10892 }
@@ -137,7 +121,7 @@ public override async Task<bool> OnLinkMessageReceived(object sender, WeixinEven
137121 FromUserName = e . Xml . ToUserName ,
138122 CreateTime = DateTime . Now ,
139123 Articles = new List < WeixinResponseNewsArticle > ( ) { new WeixinResponseNewsArticle {
140- Title = $ "收到一条链接消息: { e . Xml . Title } ",
124+ Title = $ "{ e . Xml . Title } ",
141125 Description = e . Xml . Description ,
142126 Url = e . Xml . Url
143127 } }
@@ -167,7 +151,7 @@ public override async Task<bool> OnVideoMessageReceived(object sender, WeixinEve
167151 _logger . LogTrace ( ex . InnerException ?? ex , ex . InnerException ? . Message ?? ex . Message ) ;
168152 }
169153
170- var echo = $ "收到一条视频消息,ID: { e . Xml . MediaId } ";
154+ var echo = $ "MediaId: { e . Xml . MediaId } , ThumbMediaId: { e . Xml . ThumbMediaId } ";
171155 await ResponseWithText ( e . Context , e . Xml , echo ) ;
172156 return true ;
173157 }
@@ -190,7 +174,7 @@ public override async Task<bool> OnShortVideoMessageReceived(object sender, Weix
190174 }
191175
192176
193- var echo = $ "收到一条短视频消息,ID: { e . Xml . MediaId } ";
177+ var echo = $ "MediaId: { e . Xml . MediaId } , ThumbMediaId: { e . Xml . ThumbMediaId } ";
194178 await ResponseWithText ( e . Context , e . Xml , echo ) ;
195179 return true ;
196180 }
@@ -212,7 +196,7 @@ public override async Task<bool> OnVoiceMessageReceived(object sender, WeixinEve
212196 _logger . LogTrace ( ex . InnerException ?? ex , ex . InnerException ? . Message ?? ex . Message ) ;
213197 }
214198
215- var echo = $ "收到一条语音消息,ID: { e . Xml . MediaId } ";
199+ var echo = $ "Format: { e . Xml . Format } , MediaId: { e . Xml . MediaId } , Recognition: { e . Xml . Recognition } ";
216200 await ResponseWithText ( e . Context , e . Xml , echo ) ;
217201 return true ;
218202 }
@@ -275,8 +259,8 @@ public override async Task<bool> OnLocationMessageReceived(object sender, Weixin
275259 {
276260 new ( )
277261 {
278- Latitude = e . Xml . Latitude ,
279262 Longitude = e . Xml . Longitude ,
263+ Latitude = e . Xml . Latitude ,
280264 Color = "red" ,
281265 Label = "S" ,
282266 Size = GoogleMapMarkerSize . Default ,
@@ -292,8 +276,8 @@ public override async Task<bool> OnLocationMessageReceived(object sender, Weixin
292276 CreateTime = DateTime . Now ,
293277 Articles = new List < WeixinResponseNewsArticle > ( ) { new WeixinResponseNewsArticle {
294278 Title = "定位地点周边地图" ,
295- Description = string . Format ( "您刚才发送了地理位置信息。Location_X: {0},Location_Y: {1}, Scale: {2},标签: {3}" ,
296- e . Xml . Latitude , e . Xml . Longitude ,
279+ Description = string . Format ( "Longitude: {0}, Latitude: {1}, Scale: {2}, Label: {3}" ,
280+ e . Xml . Longitude , e . Xml . Latitude ,
297281 e . Xml . Scale , e . Xml . Label ) ,
298282 PicUrl = mapUrl ,
299283 Url = mapUrl
@@ -328,8 +312,8 @@ public override async Task<bool> OnLocationEventReceived(object sender, WeixinEv
328312 {
329313 new ( )
330314 {
331- Latitude = e . Xml . Latitude ,
332315 Longitude = e . Xml . Longitude ,
316+ Latitude = e . Xml . Latitude ,
333317 Color = "red" ,
334318 Label = "S" ,
335319 Size = GoogleMapMarkerSize . Default ,
@@ -345,8 +329,8 @@ public override async Task<bool> OnLocationEventReceived(object sender, WeixinEv
345329 CreateTime = DateTime . Now ,
346330 Articles = new List < WeixinResponseNewsArticle > ( ) { new WeixinResponseNewsArticle {
347331 Title = "定位地点周边地图" ,
348- Description = string . Format ( "您刚才发送了地理位置信息。Location_X: {0},Location_Y: {1}, Precision: {2}" ,
349- e . Xml . Latitude , e . Xml . Longitude ,
332+ Description = string . Format ( "Longitude: {0}, Latitude: {1}, Precision: {2}" ,
333+ e . Xml . Longitude , e . Xml . Latitude ,
350334 e . Xml . Precision ) ,
351335 PicUrl = mapUrl ,
352336 Url = mapUrl
@@ -377,7 +361,7 @@ public override async Task<bool> OnClickMenuEventReceived(object sender, WeixinE
377361 _logger . LogTrace ( ex . InnerException ?? ex , ex . InnerException ? . Message ?? ex . Message ) ;
378362 }
379363
380- var echo = $ "点击了子菜单按钮( { e . Xml . FromUserName } ) : { e . Xml . EventKey } ";
364+ var echo = $ "EventKey : { e . Xml . EventKey } ";
381365 await ResponseWithText ( e . Context , e . Xml , echo ) ;
382366 return true ;
383367 }
@@ -399,7 +383,7 @@ public override async Task<bool> OnViewMenuEventReceived(object sender, WeixinEv
399383 _logger . LogTrace ( ex . InnerException ?? ex , ex . InnerException ? . Message ?? ex . Message ) ;
400384 }
401385
402- var echo = $ "点击了子菜单按钮( { e . Xml . FromUserName } ) : { e . Xml . EventKeyAsUrl ( ) } ";
386+ var echo = $ "EventKey : { e . Xml . EventKey } ";
403387 await ResponseWithText ( e . Context , e . Xml , echo ) ;
404388 return true ;
405389 }
@@ -433,7 +417,7 @@ public override async Task<bool> OnUnsubscribeEventReceived(object sender, Weixi
433417 _logger . LogTrace ( ex . InnerException ?? ex , ex . InnerException ? . Message ?? ex . Message ) ;
434418 }
435419
436- var echo = $ "Unsubscribe( { e . Xml . FromUserName } ) ";
420+ var echo = $ "" ;
437421 await ResponseWithText ( e . Context , e . Xml , echo ) ;
438422 return true ;
439423 }
@@ -455,7 +439,7 @@ public override async Task<bool> OnQrscanEventReceived(object sender, WeixinEven
455439 _logger . LogTrace ( ex . InnerException ?? ex , ex . InnerException ? . Message ?? ex . Message ) ;
456440 }
457441
458- var echo = $ "QrscanEvent( { e . Xml . FromUserName } : { e . Xml . EventKeyAsScene ( ) } , { e . Xml . Ticket } ) ";
442+ var echo = $ "EventKey : { e . Xml . EventKey } , Ticket: { e . Xml . Ticket } ";
459443 await ResponseWithText ( e . Context , e . Xml , echo ) ;
460444 return true ;
461445 }
@@ -471,7 +455,7 @@ public override async Task<bool> OnSubscribeEventReceived(object sender, WeixinE
471455 var subscriber = await _subscriberStore . FindByOpenIdAsync ( e . Xml . FromUserName ) ;
472456 if ( subscriber == null )
473457 {
474- subscriber = new TWeixinSubscriberEntity
458+ subscriber = new WeixinSubscriberEntity
475459 {
476460 OpenId = e . Xml . FromUserName ,
477461 SubscribeTime = DateTimeOffset . Now . ToUnixTime ( ) ,
@@ -496,7 +480,7 @@ public override async Task<bool> OnSubscribeEventReceived(object sender, WeixinE
496480 _logger . LogTrace ( ex . InnerException ?? ex , ex . InnerException ? . Message ?? ex . Message ) ;
497481 }
498482
499- var echo = $ "Subscribe( { e . Xml . FromUserName } : { e . Xml . EventKeyAsScene ( ) } , { e . Xml . Ticket } ) ";
483+ var echo = $ "EventKey : { e . Xml . EventKey } , Ticket: { e . Xml . Ticket } ";
500484 await ResponseWithText ( e . Context , e . Xml , echo ) ;
501485 return true ;
502486 }
@@ -518,7 +502,7 @@ public override async Task<bool> OnEnterEventReceived(object sender, WeixinEvent
518502 _logger . LogTrace ( ex . InnerException ?? ex , ex . InnerException ? . Message ?? ex . Message ) ;
519503 }
520504
521- var echo = $ "Enter( { e . Xml . FromUserName } ) ";
505+ var echo = $ "" ;
522506 await ResponseWithText ( e . Context , e . Xml , echo ) ;
523507 return true ;
524508 }
0 commit comments