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