LanYinLoginHostedService.cs
2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Rcs.Cyaninetech.Models;
using Rcs.Cyaninetech.Services;
using Rcs.Domain.Settings;
namespace Rcs.Cyaninetech.BackgroundServices;
/// <summary>
/// LanYin启动登录服务 - 在应用启动时自动执行登录
/// </summary>
public class LanYinLoginHostedService : IHostedService
{
private readonly ILanYinService _lanYinService;
private readonly ILogger<LanYinLoginHostedService> _logger;
private readonly LanYinSettings _settings;
public LanYinLoginHostedService(
ILanYinService lanYinService,
ILogger<LanYinLoginHostedService> logger,
IOptions<LanYinSettings> settings)
{
_lanYinService = lanYinService;
_logger = logger;
_settings = settings.Value;
}
public async Task StartAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("LanYin登录服务启动中...");
// 检查是否启用并且配置了账号密码
if (!_settings.Enabled)
{
_logger.LogWarning("LanYin服务未启用,跳过自动登录");
return;
}
if (string.IsNullOrWhiteSpace(_settings.Account) ||
string.IsNullOrWhiteSpace(_settings.Password))
{
_logger.LogWarning("未配置LanYin账号或密码,跳过自动登录");
return;
}
try
{
_logger.LogInformation("开始自动登录LanYin系统...");
var loginRequest = new LanYinLoginRequest
{
account = _settings.Account,
password = _settings.Password
};
var success = await _lanYinService.LoginAsync(loginRequest, cancellationToken);
if (success)
{
_logger.LogInformation("✓ LanYin系统自动登录成功");
}
else
{
_logger.LogError("✗ LanYin系统自动登录失败");
}
}
catch (Exception ex)
{
_logger.LogError(ex, "LanYin系统自动登录时发生异常");
}
}
public Task StopAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("LanYin登录服务停止");
return Task.CompletedTask;
}
}