50 lines
1.5 KiB
C#
Raw Normal View History

2024-08-21 16:50:14 +08:00
using Abp.Dependency;
using Microsoft.AspNetCore.Hosting;
using System.IO;
using Yunda.ISAS.DataMonitoringServer.DataCenter;
namespace Yunda.ISAS.DataMonitoringServer.WebApi
{
public class WebApiServer : ISingletonDependency
{
private IWebHost _host;
private WebApiConfigModel _configModel;
public static CameraDataCenter _cameraDataCenter;
public static RunningDataCache _runningDataCache;
public WebApiServer(WebApiConfigModel webApiConfig,
RunningDataCache runningDataCache,
CameraDataCenter cameraDataCenter)
{
_configModel = webApiConfig;
_cameraDataCenter = cameraDataCenter;
_runningDataCache = runningDataCache;
}
public async void RunServerAsync(int port)
{
if (_host == null)
{
if (_configModel == null)
_configModel = new WebApiConfigModel();
string url = "http://*:" + port;
_host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseUrls(url)
.UseStartup<WebApiStartup>()
.Build();
await _host.RunAsync();
}
}
public void ShutdownServer()
{
if (_host != null)
_host.Dispose();
//await _host.WaitForShutdownAsync();
}
}
}