diff --git a/Haoliang.Core/Services/AlarmService.cs b/Haoliang.Core/Services/AlarmService.cs index 6c8c0ee..ee79084 100644 --- a/Haoliang.Core/Services/AlarmService.cs +++ b/Haoliang.Core/Services/AlarmService.cs @@ -28,32 +28,6 @@ namespace Haoliang.Core.Services Task> GetDeviceAlarmsAsync(int deviceId, int days = 7); } - public interface IAlarmRuleService - { - Task CreateAlarmRuleAsync(AlarmRule rule); - Task UpdateAlarmRuleAsync(int ruleId, AlarmRule rule); - Task DeleteAlarmRuleAsync(int ruleId); - Task GetAlarmRuleByIdAsync(int ruleId); - Task> GetAllAlarmRulesAsync(); - Task> GetActiveAlarmRulesAsync(); - Task> GetRulesByDeviceAsync(int deviceId); - Task EvaluateAlarmRuleAsync(AlarmRule rule, DeviceCurrentStatus status); - Task GenerateAlarmFromRuleAsync(AlarmRule rule, DeviceCurrentStatus status); - Task TestAlarmRuleAsync(int ruleId); - } - - public interface IAlarmNotificationService - { - Task SendAlarmNotificationAsync(Alarm alarm); - Task SendBulkAlarmNotificationsAsync(IEnumerable alarms); - Task SendSmsNotificationAsync(string phoneNumber, string message); - Task SendEmailNotificationAsync(string email, string subject, string message); - Task SendWechatNotificationAsync(string openId, string message); - Task> GetNotificationHistoryAsync(DateTime startDate, DateTime endDate); - Task ConfigureNotificationChannelAsync(NotificationChannel channel); - Task> GetAvailableChannelsAsync(); - } - public class AlarmManager : IAlarmService { private readonly IAlarmRepository _alarmRepository; @@ -72,14 +46,11 @@ namespace Haoliang.Core.Services public async Task CreateAlarmAsync(Alarm alarm) { - // 设置初始状态 alarm.AlarmStatus = AlarmStatus.Active; alarm.CreateTime = DateTime.Now; alarm.UpdateTime = DateTime.Now; var createdAlarm = await _alarmRepository.AddAsync(alarm); - - // 发送告警通知 await _notificationService.SendAlarmNotificationAsync(createdAlarm); return createdAlarm; @@ -93,7 +64,6 @@ namespace Haoliang.Core.Services throw new KeyNotFoundException($"Alarm with ID {alarmId} not found"); } - // 更新字段 alarm.AlarmId = alarmId; alarm.UpdateTime = DateTime.Now; @@ -185,464 +155,4 @@ namespace Haoliang.Core.Services return await _alarmRepository.GetByDeviceAndDateRangeAsync(deviceId, startDate, endDate); } } - - public class AlarmRuleService : IAlarmRuleService - { - private readonly IAlarmRuleRepository _ruleRepository; - private readonly IAlarmRepository _alarmRepository; - private readonly IDeviceRepository _deviceRepository; - private readonly ILoggerService _logger; - - public AlarmRuleService( - IAlarmRuleRepository ruleRepository, - IAlarmRepository alarmRepository, - IDeviceRepository deviceRepository, - ILoggerService logger) - { - _ruleRepository = ruleRepository; - _alarmRepository = alarmRepository; - _deviceRepository = deviceRepository; - _logger = logger; - } - - public async Task CreateAlarmRuleAsync(AlarmRule rule) - { - rule.IsActive = true; - rule.CreateTime = DateTime.Now; - rule.UpdateTime = DateTime.Now; - - return await _ruleRepository.AddAsync(rule); - } - - public async Task UpdateAlarmRuleAsync(int ruleId, AlarmRule rule) - { - var existingRule = await _ruleRepository.GetByIdAsync(ruleId); - if (existingRule == null) - { - throw new KeyNotFoundException($"Alarm rule with ID {ruleId} not found"); - } - - rule.RuleId = ruleId; - rule.UpdateTime = DateTime.Now; - - return await _ruleRepository.UpdateAsync(rule); - } - - public async Task DeleteAlarmRuleAsync(int ruleId) - { - return await _ruleRepository.DeleteAsync(ruleId); - } - - public async Task GetAlarmRuleByIdAsync(int ruleId) - { - return await _ruleRepository.GetByIdAsync(ruleId); - } - - public async Task> GetAllAlarmRulesAsync() - { - return await _ruleRepository.GetAllAsync(); - } - - public async Task> GetActiveAlarmRulesAsync() - { - return await _ruleRepository.GetByStatusAsync(true); - } - - public async Task> GetRulesByDeviceAsync(int deviceId) - { - return await _ruleRepository.GetByDeviceIdAsync(deviceId); - } - - public async Task EvaluateAlarmRuleAsync(AlarmRule rule, DeviceCurrentStatus status) - { - if (!rule.IsActive || status == null) - return false; - - try - { - switch (rule.RuleType) - { - case AlarmRuleType.DeviceOffline: - return EvaluateDeviceOfflineRule(rule, status); - - case AlarmRuleType.TemperatureHigh: - return EvaluateTemperatureRule(rule, status); - - case AlarmRuleType.PressureHigh: - return EvaluatePressureRule(rule, status); - - case AlarmRuleType.ProductionStop: - return EvaluateProductionStopRule(rule, status); - - case AlarmRuleType.NetworkError: - return EvaluateNetworkErrorRule(rule, status); - - default: - return false; - } - } - catch (Exception ex) - { - await _logger.LogErrorAsync($"Failed to evaluate alarm rule {rule.RuleId}: {ex.Message}"); - return false; - } - } - - public async Task GenerateAlarmFromRuleAsync(AlarmRule rule, DeviceCurrentStatus status) - { - var alarm = new Alarm - { - DeviceId = status.DeviceId, - DeviceCode = "", // Will be populated from device - AlarmType = rule.AlarmType, - Severity = rule.Severity, - Title = rule.AlarmTitle, - Description = rule.AlarmDescription, - AlarmStatus = AlarmStatus.Active, - RuleId = rule.RuleId, - CreateTime = DateTime.Now, - UpdateTime = DateTime.Now - }; - - // Get device code - var device = await _deviceRepository.GetByIdAsync(status.DeviceId); - if (device != null) - { - alarm.DeviceCode = device.DeviceCode; - } - - return alarm; - } - - public async Task TestAlarmRuleAsync(int ruleId) - { - var rule = await _ruleRepository.GetByIdAsync(ruleId); - if (rule == null) - throw new KeyNotFoundException($"Alarm rule with ID {ruleId} not found"); - - // Get a sample device status for testing - var devices = await _deviceRepository.GetAllAsync(); - if (!devices.Any()) - throw new Exception("No devices available for testing"); - - var sampleDevice = devices.First(); - var deviceStatus = new DeviceCurrentStatus - { - DeviceId = sampleDevice.Id, - Status = "Running", - IsRunning = true, - NCProgram = "O1234", - CumulativeCount = 1000, - RecordTime = DateTime.Now - }; - - // Evaluate the rule - var shouldTrigger = await EvaluateAlarmRuleAsync(rule, deviceStatus); - - if (shouldTrigger) - { - var alarm = await GenerateAlarmFromRuleAsync(rule, deviceStatus); - alarm.Title = $"Test Alarm: {rule.AlarmTitle}"; - alarm.Description = $"This is a test alarm for rule '{rule.RuleName}'."; - - await _alarmRepository.AddAsync(alarm); - await _alarmRepository.SaveAsync(); - - await _logger.LogInformationAsync($"Test alarm created for rule {rule.RuleId}"); - } - else - { - await _logger.LogInformationAsync($"Rule {rule.RuleId} did not trigger alarm during test"); - } - } - - private bool EvaluateDeviceOfflineRule(AlarmRule rule, DeviceCurrentStatus status) - { - // Check if device status indicates offline - return status.Status?.ToLower() == "offline" || - !status.IsRunning || - string.IsNullOrEmpty(status.NCProgram); - } - - private bool EvaluateTemperatureRule(AlarmRule rule, DeviceCurrentStatus status) - { - // Find temperature tag - var temperatureTag = status.Tags?.FirstOrDefault(t => t.Id?.Contains("temp") == true || t.Id?.Contains("温度") == true); - if (temperatureTag == null || temperatureTag.Value == null) - return false; - - if (decimal.TryParse(temperatureTag.Value.ToString(), out decimal temperature)) - { - return temperature > rule.ThresholdValue; - } - - return false; - } - - private bool EvaluatePressureRule(AlarmRule rule, DeviceCurrentStatus status) - { - // Find pressure tag - var pressureTag = status.Tags?.FirstOrDefault(t => t.Id?.Contains("pressure") == true || t.Id?.Contains("压力") == true); - if (pressureTag == null || pressureTag.Value == null) - return false; - - if (decimal.TryParse(pressureTag.Value.ToString(), out decimal pressure)) - { - return pressure > rule.ThresholdValue; - } - - return false; - } - - private bool EvaluateProductionStopRule(AlarmRule rule, DeviceCurrentStatus status) - { - // Check if device has been stopped for specified duration - var stopDuration = TimeSpan.FromMinutes(rule.ThresholdValue); - return !status.IsRunning && - status.RecordTime < DateTime.Now.Subtract(stopDuration); - } - - private bool EvaluateNetworkErrorRule(AlarmRule rule, DeviceCurrentStatus status) - { - // Check for network-related errors in status - return status.Tags?.Any(t => t.Id?.Contains("error") == true && t.Value?.ToString() == "1") == true; - } - } - - public class AlarmNotificationService : IAlarmNotificationService - { - private readonly IAlarmNotificationRepository _notificationRepository; - private readonly IEmailService _emailService; - private readonly ISmsService _smsService; - private readonly IWechatService _wechatService; - private readonly ILoggerService _logger; - private readonly IDeviceRepository _deviceRepository; - - public AlarmNotificationService( - IAlarmNotificationRepository notificationRepository, - IEmailService emailService, - ISmsService smsService, - IWechatService wechatService, - ILoggerService logger, - IDeviceRepository deviceRepository) - { - _notificationRepository = notificationRepository; - _emailService = emailService; - _smsService = smsService; - _wechatService = wechatService; - _logger = logger; - _deviceRepository = deviceRepository; - } - - public async Task SendAlarmNotificationAsync(Alarm alarm) - { - try - { - var device = await _deviceRepository.GetByIdAsync(alarm.DeviceId); - var notificationChannels = await GetNotificationChannelsForDevice(alarm.DeviceId); - - foreach (var channel in notificationChannels) - { - if (channel.IsEnabled) - { - await SendNotificationViaChannel(alarm, channel, device); - } - } - - // Log the notification - await LogNotificationSent(alarm, notificationChannels.Count()); - } - catch (Exception ex) - { - await _logger.LogErrorAsync($"Failed to send alarm notification for alarm {alarm.AlarmId}: {ex.Message}"); - } - } - - public async Task SendBulkAlarmNotificationsAsync(IEnumerable alarms) - { - foreach (var alarm in alarms) - { - await SendAlarmNotificationAsync(alarm); - } - } - - public async Task SendSmsNotificationAsync(string phoneNumber, string message) - { - try - { - return await _smsService.SendSmsAsync(phoneNumber, message); - } - catch (Exception ex) - { - await _logger.LogErrorAsync($"Failed to send SMS to {phoneNumber}: {ex.Message}"); - return false; - } - } - - public async Task SendEmailNotificationAsync(string email, string subject, string message) - { - try - { - return await _emailService.SendEmailAsync(email, subject, message); - } - catch (Exception ex) - { - await _logger.LogErrorAsync($"Failed to send email to {email}: {ex.Message}"); - return false; - } - } - - public async Task SendWechatNotificationAsync(string openId, string message) - { - try - { - return await _wechatService.SendMessageAsync(openId, message); - } - catch (Exception ex) - { - await _logger.LogErrorAsync($"Failed to send WeChat message to {openId}: {ex.Message}"); - return false; - } - } - - public async Task> GetNotificationHistoryAsync(DateTime startDate, DateTime endDate) - { - return await _notificationRepository.GetByDateRangeAsync(startDate, endDate); - } - - public async Task ConfigureNotificationChannelAsync(NotificationChannel channel) - { - // Validate channel configuration - if (!ValidateChannelConfiguration(channel)) - return false; - - // Save channel configuration - return await _notificationRepository.SaveChannelAsync(channel); - } - - public async Task> GetAvailableChannelsAsync() - { - return await _notificationRepository.GetAllChannelsAsync(); - } - - private async Task> GetNotificationChannelsForDevice(int deviceId) - { - // This would typically query the database for device-specific notification settings - // For now, return a default set of channels - return new List - { - new NotificationChannel { ChannelType = NotificationChannelType.Email, IsEnabled = true }, - new NotificationChannel { ChannelType = NotificationChannelType.Sms, IsEnabled = false }, - new NotificationChannel { ChannelType = NotificationChannelType.WeChat, IsEnabled = false } - }; - } - - private async Task SendNotificationViaChannel(Alarm alarm, NotificationChannel channel, Device device) - { - var message = FormatAlarmMessage(alarm, device); - var subject = $"Alarm: {alarm.AlarmType} - {device?.DeviceCode}"; - - switch (channel.ChannelType) - { - case NotificationChannelType.Email: - if (!string.IsNullOrEmpty(channel.Recipient)) - { - await SendEmailNotificationAsync(channel.Recipient, subject, message); - } - break; - - case NotificationChannelType.Sms: - if (!string.IsNullOrEmpty(channel.Recipient)) - { - await SendSmsNotificationAsync(channel.Recipient, message); - } - break; - - case NotificationChannelType.WeChat: - if (!string.IsNullOrEmpty(channel.Recipient)) - { - await SendWechatNotificationAsync(channel.Recipient, message); - } - break; - } - } - - private string FormatAlarmMessage(Alarm alarm, Device device) - { - return $"🚨 Alarm Alert\n\n" + - $"Device: {device?.DeviceCode} ({device?.DeviceName})\n" + - $"Type: {alarm.AlarmType}\n" + - $"Severity: {alarm.Severity}\n" + - $"Title: {alarm.Title}\n" + - $"Description: {alarm.Description}\n" + - $"Time: {alarm.CreateTime:yyyy-MM-dd HH:mm:ss}\n" + - $"Device ID: {alarm.DeviceId}"; - } - - private bool ValidateChannelConfiguration(NotificationChannel channel) - { - switch (channel.ChannelType) - { - case NotificationChannelType.Email: - return !string.IsNullOrEmpty(channel.Recipient) && channel.Recipient.Contains("@"); - - case NotificationChannelType.Sms: - return !string.IsNullOrEmpty(channel.Recipient) && channel.Recipient.All(char.IsDigit); - - case NotificationChannelType.WeChat: - return !string.IsNullOrEmpty(channel.Recipient); - - default: - return false; - } - } - - private async Task LogNotificationSent(Alarm alarm, int channelCount) - { - var notification = new AlarmNotification - { - AlarmId = alarm.AlarmId, - NotificationTime = DateTime.Now, - ChannelsUsed = channelCount, - Success = true - }; - - await _notificationRepository.AddNotificationAsync(notification); - } - } - - // Additional supporting classes and interfaces - public interface IEmailService - { - Task SendEmailAsync(string email, string subject, string message); - } - - public interface ISmsService - { - Task SendSmsAsync(string phoneNumber, string message); - } - - public interface IWechatService - { - Task SendMessageAsync(string openId, string message); - } - - public interface IAlarmRuleRepository - { - Task AddAsync(AlarmRule rule); - Task UpdateAsync(AlarmRule rule); - Task DeleteAsync(int ruleId); - Task GetByIdAsync(int ruleId); - Task> GetAllAsync(); - Task> GetByStatusAsync(bool isActive); - Task> GetByDeviceIdAsync(int deviceId); - } - - public interface IAlarmNotificationRepository - { - Task AddNotificationAsync(AlarmNotification notification); - Task> GetByDateRangeAsync(DateTime startDate, DateTime endDate); - Task SaveChannelAsync(NotificationChannel channel); - Task> GetAllChannelsAsync(); - } } \ No newline at end of file diff --git a/Haoliang.Core/Services/CacheService.cs b/Haoliang.Core/Services/CacheService.cs index 9723e4d..399cc53 100644 --- a/Haoliang.Core/Services/CacheService.cs +++ b/Haoliang.Core/Services/CacheService.cs @@ -5,9 +5,9 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Caching.Memory; using Haoliang.Core.Services; -using Haoliang.Models.Models.Device; -using Haoliang.Models.Models.Production; -using Haoliang.Models.Models.System; +using Haoliang.Models.Device; +using Haoliang.Models.Production; +using Haoliang.Models.System; namespace Haoliang.Core.Services { diff --git a/Haoliang.Core/Services/DeviceStateMachine.cs b/Haoliang.Core/Services/DeviceStateMachine.cs index 84be102..ebf5232 100644 --- a/Haoliang.Core/Services/DeviceStateMachine.cs +++ b/Haoliang.Core/Services/DeviceStateMachine.cs @@ -6,8 +6,8 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Hosting; using Haoliang.Core.Services; -using Haoliang.Models.Models.Device; -using Haoliang.Models.Models.System; +using Haoliang.Models.Device; +using Haoliang.Models.System; using Haoliang.Models.Common; namespace Haoliang.Core.Services diff --git a/Haoliang.Core/Services/IProductionStatisticsService.cs b/Haoliang.Core/Services/IProductionStatisticsService.cs index 0bf72e8..5e97e70 100644 --- a/Haoliang.Core/Services/IProductionStatisticsService.cs +++ b/Haoliang.Core/Services/IProductionStatisticsService.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; -using Haoliang.Models.Models.System; -using Haoliang.Models.Models.Production; +using Haoliang.Models.System; +using Haoliang.Models.Production; namespace Haoliang.Core.Services { diff --git a/Haoliang.Core/Services/ProductionStatisticsService.cs b/Haoliang.Core/Services/ProductionStatisticsService.cs index 2efb25a..f9eed6f 100644 --- a/Haoliang.Core/Services/ProductionStatisticsService.cs +++ b/Haoliang.Core/Services/ProductionStatisticsService.cs @@ -5,10 +5,10 @@ using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Haoliang.Core.Services; using Haoliang.Data.Repositories; -using Haoliang.Models.Models.Device; -using Haoliang.Models.Models.Production; -using Haoliang.Models.Models.System; -using Haoliang.Models.Models.DataCollection; +using Haoliang.Models.Device; +using Haoliang.Models.Production; +using Haoliang.Models.System; +using Haoliang.Models.DataCollection; namespace Haoliang.Core.Services { diff --git a/Haoliang.Core/Services/RulesService.cs b/Haoliang.Core/Services/RulesService.cs index 49ee57e..e313ec3 100644 --- a/Haoliang.Core/Services/RulesService.cs +++ b/Haoliang.Core/Services/RulesService.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; -using Haoliang.Models.Models.System; +using Haoliang.Models.System; namespace Haoliang.Core.Services { diff --git a/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.AssemblyInfo.cs b/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.AssemblyInfo.cs index b3edc0e..5e5685f 100644 --- a/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.AssemblyInfo.cs +++ b/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Haoliang.Core")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+c3d17cebb9da179f6753a56af8a0a77a244c32f3")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+816621dcb94c35c3cc1e4fd61efdefc7363e63f2")] [assembly: System.Reflection.AssemblyProductAttribute("Haoliang.Core")] [assembly: System.Reflection.AssemblyTitleAttribute("Haoliang.Core")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.AssemblyInfoInputs.cache b/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.AssemblyInfoInputs.cache index 65eb7e8..c16394e 100644 --- a/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.AssemblyInfoInputs.cache +++ b/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.AssemblyInfoInputs.cache @@ -1 +1 @@ -8be02421dfff2584ed0de880e6906d7bb86a51af3956a22dc9c02300e5c63caa +7c8177bddf0522256331d06c7b8179260f0ae30b251ffa6343312621856d61d8 diff --git a/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.csproj.AssemblyReference.cache b/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.csproj.AssemblyReference.cache index 9947f23..5658080 100644 Binary files a/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.csproj.AssemblyReference.cache and b/Haoliang.Core/obj/Debug/net8.0/Haoliang.Core.csproj.AssemblyReference.cache differ diff --git a/Haoliang.Data/bin/Debug/net8.0/Haoliang.Data.dll b/Haoliang.Data/bin/Debug/net8.0/Haoliang.Data.dll index 80c2e7b..0a46a34 100644 Binary files a/Haoliang.Data/bin/Debug/net8.0/Haoliang.Data.dll and b/Haoliang.Data/bin/Debug/net8.0/Haoliang.Data.dll differ diff --git a/Haoliang.Data/bin/Debug/net8.0/Haoliang.Data.pdb b/Haoliang.Data/bin/Debug/net8.0/Haoliang.Data.pdb index e725920..5596174 100644 Binary files a/Haoliang.Data/bin/Debug/net8.0/Haoliang.Data.pdb and b/Haoliang.Data/bin/Debug/net8.0/Haoliang.Data.pdb differ diff --git a/Haoliang.Data/bin/Debug/net8.0/Haoliang.Models.dll b/Haoliang.Data/bin/Debug/net8.0/Haoliang.Models.dll index c2d95fe..e7ab6dc 100644 Binary files a/Haoliang.Data/bin/Debug/net8.0/Haoliang.Models.dll and b/Haoliang.Data/bin/Debug/net8.0/Haoliang.Models.dll differ diff --git a/Haoliang.Data/bin/Debug/net8.0/Haoliang.Models.pdb b/Haoliang.Data/bin/Debug/net8.0/Haoliang.Models.pdb index 7c3395b..7da7514 100644 Binary files a/Haoliang.Data/bin/Debug/net8.0/Haoliang.Models.pdb and b/Haoliang.Data/bin/Debug/net8.0/Haoliang.Models.pdb differ diff --git a/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.AssemblyInfo.cs b/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.AssemblyInfo.cs index 6030381..060989b 100644 --- a/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.AssemblyInfo.cs +++ b/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Haoliang.Data")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+c3d17cebb9da179f6753a56af8a0a77a244c32f3")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+816621dcb94c35c3cc1e4fd61efdefc7363e63f2")] [assembly: System.Reflection.AssemblyProductAttribute("Haoliang.Data")] [assembly: System.Reflection.AssemblyTitleAttribute("Haoliang.Data")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.AssemblyInfoInputs.cache b/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.AssemblyInfoInputs.cache index 44f47e8..6d7de1d 100644 --- a/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.AssemblyInfoInputs.cache +++ b/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.AssemblyInfoInputs.cache @@ -1 +1 @@ -74dde7117c2620296605ef8bcf766dedf67d1cb4aa2653155b7060e141ab9f7b +9e63ec6c034e84f83e590a9b38e0ea47d47fd346cebfe07ac47bd55fe9f8fef5 diff --git a/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.csproj.AssemblyReference.cache b/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.csproj.AssemblyReference.cache index 8c45738..a645cc9 100644 Binary files a/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.csproj.AssemblyReference.cache and b/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.csproj.AssemblyReference.cache differ diff --git a/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.dll b/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.dll index 80c2e7b..0a46a34 100644 Binary files a/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.dll and b/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.dll differ diff --git a/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.pdb b/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.pdb index e725920..5596174 100644 Binary files a/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.pdb and b/Haoliang.Data/obj/Debug/net8.0/Haoliang.Data.pdb differ diff --git a/Haoliang.Data/obj/Debug/net8.0/ref/Haoliang.Data.dll b/Haoliang.Data/obj/Debug/net8.0/ref/Haoliang.Data.dll index 4e7e210..3c8ab78 100644 Binary files a/Haoliang.Data/obj/Debug/net8.0/ref/Haoliang.Data.dll and b/Haoliang.Data/obj/Debug/net8.0/ref/Haoliang.Data.dll differ diff --git a/Haoliang.Data/obj/Debug/net8.0/refint/Haoliang.Data.dll b/Haoliang.Data/obj/Debug/net8.0/refint/Haoliang.Data.dll index 4e7e210..3c8ab78 100644 Binary files a/Haoliang.Data/obj/Debug/net8.0/refint/Haoliang.Data.dll and b/Haoliang.Data/obj/Debug/net8.0/refint/Haoliang.Data.dll differ diff --git a/Haoliang.Models/bin/Debug/net8.0/Haoliang.Models.dll b/Haoliang.Models/bin/Debug/net8.0/Haoliang.Models.dll index c2d95fe..e7ab6dc 100644 Binary files a/Haoliang.Models/bin/Debug/net8.0/Haoliang.Models.dll and b/Haoliang.Models/bin/Debug/net8.0/Haoliang.Models.dll differ diff --git a/Haoliang.Models/bin/Debug/net8.0/Haoliang.Models.pdb b/Haoliang.Models/bin/Debug/net8.0/Haoliang.Models.pdb index 7c3395b..7da7514 100644 Binary files a/Haoliang.Models/bin/Debug/net8.0/Haoliang.Models.pdb and b/Haoliang.Models/bin/Debug/net8.0/Haoliang.Models.pdb differ diff --git a/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.AssemblyInfo.cs b/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.AssemblyInfo.cs index 91b7a41..2bf4585 100644 --- a/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.AssemblyInfo.cs +++ b/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Haoliang.Models")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+c3d17cebb9da179f6753a56af8a0a77a244c32f3")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+816621dcb94c35c3cc1e4fd61efdefc7363e63f2")] [assembly: System.Reflection.AssemblyProductAttribute("Haoliang.Models")] [assembly: System.Reflection.AssemblyTitleAttribute("Haoliang.Models")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.AssemblyInfoInputs.cache b/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.AssemblyInfoInputs.cache index c68d43c..b87cb6e 100644 --- a/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.AssemblyInfoInputs.cache +++ b/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.AssemblyInfoInputs.cache @@ -1 +1 @@ -2c18f2f48b9565bc973d3ca206e23b96d6b6815054341daa6858cdf703ae16bc +741778252b9e9c0c25248651ab3b55fec96b80773bde2b4133d7d29bdd8efb4d diff --git a/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.dll b/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.dll index c2d95fe..e7ab6dc 100644 Binary files a/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.dll and b/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.dll differ diff --git a/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.pdb b/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.pdb index 7c3395b..7da7514 100644 Binary files a/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.pdb and b/Haoliang.Models/obj/Debug/net8.0/Haoliang.Models.pdb differ diff --git a/Haoliang.Models/obj/Debug/net8.0/ref/Haoliang.Models.dll b/Haoliang.Models/obj/Debug/net8.0/ref/Haoliang.Models.dll index 6906f4e..ed585ee 100644 Binary files a/Haoliang.Models/obj/Debug/net8.0/ref/Haoliang.Models.dll and b/Haoliang.Models/obj/Debug/net8.0/ref/Haoliang.Models.dll differ diff --git a/Haoliang.Models/obj/Debug/net8.0/refint/Haoliang.Models.dll b/Haoliang.Models/obj/Debug/net8.0/refint/Haoliang.Models.dll index 6906f4e..ed585ee 100644 Binary files a/Haoliang.Models/obj/Debug/net8.0/refint/Haoliang.Models.dll and b/Haoliang.Models/obj/Debug/net8.0/refint/Haoliang.Models.dll differ