Files
Atomx/Atomx.Core/Services/BackgroundJobService.cs
2026-01-04 18:53:19 +08:00

93 lines
3.2 KiB
C#

using Hangfire;
using Microsoft.Extensions.Logging;
using System.IO;
using System.Text.RegularExpressions;
namespace Atomx.Core.Jos
{
public partial interface IBackgroundJobService
{
/// <summary>
/// 更新本地化文件
/// </summary>
/// <param name="path"></param>
/// <param name="culture"></param>
/// <param name="data"></param>
/// <returns></returns>
string UpdateLocalizationFile(string path, string culture, string data);
/// <summary>
/// 重构翻译本地化文件
/// </summary>
/// <param name="path"></param>
/// <param name="culture"></param>
/// <returns></returns>
string RebuildLocalizationFile(string path, string culture);
string SendSMSVerificationCode(string phoneNumber, string code, TimeSpan validDuration);
/// <summary>
/// 更新调整区域树缓存数据,会更新州省缓存
/// </summary>
/// <param name="countryId"></param>
/// <returns></returns>
string ResetStateProvinceAndAreaTree(long countryId);
}
public partial class BackgroundJobService : IBackgroundJobService
{
readonly IBackgroundJobClient _backgroundJobClient;
readonly IRecurringJobManager _recurringJobManager;
readonly ILogger<BackgroundJobService> _logger;
public BackgroundJobService(IBackgroundJobClient backgroundJobClient, IRecurringJobManager recurringJobManager, ILogger<BackgroundJobService> logger)
{
_backgroundJobClient = backgroundJobClient;
_recurringJobManager = recurringJobManager;
_logger = logger;
}
/// <summary>
/// 更新本地化文件
/// </summary>
/// <param name="path"></param>
/// <param name="culture"></param>
/// <param name="data"></param>
/// <returns></returns>
public string UpdateLocalizationFile(string path, string culture, string data)
{
var jobId = _backgroundJobClient.Enqueue<LocalizationJob>(job => job.ExecuteAsync(path, culture, data));
return jobId;
}
/// <summary>
/// 重构翻译本地化文件
/// </summary>
/// <param name="path"></param>
/// <param name="culture"></param>
/// <returns></returns>
public string RebuildLocalizationFile(string path, string culture)
{
var jobId = _backgroundJobClient.Enqueue<LocalizationJob>(job => job.RebuildCultureFile(path, culture));
return jobId;
}
public string SendSMSVerificationCode(string phoneNumber, string code, TimeSpan validDuration)
{
return string.Empty;
}
/// <summary>
/// 更新调整区域树缓存数据,会更新州省缓存
/// </summary>
/// <param name="countryId"></param>
/// <returns></returns>
public string ResetStateProvinceAndAreaTree(long countryId)
{
var jobId = _backgroundJobClient.Enqueue<ResetCacheJob>(job => job.ResetStateProvinceAndAreaTree(countryId));
return jobId;
}
}
}