CrazyIter_Bin 3 months ago
parent
commit
0177a086df

+ 131 - 0
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/Controllers/IndexController.cs

@@ -12,6 +12,8 @@ using IES.ExamServer.DI;
 using IES.ExamServer.Helpers;
 using IES.ExamServer.Helpers;
 using IES.ExamLibrary.Models;
 using IES.ExamLibrary.Models;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using Hardware.Info;
+using System.Net.NetworkInformation;
 
 
 namespace IES.ExamServer.Controllers
 namespace IES.ExamServer.Controllers
 {
 {
@@ -38,6 +40,135 @@ namespace IES.ExamServer.Controllers
             _connectionService=connectionService;
             _connectionService=connectionService;
             _liteDBFactory=liteDBFactory;
             _liteDBFactory=liteDBFactory;
         }
         }
+
+        [HttpGet("hardware")]
+        public IActionResult hardware() 
+        {
+             IHardwareInfo? hardwareInfo = null;
+            try
+            {
+                hardwareInfo = new HardwareInfo();
+                //hardwareInfo.RefreshOperatingSystem();
+                //.....
+                //刷新所有硬件信息
+                hardwareInfo.RefreshAll();
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex);
+            }
+
+
+            Console.WriteLine("输出操作系统信息" + Environment.NewLine);
+            Console.WriteLine(hardwareInfo.OperatingSystem);
+
+            Console.WriteLine("输出内存状态信息" + Environment.NewLine);
+            Console.WriteLine(hardwareInfo.MemoryStatus);
+
+            Console.WriteLine("输出电池信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.BatteryList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出 BIOS 信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.BiosList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出计算机系统信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.ComputerSystemList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出 CPU 信息" + Environment.NewLine);
+            foreach (var cpu in hardwareInfo.CpuList)
+            {
+                Console.WriteLine(cpu);
+
+                Console.WriteLine("输出 CPU 核心信息" + Environment.NewLine);
+                foreach (var cpuCore in cpu.CpuCoreList)
+                    Console.WriteLine(cpuCore);
+            }
+
+            Console.WriteLine("输出磁盘驱动器信息" + Environment.NewLine);
+            foreach (var drive in hardwareInfo.DriveList)
+            {
+                Console.WriteLine(drive);
+
+                Console.WriteLine("输出驱动器分区信息" + Environment.NewLine);
+                foreach (var partition in drive.PartitionList)
+                {
+                    Console.WriteLine(partition);
+
+                    Console.WriteLine("输出分区卷信息" + Environment.NewLine);
+                    foreach (var volume in partition.VolumeList)
+                        Console.WriteLine(volume);
+                }
+            }
+
+            Console.WriteLine("输出键盘信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.KeyboardList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出内存信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.MemoryList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出显示器信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.MonitorList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出主板信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.MotherboardList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出鼠标信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.MouseList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出网络适配器信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.NetworkAdapterList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出打印机信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.PrinterList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出声音设备信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.SoundDeviceList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出显卡信息" + Environment.NewLine);
+            foreach (var hardware in hardwareInfo.VideoControllerList)
+                Console.WriteLine(hardware);
+
+            Console.WriteLine("输出 Ethernet 类型并且状态为 Up 的本地 IPv4 地址" + Environment.NewLine);
+            foreach (var address in HardwareInfo.GetLocalIPv4Addresses(NetworkInterfaceType.Ethernet, OperationalStatus.Up))
+                Console.WriteLine(address);
+
+            Console.WriteLine();
+
+            Console.WriteLine("输出 Wireless80211 类型的本地 IPv4 地址" + Environment.NewLine);
+            foreach (var address in HardwareInfo.GetLocalIPv4Addresses(NetworkInterfaceType.Wireless80211))
+                Console.WriteLine(address);
+
+            Console.WriteLine();
+
+            Console.WriteLine("输出状态为 Up 的网络接口卡的本地 IPv4 地址" + Environment.NewLine);
+            foreach (var address in HardwareInfo.GetLocalIPv4Addresses(OperationalStatus.Up))
+                Console.WriteLine(address);
+
+            Console.WriteLine();
+
+            Console.WriteLine("输出所有网络接口卡的本地 IPv4 地址" + Environment.NewLine);
+            foreach (var address in HardwareInfo.GetLocalIPv4Addresses())
+                Console.WriteLine(address);
+
+            Console.WriteLine();
+
+            Console.WriteLine("输出计算机当前时间" + Environment.NewLine);
+            Console.WriteLine(DateTime.Now);
+            Console.WriteLine("输出系统启动时间" + Environment.NewLine);
+            Console.WriteLine(Environment.TickCount);
+            return Ok();
+        }
         /// <summary>
         /// <summary>
         /// 关闭当前进程的接口
         /// 关闭当前进程的接口
         /// </summary>
         /// </summary>

+ 11 - 1
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/Controllers/ManageController.cs

