using Microsoft.EntityFrameworkCore; using WCTDataMiner.Core.Data; using WCTDataMiner.Core.Models; namespace WCTDataMiner.Core.Services; /// /// 维度表管理服务 - 负责维度表的CRUD操作 /// public class DimensionService { private readonly WctMinerDbContext _context; public DimensionService(WctMinerDbContext context) { _context = context; } /// /// 获取或创建TX面板维度 /// public async Task GetOrCreateTxPanelAsync(string name) { var existing = await _context.TxPanels .FirstOrDefaultAsync(p => p.Name == name); if (existing != null) return existing; var newPanel = new TxPanel { Name = name }; _context.TxPanels.Add(newPanel); await _context.SaveChangesAsync(); return newPanel; } /// /// 获取或创建TX硬件版本维度 /// public async Task GetOrCreateTxHardwareAsync(string version) { var existing = await _context.TxHardwares .FirstOrDefaultAsync(h => h.Version == version); if (existing != null) return existing; var newHardware = new TxHardware { Version = version }; _context.TxHardwares.Add(newHardware); await _context.SaveChangesAsync(); return newHardware; } /// /// 获取或创建TX软件版本维度 /// public async Task GetOrCreateTxSoftwareAsync(string version) { var existing = await _context.TxSoftwares .FirstOrDefaultAsync(s => s.Version == version); if (existing != null) return existing; var newSoftware = new TxSoftware { Version = version }; _context.TxSoftwares.Add(newSoftware); await _context.SaveChangesAsync(); return newSoftware; } /// /// 获取或创建RX类型维度 /// public async Task GetOrCreateRxTypeAsync(string name) { var existing = await _context.RxTypes .FirstOrDefaultAsync(r => r.Name == name); if (existing != null) return existing; var newRxType = new RxType { Name = name }; _context.RxTypes.Add(newRxType); await _context.SaveChangesAsync(); return newRxType; } }