Skip to content

Commit a95fe66

Browse files
Merge pull request #37 from myvas:upgrade-to-rc.4
Upgrade-to-rc.4
2 parents f023eb5 + 4d07f2c commit a95fe66

File tree

3 files changed

+29
-44
lines changed

3 files changed

+29
-44
lines changed

src/MvcDemo/Applications/DemoWeixinEventSink.cs

Lines changed: 26 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,26 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Diagnostics;
4-
using System.Text;
54
using System.Threading.Tasks;
65
using Microsoft.Extensions.Logging;
76
using Microsoft.Extensions.Options;
8-
using Myvas.AspNetCore.Weixin;
97
using 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
}

src/MvcDemo/Demo.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<PackageReference Include="Myvas.AspNetCore.Authentication.WeixinOpen" Version="9.0.*" />
2828
<PackageReference Include="Myvas.AspNetCore.TencentSms" Version="9.0.*" />
2929
<PackageReference Include="Myvas.AspNetCore.ViewDivert" Version="9.0.*" />
30-
<PackageReference Include="Myvas.AspNetCore.Weixin" Version="9.0.0-rc.3" />
30+
<PackageReference Include="Myvas.AspNetCore.Weixin" Version="9.0.0-rc.*" />
3131
<PackageReference Include="Serilog.AspNetCore" Version="9.0.*" />
3232
</ItemGroup>
3333

src/MvcDemo/HostExtensions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ public static WebApplication ConfigureServices(this WebApplicationBuilder builde
102102
{
103103
o.EnableSyncForWeixinSubscribers = true;
104104
o.SyncIntervalInMinutesForWeixinSubscribers = 60;
105-
});
105+
})
106+
.AddWeixinEventSink<DemoEventSink>();
106107

107108
return builder.Build();
108109
}

0 commit comments

Comments
 (0)