@@ -554,7 +554,17 @@ namespace IES.ExamServer.Controllers
                 return Ok(new { code = 1, msg = "未找到评测信息!" });
                 return Ok(new { code = 1, msg = "未找到评测信息!" });
             }
             }
         }
         }
-
+        /// <summary>
+        /// 设置评测开考信息(本轮名单,计时规则等)
+        /// </summary>
+        /// <param name="json"></param>
+        /// <returns></returns>
+        [HttpPost("assign-student-paper")]
+        [AuthToken("admin", "teacher", "visitor")]
+        public IActionResult AssignStudentPaper(JsonNode json) 
+        {
+            return Ok();
+        }
 
 
         /// <summary>
         /// <summary>
         /// 设置评测开考信息(本轮名单,计时规则等)
         /// 设置评测开考信息(本轮名单,计时规则等)

+ 1 - 1
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/Controllers/StudentController.cs

@@ -60,7 +60,7 @@ namespace IES.ExamServer.Controllers
                 setting = _liteDBFactory.GetLiteDatabase().GetCollection<EvaluationRoundSetting>().FindOne(x => x.id == evaluationClient.roundId);
                 setting = _liteDBFactory.GetLiteDatabase().GetCollection<EvaluationRoundSetting>().FindOne(x => x.id == evaluationClient.roundId);
                 if (setting!=null) 
                 if (setting!=null) 
                 {
                 {
-                    (code, msg)=  CheckActivate(evaluationClient);
+                    (code, msg)=  CheckActivate(evaluationClient, setting);
                     if (code==200)
                     if (code==200)
                     {
                     {
                         long time = DateTimeOffset.Now.ToUnixTimeMilliseconds();
                         long time = DateTimeOffset.Now.ToUnixTimeMilliseconds();

+ 0 - 33
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/Controllers/WeatherForecastController.cs

@@ -1,33 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-
-namespace IES.ExamServer.Server.Controllers
-{
-    [ApiController]
-    [Route("[controller]")]
-    public class WeatherForecastController : ControllerBase
-    {
-        private static readonly string[] Summaries = new[]
-        {
-            "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
-        };
-
-        private readonly ILogger<WeatherForecastController> _logger;
-
-        public WeatherForecastController(ILogger<WeatherForecastController> logger)
-        {
-            _logger = logger;
-        }
-
-        [HttpGet]
-        public IEnumerable<WeatherForecast> Get()
-        {
-            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
-            {
-                Date = DateTime.Now.AddDays(index),
-                TemperatureC = Random.Shared.Next(-20, 55),
-                Summary = Summaries[Random.Shared.Next(Summaries.Length)]
-            })
-            .ToArray();
-        }
-    }
-}

+ 1 - 1
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/IES.ExamServer.csproj

@@ -17,6 +17,7 @@
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup>
   <ItemGroup>
+	<PackageReference Include="Hardware.Info" Version="101.0.1" />
 	<PackageReference Include="LiteDB" Version="5.0.21" />
 	<PackageReference Include="LiteDB" Version="5.0.21" />
 	<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="6.0.36" />
 	<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="6.0.36" />
 	<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="6.0.36" />
 	<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="6.0.36" />
@@ -25,7 +26,6 @@
 	<PackageReference Include="SharpZipLib" Version="1.4.2" />
 	<PackageReference Include="SharpZipLib" Version="1.4.2" />
 	<PackageReference Include="SkiaSharp.QrCode" Version="0.7.0" />
 	<PackageReference Include="SkiaSharp.QrCode" Version="0.7.0" />
 	<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.3.0" />
 	<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.3.0" />
-	<PackageReference Include="System.Management" Version="6.0.2" />
     <PackageReference Include="Microsoft.AspNetCore.SpaProxy" Version="6.0.36" />
     <PackageReference Include="Microsoft.AspNetCore.SpaProxy" Version="6.0.36" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>

+ 0 - 3
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/Services/IndexService.cs

@@ -4,12 +4,9 @@ using System.Diagnostics;
 using System.Net.NetworkInformation;
 using System.Net.NetworkInformation;
 using System.Net;
 using System.Net;
 using System.Runtime.InteropServices;
 using System.Runtime.InteropServices;
-using System.Text.Json;
 using System.Text.Json.Nodes;
 using System.Text.Json.Nodes;
 using System.Text.RegularExpressions;
 using System.Text.RegularExpressions;
-using System.Management;
 using IES.ExamServer.Models;
 using IES.ExamServer.Models;
-using System.CodeDom.Compiler;
 using System.Text;
 using System.Text;
 
 
 namespace IES.ExamServer.Services
 namespace IES.ExamServer.Services

+ 0 - 13
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/WeatherForecast.cs

@@ -1,13 +0,0 @@
-namespace IES.ExamServer.Server
-{
-    public class WeatherForecast
-    {
-        public DateTime Date { get; set; }
-
-        public int TemperatureC { get; set; }
-
-        public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
-
-        public string? Summary { get; set; }
-    }
-}