|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | using HslCommunication.WebSocket; | 
|---|
|  |  |  | using SqlSugar; | 
|---|
|  |  |  | using WIDESEAWCS_Core.Helper; | 
|---|
|  |  |  | using WIDESEAWCS_Core.Seed; | 
|---|
|  |  |  | using WIDESEAWCS_DTO.BasicInfo; | 
|---|
|  |  |  | using WIDESEAWCS_Model.Models; | 
|---|
|  |  |  | using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | namespace WIDESEAWCS_Server.HostedService | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public class WarehouseHostedService : IHostedService | 
|---|
|  |  |  | { | 
|---|
|  |  |  | private readonly ICacheService _cacheService; | 
|---|
|  |  |  | private readonly DBContext _dbContext; | 
|---|
|  |  |  | //private readonly WebSocketServer _webSocketServer; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public WarehouseHostedService(ICacheService cacheService, DBContext dbContext/*, WebSocketServer webSocketServer*/) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | _cacheService = cacheService; | 
|---|
|  |  |  | _dbContext = dbContext; | 
|---|
|  |  |  | //_webSocketServer = webSocketServer; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public Task StartAsync(CancellationToken cancellationToken) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | throw new NotImplementedException(); | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | string connStr = AppSettings.GetValue("WMSConnectionStrings"); | 
|---|
|  |  |  | if (string.IsNullOrEmpty(connStr)) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | throw new Exception("WMSè¿æ¥å符串é误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SqlSugarClient sugarClient = new(new ConnectionConfig() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ConnectionString = connStr, | 
|---|
|  |  |  | IsAutoCloseConnection = true, | 
|---|
|  |  |  | DbType = DbType.SqlServer | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Dt_Warehouse> warehouses = sugarClient.Queryable<Dt_Warehouse>().ToList(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | _dbContext.Db.Deleteable<Dt_Warehouse>().ExecuteCommand(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | _dbContext.Db.Insertable(warehouses).ExecuteCommand(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Dt_ApiInfo> apiInfos = _dbContext.Db.Queryable<Dt_ApiInfo>().ToList(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Dt_WarehouseDevice> warehouseDevices = _dbContext.Db.Queryable<Dt_WarehouseDevice>().ToList(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | _cacheService.AddOrUpdate(nameof(Dt_WarehouseDevice), warehouseDevices); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | _cacheService.AddOrUpdate(nameof(apiInfos), apiInfos); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception ex) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Console.WriteLine(ex.ToString()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return Task.CompletedTask; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public Task StopAsync(CancellationToken cancellationToken) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | throw new NotImplementedException(); | 
|---|
|  |  |  | return Task.CompletedTask; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|