irc-netcore-api/IRaCIS.Core.Application/Triggers/UserLogTrigger.cs

41 lines
1.1 KiB
C#

using EntityFrameworkCore.Triggered;
using IP2Region.Net.Abstractions;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Triggers
{
public class UserLogTrigger : IBeforeSaveTrigger<UserLog>
{
public ISearcher _searcher;
public ILogger<UserLogTrigger> _logger;
public UserLogTrigger(ISearcher searcher,ILogger<UserLogTrigger> logger)
{
_searcher = searcher;
_logger= logger;
}
//国家|区域|省份|城市|ISP 缺省的地域信息默认是0
//0|0|0|内网IP|内网IP
public async Task BeforeSave(ITriggerContext<UserLog> context, CancellationToken cancellationToken)
{
var userLog = context.Entity;
if (context.ChangeType == ChangeType.Added)
{
var dd = _searcher.Search(userLog.IP);
_logger.LogWarning(dd);
}
}
}
}