diff --git a/Controllers/LibraryController.cs b/Controllers/LibraryController.cs new file mode 100644 index 0000000..a5d2e2c --- /dev/null +++ b/Controllers/LibraryController.cs @@ -0,0 +1,189 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.StaticFiles; +using System.Runtime.Versioning; +using System.Text.Json; +using System.Windows.Forms; + +namespace YD_TrainingCompetition_Api.Controllers; + +// LibraryController 支持桌面端"用资源管理器选取任意赛事文件夹": +// - scan:按约定子目录扫描所选文件夹,返回其中的背景/口令/LOGO/秩序册资源 +// - file:把磁盘上任意已存在的文件通过 http 提供给前端(图片/音频/秩序册) +[ApiController] +[Route("api/[controller]")] +public sealed class LibraryController : ControllerBase +{ + private static readonly string[] BackgroundDirs = { "背景", "背景图" }; + private static readonly string[] PasswordDirs = { "口令" }; + private static readonly string[] LogoDirs = { "赛事LOGO", "赛事logo" }; + private static readonly string[] RosterDirs = { "秩序册" }; + + private static readonly HashSet ImageExt = new(StringComparer.OrdinalIgnoreCase) + { ".jpg", ".jpeg", ".png", ".webp", ".gif", ".bmp", ".svg" }; + private static readonly HashSet RosterExt = new(StringComparer.OrdinalIgnoreCase) + { ".txt", ".csv", ".xlsx", ".xls" }; + private static readonly HashSet PasswordExt = new(StringComparer.OrdinalIgnoreCase) + { ".mp3" }; + + private static readonly FileExtensionContentTypeProvider ContentTypeProvider = new(); + + // 在本机弹出系统文件夹选择对话框(供浏览器开发环境使用;桌面端优先走 Electron)。 + [HttpPost("pick-folder")] + [SupportedOSPlatform("windows")] + public IActionResult PickFolder() + { + string? selectedPath = null; + + var thread = new Thread(() => + { + using var dialog = new FolderBrowserDialog + { + Description = "选择赛事文件夹", + UseDescriptionForTitle = true, + ShowNewFolderButton = false, + }; + + if (dialog.ShowDialog() == DialogResult.OK) + { + selectedPath = dialog.SelectedPath; + } + }); + thread.SetApartmentState(ApartmentState.STA); + thread.Start(); + thread.Join(); + + if (string.IsNullOrWhiteSpace(selectedPath)) + { + return Ok(new { canceled = true, path = (string?)null }); + } + + return Ok(new { canceled = false, path = selectedPath }); + } + + // 扫描用户选取的赛事文件夹,结构与原 static/manifest.json 中单个赛事一致。 + [HttpGet("scan")] + public IActionResult Scan([FromQuery] string path) + { + if (string.IsNullOrWhiteSpace(path)) + { + return BadRequest(new { message = "缺少文件夹路径" }); + } + + var folderPath = path.Trim(); + if (!Directory.Exists(folderPath)) + { + return NotFound(new { message = $"文件夹不存在:{folderPath}" }); + } + + var folder = new DirectoryInfo(folderPath).Name; + var displayName = ReadDisplayName(folderPath) ?? folder; + + var result = new + { + id = folderPath, + name = displayName, + folder, + folderPath, + backgrounds = ListFiles(folderPath, BackgroundDirs, ImageExt), + passwords = ListFiles(folderPath, PasswordDirs, PasswordExt), + logos = ListFiles(folderPath, LogoDirs, ImageExt), + rosters = ListFiles(folderPath, RosterDirs, RosterExt), + }; + + return Ok(result); + } + + // 提供磁盘上任意已存在文件(仅限本机桌面端调用)。支持音视频拖动定位。 + [HttpGet("file")] + public IActionResult GetFile([FromQuery] string path) + { + if (string.IsNullOrWhiteSpace(path)) + { + return BadRequest(new { message = "缺少文件路径" }); + } + + var filePath = path.Trim(); + if (!System.IO.File.Exists(filePath)) + { + return NotFound(new { message = $"文件不存在:{filePath}" }); + } + + if (!ContentTypeProvider.TryGetContentType(filePath, out var contentType)) + { + contentType = "application/octet-stream"; + } + + return PhysicalFile(filePath, contentType, enableRangeProcessing: true); + } + + private List ListFiles(string folderPath, string[] subDirCandidates, HashSet allowedExt) + { + var subDir = ResolveSubDir(folderPath, subDirCandidates); + var dir = Path.Combine(folderPath, subDir); + if (!Directory.Exists(dir)) + { + return new List(); + } + + return Directory + .EnumerateFiles(dir) + .Where(file => + { + var name = Path.GetFileName(file); + return !name.StartsWith("~$", StringComparison.Ordinal) + && allowedExt.Contains(Path.GetExtension(file)); + }) + .OrderBy(file => Path.GetFileName(file), StringComparer.CurrentCulture) + .Select(file => (object)new + { + file = Path.GetFileName(file), + path = BuildFileUrl(file), + }) + .ToList(); + } + + private static string ResolveSubDir(string folderPath, string[] candidates) + { + foreach (var name in candidates) + { + if (Directory.Exists(Path.Combine(folderPath, name))) + { + return name; + } + } + + return candidates[0]; + } + + // 返回前端可直接请求的绝对地址,避免 resolveStaticUrl 误编码查询串。 + private string BuildFileUrl(string absolutePath) + { + var encoded = Uri.EscapeDataString(absolutePath); + return $"{Request.Scheme}://{Request.Host}/api/library/file?path={encoded}"; + } + + private static string? ReadDisplayName(string folderPath) + { + var metaPath = Path.Combine(folderPath, "event.json"); + if (!System.IO.File.Exists(metaPath)) + { + return null; + } + + try + { + using var doc = JsonDocument.Parse(System.IO.File.ReadAllText(metaPath)); + if (doc.RootElement.TryGetProperty("displayName", out var prop) + && prop.ValueKind == JsonValueKind.String) + { + return prop.GetString(); + } + } + catch + { + // 忽略损坏的 event.json + } + + return null; + } +} diff --git a/Program.cs b/Program.cs index 2898077..314a363 100644 --- a/Program.cs +++ b/Program.cs @@ -50,10 +50,28 @@ if (app.Environment.IsDevelopment()) app.UseSwaggerUI(); } +// 提供打包后内置的前端静态资源(桌面端通过 http 加载,避免 file:// 下 fetch/绝对路径失效)。 +// 使用可执行文件同级的 wwwroot 绝对路径,避免内容根/工作目录差异导致静态资源 404。 +var webRootPath = Path.Combine(AppContext.BaseDirectory, "wwwroot"); +var hasBundledFrontend = Directory.Exists(webRootPath); +Microsoft.Extensions.FileProviders.PhysicalFileProvider? frontendFileProvider = null; +if (hasBundledFrontend) +{ + frontendFileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(webRootPath); + app.UseDefaultFiles(new DefaultFilesOptions { FileProvider = frontendFileProvider }); + app.UseStaticFiles(new StaticFileOptions { FileProvider = frontendFileProvider }); +} + app.UseRouting(); app.UseCors(); app.MapControllers(); app.MapHub("/hubs/scoring"); +// 单页应用兜底:非 API/Hub 路由回退到 index.html(仅当存在内置前端时生效)。 +if (hasBundledFrontend && frontendFileProvider is not null) +{ + app.MapFallbackToFile("index.html", new StaticFileOptions { FileProvider = frontendFileProvider }); +} + app.Run(); diff --git a/YD_TrainingCompetition_Api.csproj b/YD_TrainingCompetition_Api.csproj index bb62af7..0df72da 100644 --- a/YD_TrainingCompetition_Api.csproj +++ b/YD_TrainingCompetition_Api.csproj @@ -1,9 +1,10 @@  - net8.0 + net8.0-windows enable enable + true diff --git a/bin/Debug/net8.0/YD_TrainingCompetition_Api.dll b/bin/Debug/net8.0/YD_TrainingCompetition_Api.dll index 058e2be..ad3ca0a 100644 Binary files a/bin/Debug/net8.0/YD_TrainingCompetition_Api.dll and b/bin/Debug/net8.0/YD_TrainingCompetition_Api.dll differ diff --git a/bin/Debug/net8.0/YD_TrainingCompetition_Api.exe b/bin/Debug/net8.0/YD_TrainingCompetition_Api.exe index f15a5f9..41f9b3a 100644 Binary files a/bin/Debug/net8.0/YD_TrainingCompetition_Api.exe and b/bin/Debug/net8.0/YD_TrainingCompetition_Api.exe differ diff --git a/bin/Debug/net8.0/YD_TrainingCompetition_Api.pdb b/bin/Debug/net8.0/YD_TrainingCompetition_Api.pdb index c2dcfc7..e1ffdae 100644 Binary files a/bin/Debug/net8.0/YD_TrainingCompetition_Api.pdb and b/bin/Debug/net8.0/YD_TrainingCompetition_Api.pdb differ diff --git a/bin/Debug/net8.0/data/device_snapshot.json b/bin/Debug/net8.0/data/device_snapshot.json index ca70f39..ab2e45a 100644 --- a/bin/Debug/net8.0/data/device_snapshot.json +++ b/bin/Debug/net8.0/data/device_snapshot.json @@ -1 +1 @@ -[{"deviceId":"0","counter":0,"bsName":"NO-0","athleteName":"\u674E\u80DC\u5E2D","school":null,"errorCount":null,"battery":40,"mode":2,"remainingSeconds":5,"rssi":null,"gatewayId":"serial-2.4g","timestamp":"2026-06-10T07:50:31.7658274+00:00","ingestedAt":"2026-06-10T07:50:31.7658274+00:00"},{"deviceId":"1","counter":6,"bsName":"NO-1","athleteName":"\u8D75\u5176\u4E09","school":null,"errorCount":null,"battery":4,"mode":2,"remainingSeconds":5,"rssi":null,"gatewayId":"serial-2.4g","timestamp":"2026-06-10T07:50:31.7118198+00:00","ingestedAt":"2026-06-10T07:50:31.7118199+00:00"}] \ No newline at end of file +[{"deviceId":"1","counter":17,"bsName":"NO-1","athleteName":"\u8D75\u5176\u4E09","school":null,"errorCount":null,"battery":4,"mode":2,"remainingSeconds":5,"rssi":null,"gatewayId":"serial-2.4g","timestamp":"2026-06-10T07:54:30.4008994+00:00","ingestedAt":"2026-06-10T07:54:30.4008995+00:00"},{"deviceId":"0","counter":0,"bsName":"NO-0","athleteName":"\u674E\u80DC\u5E2D","school":null,"errorCount":null,"battery":40,"mode":2,"remainingSeconds":5,"rssi":null,"gatewayId":"serial-2.4g","timestamp":"2026-06-10T07:54:30.3829874+00:00","ingestedAt":"2026-06-10T07:54:30.3829875+00:00"}] \ No newline at end of file diff --git a/obj/Debug/net8.0/ApiEndpoints.json b/obj/Debug/net8.0/ApiEndpoints.json index 802e538..ac9a3a4 100644 --- a/obj/Debug/net8.0/ApiEndpoints.json +++ b/obj/Debug/net8.0/ApiEndpoints.json @@ -1,4 +1,148 @@ [ + { + "ContainingType": "YD_TrainingCompetition_Api.Controllers.CompetitionController", + "Method": "SetCount", + "RelativePath": "api/Competition/participants/{participantId}/count", + "HttpMethod": "POST", + "IsController": true, + "Order": 0, + "Parameters": [ + { + "Name": "participantId", + "Type": "System.Int32", + "IsRequired": true + }, + { + "Name": "request", + "Type": "YD_TrainingCompetition_Api.Competition.CompetitionParticipantCountRequest", + "IsRequired": true + } + ], + "ReturnTypes": [] + }, + { + "ContainingType": "YD_TrainingCompetition_Api.Controllers.CompetitionController", + "Method": "ChangeCount", + "RelativePath": "api/Competition/participants/{participantId}/delta", + "HttpMethod": "POST", + "IsController": true, + "Order": 0, + "Parameters": [ + { + "Name": "participantId", + "Type": "System.Int32", + "IsRequired": true + }, + { + "Name": "request", + "Type": "YD_TrainingCompetition_Api.Competition.CompetitionParticipantDeltaRequest", + "IsRequired": true + } + ], + "ReturnTypes": [] + }, + { + "ContainingType": "YD_TrainingCompetition_Api.Controllers.CompetitionController", + "Method": "SelectRound", + "RelativePath": "api/Competition/rounds/{roundIndex}/select", + "HttpMethod": "POST", + "IsController": true, + "Order": 0, + "Parameters": [ + { + "Name": "roundIndex", + "Type": "System.Int32", + "IsRequired": true + } + ], + "ReturnTypes": [] + }, + { + "ContainingType": "YD_TrainingCompetition_Api.Controllers.CompetitionController", + "Method": "DownloadCurrentRound", + "RelativePath": "api/Competition/rounds/current/download", + "HttpMethod": "POST", + "IsController": true, + "Order": 0, + "Parameters": [], + "ReturnTypes": [] + }, + { + "ContainingType": "YD_TrainingCompetition_Api.Controllers.CompetitionController", + "Method": "NextRound", + "RelativePath": "api/Competition/rounds/next", + "HttpMethod": "POST", + "IsController": true, + "Order": 0, + "Parameters": [], + "ReturnTypes": [] + }, + { + "ContainingType": "YD_TrainingCompetition_Api.Controllers.CompetitionController", + "Method": "PreviousRound", + "RelativePath": "api/Competition/rounds/previous", + "HttpMethod": "POST", + "IsController": true, + "Order": 0, + "Parameters": [], + "ReturnTypes": [] + }, + { + "ContainingType": "YD_TrainingCompetition_Api.Controllers.CompetitionController", + "Method": "GetSession", + "RelativePath": "api/Competition/session", + "HttpMethod": "GET", + "IsController": true, + "Order": 0, + "Parameters": [], + "ReturnTypes": [] + }, + { + "ContainingType": "YD_TrainingCompetition_Api.Controllers.CompetitionController", + "Method": "CreateSession", + "RelativePath": "api/Competition/session", + "HttpMethod": "POST", + "IsController": true, + "Order": 0, + "Parameters": [ + { + "Name": "request", + "Type": "YD_TrainingCompetition_Api.Competition.CreateCompetitionSessionRequest", + "IsRequired": true + } + ], + "ReturnTypes": [] + }, + { + "ContainingType": "YD_TrainingCompetition_Api.Controllers.CompetitionController", + "Method": "Reset", + "RelativePath": "api/Competition/test/reset", + "HttpMethod": "POST", + "IsController": true, + "Order": 0, + "Parameters": [], + "ReturnTypes": [] + }, + { + "ContainingType": "YD_TrainingCompetition_Api.Controllers.CompetitionController", + "Method": "Start", + "RelativePath": "api/Competition/test/start", + "HttpMethod": "POST", + "IsController": true, + "Order": 0, + "Parameters": [], + "ReturnTypes": [] + }, + { + "ContainingType": "YD_TrainingCompetition_Api.Controllers.CompetitionController", + "Method": "Stop", + "RelativePath": "api/Competition/test/stop", + "HttpMethod": "POST", + "IsController": true, + "Order": 0, + "Parameters": [], + "ReturnTypes": [] + }, { "ContainingType": "YD_TrainingCompetition_Api.Controllers.DevicesController", "Method": "GetAll", diff --git a/obj/Debug/net8.0/EndpointInfo/YD_TrainingCompetition_Api.json b/obj/Debug/net8.0/EndpointInfo/YD_TrainingCompetition_Api.json index b31bdae..93a9caa 100644 --- a/obj/Debug/net8.0/EndpointInfo/YD_TrainingCompetition_Api.json +++ b/obj/Debug/net8.0/EndpointInfo/YD_TrainingCompetition_Api.json @@ -5,6 +5,226 @@ "version": "1.0" }, "paths": { + "/api/Competition/session": { + "get": { + "tags": [ + "Competition" + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "post": { + "tags": [ + "Competition" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateCompetitionSessionRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CreateCompetitionSessionRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CreateCompetitionSessionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Competition/rounds/{roundIndex}/select": { + "post": { + "tags": [ + "Competition" + ], + "parameters": [ + { + "name": "roundIndex", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Competition/rounds/next": { + "post": { + "tags": [ + "Competition" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Competition/rounds/previous": { + "post": { + "tags": [ + "Competition" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Competition/rounds/current/download": { + "post": { + "tags": [ + "Competition" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Competition/test/start": { + "post": { + "tags": [ + "Competition" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Competition/test/stop": { + "post": { + "tags": [ + "Competition" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Competition/test/reset": { + "post": { + "tags": [ + "Competition" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Competition/participants/{participantId}/count": { + "post": { + "tags": [ + "Competition" + ], + "parameters": [ + { + "name": "participantId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CompetitionParticipantCountRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CompetitionParticipantCountRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CompetitionParticipantCountRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Competition/participants/{participantId}/delta": { + "post": { + "tags": [ + "Competition" + ], + "parameters": [ + { + "name": "participantId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CompetitionParticipantDeltaRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CompetitionParticipantDeltaRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CompetitionParticipantDeltaRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, "/api/Devices": { "get": { "tags": [ @@ -197,6 +417,122 @@ }, "components": { "schemas": { + "CompetitionParticipantCountRequest": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "CompetitionParticipantDeltaRequest": { + "type": "object", + "properties": { + "delta": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "CreateCompetitionParticipantRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "projectName": { + "type": "string", + "nullable": true + }, + "school": { + "type": "string", + "nullable": true + }, + "deviceId": { + "type": "string", + "nullable": true + }, + "rfid": { + "type": "string", + "nullable": true + }, + "roundIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "slotIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "count": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "CreateCompetitionSessionRequest": { + "type": "object", + "properties": { + "eventId": { + "type": "string", + "nullable": true + }, + "eventName": { + "type": "string", + "nullable": true + }, + "rosterPath": { + "type": "string", + "nullable": true + }, + "totalRounds": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "testDurationSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "roundParticipantCounts": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "roundNames": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "participants": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CreateCompetitionParticipantRequest" + }, + "nullable": true + } + }, + "additionalProperties": false + }, "DeviceTelemetry": { "type": "object", "properties": { @@ -230,6 +566,16 @@ "format": "int32", "nullable": true }, + "mode": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "remainingSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + }, "rssi": { "type": "integer", "format": "int32", diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.AssemblyInfo.cs b/obj/Debug/net8.0/YD_TrainingCompetition_Api.AssemblyInfo.cs index a731bfd..8d3e8f6 100644 --- a/obj/Debug/net8.0/YD_TrainingCompetition_Api.AssemblyInfo.cs +++ b/obj/Debug/net8.0/YD_TrainingCompetition_Api.AssemblyInfo.cs @@ -1,9 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ @@ -13,10 +14,10 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("YD_TrainingCompetition_Api")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+4b988e5083e74ec8d073bacb5ba12fbfd380a6d9")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+02ace709370fb1ff1b73f85e53dd1bf5454a0baf")] [assembly: System.Reflection.AssemblyProductAttribute("YD_TrainingCompetition_Api")] [assembly: System.Reflection.AssemblyTitleAttribute("YD_TrainingCompetition_Api")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] -// Generated by the MSBuild WriteCodeFragment class. +// 由 MSBuild WriteCodeFragment 类生成。 diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.AssemblyInfoInputs.cache b/obj/Debug/net8.0/YD_TrainingCompetition_Api.AssemblyInfoInputs.cache index 3e42755..20d95df 100644 --- a/obj/Debug/net8.0/YD_TrainingCompetition_Api.AssemblyInfoInputs.cache +++ b/obj/Debug/net8.0/YD_TrainingCompetition_Api.AssemblyInfoInputs.cache @@ -1 +1 @@ -2c0084134aafe744368ccfd3fc9f06ffc2c91a4f524dfd4275171a9220e15a37 +13b99b04233ec26b73a823514c11878270a50969af3bfe348cac5bd51a621eab diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.GeneratedMSBuildEditorConfig.editorconfig b/obj/Debug/net8.0/YD_TrainingCompetition_Api.GeneratedMSBuildEditorConfig.editorconfig index 5eeb989..c027a3d 100644 --- a/obj/Debug/net8.0/YD_TrainingCompetition_Api.GeneratedMSBuildEditorConfig.editorconfig +++ b/obj/Debug/net8.0/YD_TrainingCompetition_Api.GeneratedMSBuildEditorConfig.editorconfig @@ -1,4 +1,10 @@ is_global = true +build_property.ApplicationManifest = +build_property.StartupObject = +build_property.ApplicationDefaultFont = +build_property.ApplicationHighDpiMode = +build_property.ApplicationUseCompatibleTextRendering = +build_property.ApplicationVisualStyles = build_property.TargetFramework = net8.0 build_property.TargetFrameworkIdentifier = .NETCoreApp build_property.TargetFrameworkVersion = v8.0 @@ -8,17 +14,16 @@ build_property.ProjectTypeGuids = build_property.InvariantGlobalization = build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = -build_property.EntryPointFilePath = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = YD_TrainingCompetition_Api build_property.RootNamespace = YD_TrainingCompetition_Api -build_property.ProjectDir = C:\Users\tangl\Desktop\Git\YD_TrainingCompetition_Api\ +build_property.ProjectDir = c:\Project\赛事\YD_TrainingCompetition_Api\ build_property.EnableComHosting = build_property.EnableGeneratedComInterfaceComImportInterop = build_property.RazorLangVersion = 8.0 build_property.SupportLocalizedComponentNames = build_property.GenerateRazorMetadataSourceChecksumAttributes = -build_property.MSBuildProjectDirectory = C:\Users\tangl\Desktop\Git\YD_TrainingCompetition_Api +build_property.MSBuildProjectDirectory = c:\Project\赛事\YD_TrainingCompetition_Api build_property._RazorSourceGeneratorDebug = build_property.EffectiveAnalysisLevelStyle = 8.0 build_property.EnableCodeStyleSeverity = diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.GlobalUsings.g.cs b/obj/Debug/net8.0/YD_TrainingCompetition_Api.GlobalUsings.g.cs index 5e6145d..fed673a 100644 --- a/obj/Debug/net8.0/YD_TrainingCompetition_Api.GlobalUsings.g.cs +++ b/obj/Debug/net8.0/YD_TrainingCompetition_Api.GlobalUsings.g.cs @@ -9,9 +9,11 @@ global using Microsoft.Extensions.Hosting; global using Microsoft.Extensions.Logging; global using System; global using System.Collections.Generic; +global using System.Drawing; global using System.IO; global using System.Linq; global using System.Net.Http; global using System.Net.Http.Json; global using System.Threading; global using System.Threading.Tasks; +global using System.Windows.Forms; diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.MvcApplicationPartsAssemblyInfo.cs b/obj/Debug/net8.0/YD_TrainingCompetition_Api.MvcApplicationPartsAssemblyInfo.cs index 5e89e56..e75f8e1 100644 --- a/obj/Debug/net8.0/YD_TrainingCompetition_Api.MvcApplicationPartsAssemblyInfo.cs +++ b/obj/Debug/net8.0/YD_TrainingCompetition_Api.MvcApplicationPartsAssemblyInfo.cs @@ -14,5 +14,5 @@ using System.Reflection; [assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Microsoft.AspNetCore.OpenApi")] [assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Swashbuckle.AspNetCore.SwaggerGen")] -// Generated by the MSBuild WriteCodeFragment class. +// 由 MSBuild WriteCodeFragment 类生成。 diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.assets.cache b/obj/Debug/net8.0/YD_TrainingCompetition_Api.assets.cache index d5ac6f3..5426ea0 100644 Binary files a/obj/Debug/net8.0/YD_TrainingCompetition_Api.assets.cache and b/obj/Debug/net8.0/YD_TrainingCompetition_Api.assets.cache differ diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.AssemblyReference.cache b/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.AssemblyReference.cache index 03d4636..1364db3 100644 Binary files a/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.AssemblyReference.cache and b/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.AssemblyReference.cache differ diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.CoreCompileInputs.cache b/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.CoreCompileInputs.cache index cbe7171..d609f04 100644 --- a/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.CoreCompileInputs.cache +++ b/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -bf6d5d4b9e555a7c41a193809454f3d2c724fe7406f356106eaf0b2cd2e18dd8 +01ecfb21737675c7f10acbae1c2df898e232d2572b54ce5b3c99396a1260a63f diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.FileListAbsolute.txt b/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.FileListAbsolute.txt index b9551a3..5fe11cd 100644 --- a/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.FileListAbsolute.txt +++ b/obj/Debug/net8.0/YD_TrainingCompetition_Api.csproj.FileListAbsolute.txt @@ -73,3 +73,59 @@ C:\Users\tangl\AppData\Local\Temp\yd-trainingcompetition-debug\YD_TrainingCompet C:\Users\tangl\AppData\Local\Temp\yd-trainingcompetition-debug\YD_TrainingCompetition_Api.runtimeconfig.json C:\Users\tangl\AppData\Local\Temp\yd-trainingcompetition-debug\YD_TrainingCompetition_Api.dll C:\Users\tangl\AppData\Local\Temp\yd-trainingcompetition-debug\YD_TrainingCompetition_Api.pdb +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\appsettings.Development.json +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\appsettings.json +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\data\device_snapshot.json +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\frontend\package.json +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\YD_TrainingCompetition_Api.staticwebassets.endpoints.json +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\YD_TrainingCompetition_Api.exe +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\YD_TrainingCompetition_Api.deps.json +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\YD_TrainingCompetition_Api.runtimeconfig.json +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\YD_TrainingCompetition_Api.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\YD_TrainingCompetition_Api.pdb +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\ClosedXML.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\ClosedXML.Parser.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\DocumentFormat.OpenXml.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\DocumentFormat.OpenXml.Framework.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\ExcelNumberFormat.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\Microsoft.AspNetCore.OpenApi.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\Microsoft.OpenApi.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\MQTTnet.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\RBush.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\SixLabors.Fonts.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\Swashbuckle.AspNetCore.Swagger.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\Swashbuckle.AspNetCore.SwaggerGen.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\Swashbuckle.AspNetCore.SwaggerUI.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\System.IO.Packaging.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\System.IO.Ports.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\runtimes\linux-arm\native\libSystem.IO.Ports.Native.so +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\runtimes\linux-arm64\native\libSystem.IO.Ports.Native.so +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\runtimes\linux-x64\native\libSystem.IO.Ports.Native.so +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\runtimes\osx-arm64\native\libSystem.IO.Ports.Native.dylib +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\runtimes\osx-x64\native\libSystem.IO.Ports.Native.dylib +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\runtimes\unix\lib\net8.0\System.IO.Ports.dll +C:\Project\赛事\YD_TrainingCompetition_Api\bin\Debug\net8.0\runtimes\win\lib\net8.0\System.IO.Ports.dll +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\YD_TrainingCompetition_Api.csproj.AssemblyReference.cache +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\rpswa.dswa.cache.json +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\YD_TrainingCompetition_Api.GeneratedMSBuildEditorConfig.editorconfig +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\YD_TrainingCompetition_Api.AssemblyInfoInputs.cache +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\YD_TrainingCompetition_Api.AssemblyInfo.cs +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\YD_TrainingCompetition_Api.csproj.CoreCompileInputs.cache +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\YD_TrainingCompetition_Api.MvcApplicationPartsAssemblyInfo.cs +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\YD_TrainingCompetition_Api.MvcApplicationPartsAssemblyInfo.cache +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\rjimswa.dswa.cache.json +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\rjsmrazor.dswa.cache.json +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\rjsmcshtml.dswa.cache.json +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\scopedcss\bundle\YD_TrainingCompetition_Api.styles.css +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\staticwebassets.build.json +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\staticwebassets.build.json.cache +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\staticwebassets.development.json +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\staticwebassets.build.endpoints.json +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\swae.build.ex.cache +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\staticwebassets.upToDateCheck.txt +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\YD_Train.D1237001.Up2Date +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\YD_TrainingCompetition_Api.dll +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\refint\YD_TrainingCompetition_Api.dll +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\YD_TrainingCompetition_Api.pdb +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\YD_TrainingCompetition_Api.genruntimeconfig.cache +C:\Project\赛事\YD_TrainingCompetition_Api\obj\Debug\net8.0\ref\YD_TrainingCompetition_Api.dll diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.dll b/obj/Debug/net8.0/YD_TrainingCompetition_Api.dll index 058e2be..ad3ca0a 100644 Binary files a/obj/Debug/net8.0/YD_TrainingCompetition_Api.dll and b/obj/Debug/net8.0/YD_TrainingCompetition_Api.dll differ diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.genruntimeconfig.cache b/obj/Debug/net8.0/YD_TrainingCompetition_Api.genruntimeconfig.cache index 701dddf..8c739d7 100644 --- a/obj/Debug/net8.0/YD_TrainingCompetition_Api.genruntimeconfig.cache +++ b/obj/Debug/net8.0/YD_TrainingCompetition_Api.genruntimeconfig.cache @@ -1 +1 @@ -c41e55300b66fcab1eb3bc0ccac343eeb66dd3e2fc6fb5e2d4cc9fc8eb2ec044 +c659ae5135c19ede357ea68eca33fdb1a93dbbe14f3395f1dae162cc53ad96d1 diff --git a/obj/Debug/net8.0/YD_TrainingCompetition_Api.pdb b/obj/Debug/net8.0/YD_TrainingCompetition_Api.pdb index c2dcfc7..e1ffdae 100644 Binary files a/obj/Debug/net8.0/YD_TrainingCompetition_Api.pdb and b/obj/Debug/net8.0/YD_TrainingCompetition_Api.pdb differ diff --git a/obj/Debug/net8.0/apphost.exe b/obj/Debug/net8.0/apphost.exe index f15a5f9..41f9b3a 100644 Binary files a/obj/Debug/net8.0/apphost.exe and b/obj/Debug/net8.0/apphost.exe differ diff --git a/obj/Debug/net8.0/ref/YD_TrainingCompetition_Api.dll b/obj/Debug/net8.0/ref/YD_TrainingCompetition_Api.dll index c3feece..da09e95 100644 Binary files a/obj/Debug/net8.0/ref/YD_TrainingCompetition_Api.dll and b/obj/Debug/net8.0/ref/YD_TrainingCompetition_Api.dll differ diff --git a/obj/Debug/net8.0/refint/YD_TrainingCompetition_Api.dll b/obj/Debug/net8.0/refint/YD_TrainingCompetition_Api.dll index c3feece..da09e95 100644 Binary files a/obj/Debug/net8.0/refint/YD_TrainingCompetition_Api.dll and b/obj/Debug/net8.0/refint/YD_TrainingCompetition_Api.dll differ diff --git a/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json b/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json index 51f5058..4d7657c 100644 --- a/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json +++ b/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json @@ -1 +1 @@ -{"GlobalPropertiesHash":"7v98JcpqvwqzU/QYAD3Y/R6J1Dq1dvIOvOonPJSAY/o=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["sBoAyRclr1CKC92HfAAtFvUqZh22blS8EwztX85/jzI=","lRP663q1jWxdZdYOmc2wjTzW2wzkjrV5K5AQF5Nczjg=","ahm7KLt9SKzurzovfwEINdpL8xMpazEyMYfPKSIbwRw=","EpC0gkO6Bi4kHPlV6/6ePHAWwYV4C\u002Bk6T9APzUmK8dc=","W0TNs8Unj/yFC0Eq11RwkveQBppb3KbVVnD\u002Bd/hX2bQ=","zILSqi0oYMh5X9VoIeYYDiPBckO6C\u002Bj1cMqb/TkAk\u002BQ=","l8cBdSBEbCbYAUGdFTokP7VuqNI\u002BtXOMcBODhiY1tp0=","3/m3nre\u002B7Rua1XUsC78YML707ZbeP6OhiU/\u002Bw2mgx9A=","kfJ1taNoHoc7P7IIQ5QPm3dKkPRIznH7EqgWCQpXDfc=","unJ923zHDemMYZAg2x0ltyX/HFXM2DenFpoQdJU\u002BeFc=","fVVCo2Nzv\u002BTHdMhFRq9E9Tjo\u002BLI45VnhzaX74Lpc5VY=","mjfPHVkVMOF8u6j01bMimYhwBaJWGZ1ZzB8gfEE0wAU=","FQ0Lk7BgmdPS57YopNh8qe8949sfU5\u002BooYA3wxVRvNU=","joE75\u002BLOnsuvO6IkmxPOZn/NconBwBtNz0g33B0jkCk=","hA9l\u002BAXzudQCc7r51qnxeg1z5knXWHAhlNsu0Y/9UyE=","JrlnwC8RRhGg4QYubrLSZObL/8WAjhhtpKmfA6hn4L8="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file +{"GlobalPropertiesHash":"XcfqPWLJuXlMEXoPeI7MtnSga/ETvFsVqy18XHnSVdw=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["f81qd3adk1gl4Al2inzRV1Mz6IVbJ6tCB3\u002BdgXe2LVM=","J1KdIVD5o3FNrX\u002B7s6wuDJNmMSXt1FgBbu38p5K8ums=","FSeHV291f1geMhXpr6cY8CushW6/jmG/8iV8QzDDz6Y=","ydGBWL6K4qlPJcMwQmEtbZ3boJpF6e9plvE0JfHa6aM=","jAYcqOJ9orzI7afkTLqGvDt041KcWrF\u002BsiOU6Nwm6wI=","0eb89c3amkS1MHT9yE\u002BObdtyc64gshJJBeUtmTdvb/Q=","IkT0Axk9lz7NpQszbMvQh9eQaxuwWk9s7QWxDgqYJgI=","uXnS2JOJlvtgq8JKzQoL\u002BUIbGfKwSe8jOOTbymVdzY0=","RbB9PEYNumCNN9l3eVOQ2k3447dezVg\u002Bgv12yEuBJSE=","hKbmaIIRKyW\u002BbyRpL9NTfKA49tOu64ewoWesv/Wz3TA=","X2ljK\u002Biq2gyeWGgWDUFY/0pP1ZpcWjZOiziot8NgI3w=","EoSjB1ziYOAYuPE/mqgBFS6xxGH9nBu7IU2SdnbWce0=","76eWiuTj\u002BCpP2T\u002BsnYYRtzAJnnrMJ6Vcr\u002BTuhLlLlaw=","iKhweurUFlqa7RcRWXb3CYjtz6ethl1ToC6uOeSN4sQ=","6B4\u002BNl\u002BNuepYkvZKDEbMdOZ0jbBZbkbPm/5IPvkMMkQ=","LLCFOrGdnyDuZsNmUeKyceUHSoM9FDEkZk2DzG5Uy24="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file diff --git a/obj/Debug/net8.0/rjsmrazor.dswa.cache.json b/obj/Debug/net8.0/rjsmrazor.dswa.cache.json index 0cf6fac..dd3b2f3 100644 --- a/obj/Debug/net8.0/rjsmrazor.dswa.cache.json +++ b/obj/Debug/net8.0/rjsmrazor.dswa.cache.json @@ -1 +1 @@ -{"GlobalPropertiesHash":"9PKPvLIb7x7yMaeY1PINOf+9jQkrdIjPkSe6ctIZ1Zs=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["sBoAyRclr1CKC92HfAAtFvUqZh22blS8EwztX85/jzI=","lRP663q1jWxdZdYOmc2wjTzW2wzkjrV5K5AQF5Nczjg=","ahm7KLt9SKzurzovfwEINdpL8xMpazEyMYfPKSIbwRw=","EpC0gkO6Bi4kHPlV6/6ePHAWwYV4C\u002Bk6T9APzUmK8dc=","W0TNs8Unj/yFC0Eq11RwkveQBppb3KbVVnD\u002Bd/hX2bQ=","zILSqi0oYMh5X9VoIeYYDiPBckO6C\u002Bj1cMqb/TkAk\u002BQ=","l8cBdSBEbCbYAUGdFTokP7VuqNI\u002BtXOMcBODhiY1tp0=","3/m3nre\u002B7Rua1XUsC78YML707ZbeP6OhiU/\u002Bw2mgx9A=","kfJ1taNoHoc7P7IIQ5QPm3dKkPRIznH7EqgWCQpXDfc=","unJ923zHDemMYZAg2x0ltyX/HFXM2DenFpoQdJU\u002BeFc=","fVVCo2Nzv\u002BTHdMhFRq9E9Tjo\u002BLI45VnhzaX74Lpc5VY=","mjfPHVkVMOF8u6j01bMimYhwBaJWGZ1ZzB8gfEE0wAU=","FQ0Lk7BgmdPS57YopNh8qe8949sfU5\u002BooYA3wxVRvNU=","joE75\u002BLOnsuvO6IkmxPOZn/NconBwBtNz0g33B0jkCk=","hA9l\u002BAXzudQCc7r51qnxeg1z5knXWHAhlNsu0Y/9UyE=","JrlnwC8RRhGg4QYubrLSZObL/8WAjhhtpKmfA6hn4L8="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file +{"GlobalPropertiesHash":"0eWcQ4VcOiXvf/8f+9XA63mtnKhbu57YakrtBHnJEA4=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["f81qd3adk1gl4Al2inzRV1Mz6IVbJ6tCB3\u002BdgXe2LVM=","J1KdIVD5o3FNrX\u002B7s6wuDJNmMSXt1FgBbu38p5K8ums=","FSeHV291f1geMhXpr6cY8CushW6/jmG/8iV8QzDDz6Y=","ydGBWL6K4qlPJcMwQmEtbZ3boJpF6e9plvE0JfHa6aM=","jAYcqOJ9orzI7afkTLqGvDt041KcWrF\u002BsiOU6Nwm6wI=","0eb89c3amkS1MHT9yE\u002BObdtyc64gshJJBeUtmTdvb/Q=","IkT0Axk9lz7NpQszbMvQh9eQaxuwWk9s7QWxDgqYJgI=","uXnS2JOJlvtgq8JKzQoL\u002BUIbGfKwSe8jOOTbymVdzY0=","RbB9PEYNumCNN9l3eVOQ2k3447dezVg\u002Bgv12yEuBJSE=","hKbmaIIRKyW\u002BbyRpL9NTfKA49tOu64ewoWesv/Wz3TA=","X2ljK\u002Biq2gyeWGgWDUFY/0pP1ZpcWjZOiziot8NgI3w=","EoSjB1ziYOAYuPE/mqgBFS6xxGH9nBu7IU2SdnbWce0=","76eWiuTj\u002BCpP2T\u002BsnYYRtzAJnnrMJ6Vcr\u002BTuhLlLlaw=","iKhweurUFlqa7RcRWXb3CYjtz6ethl1ToC6uOeSN4sQ=","6B4\u002BNl\u002BNuepYkvZKDEbMdOZ0jbBZbkbPm/5IPvkMMkQ=","LLCFOrGdnyDuZsNmUeKyceUHSoM9FDEkZk2DzG5Uy24="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file diff --git a/obj/Debug/net8.0/rpswa.dswa.cache.json b/obj/Debug/net8.0/rpswa.dswa.cache.json index 06083c6..c13646e 100644 --- a/obj/Debug/net8.0/rpswa.dswa.cache.json +++ b/obj/Debug/net8.0/rpswa.dswa.cache.json @@ -1 +1 @@ -{"GlobalPropertiesHash":"YUqh7DweOFk41PNBn8yV1oJK8hMpD2qUvV27+I8+FHk=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["sBoAyRclr1CKC92HfAAtFvUqZh22blS8EwztX85/jzI=","lRP663q1jWxdZdYOmc2wjTzW2wzkjrV5K5AQF5Nczjg=","ahm7KLt9SKzurzovfwEINdpL8xMpazEyMYfPKSIbwRw=","EpC0gkO6Bi4kHPlV6/6ePHAWwYV4C\u002Bk6T9APzUmK8dc="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file +{"GlobalPropertiesHash":"HmPV413vUlyh8cdwmVqkwuZTo85mi3Pjg0N8jhsoQDI=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["f81qd3adk1gl4Al2inzRV1Mz6IVbJ6tCB3\u002BdgXe2LVM=","J1KdIVD5o3FNrX\u002B7s6wuDJNmMSXt1FgBbu38p5K8ums=","FSeHV291f1geMhXpr6cY8CushW6/jmG/8iV8QzDDz6Y=","ydGBWL6K4qlPJcMwQmEtbZ3boJpF6e9plvE0JfHa6aM="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file diff --git a/obj/YD_TrainingCompetition_Api.csproj.nuget.dgspec.json b/obj/YD_TrainingCompetition_Api.csproj.nuget.dgspec.json index 3825813..6542d59 100644 --- a/obj/YD_TrainingCompetition_Api.csproj.nuget.dgspec.json +++ b/obj/YD_TrainingCompetition_Api.csproj.nuget.dgspec.json @@ -1,38 +1,37 @@ { "format": 1, "restore": { - "C:\\Users\\tangl\\Desktop\\Git\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj": {} + "C:\\Project\\赛事\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj": {} }, "projects": { - "C:\\Users\\tangl\\Desktop\\Git\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj": { + "C:\\Project\\赛事\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\tangl\\Desktop\\Git\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj", + "projectUniqueName": "C:\\Project\\赛事\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj", "projectName": "YD_TrainingCompetition_Api", - "projectPath": "C:\\Users\\tangl\\Desktop\\Git\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj", - "packagesPath": "C:\\Users\\tangl\\.nuget\\packages\\", - "outputPath": "C:\\Users\\tangl\\Desktop\\Git\\YD_TrainingCompetition_Api\\obj\\", + "projectPath": "C:\\Project\\赛事\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj", + "packagesPath": "C:\\Users\\19304\\.nuget\\packages\\", + "outputPath": "C:\\Project\\赛事\\YD_TrainingCompetition_Api\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" ], "configFilePaths": [ - "C:\\Users\\tangl\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Users\\19304\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ - "net8.0" + "net8.0-windows" ], "sources": { "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "C:\\Program Files\\dotnet\\library-packs": {}, "https://api.nuget.org/v3/index.json": {} }, "frameworks": { - "net8.0": { - "framework": "net8.0", - "targetAlias": "net8.0", + "net8.0-windows": { + "framework": "net8.0-windows7.0", + "targetAlias": "net8.0-windows", "projectReferences": {} } }, @@ -49,9 +48,9 @@ "SdkAnalysisLevel": "10.0.300" }, "frameworks": { - "net8.0": { - "framework": "net8.0", - "targetAlias": "net8.0", + "net8.0-windows": { + "framework": "net8.0-windows7.0", + "targetAlias": "net8.0-windows", "dependencies": { "ClosedXML": { "target": "Package", @@ -91,9 +90,12 @@ }, "Microsoft.NETCore.App": { "privateAssets": "all" + }, + "Microsoft.WindowsDesktop.App.WindowsForms": { + "privateAssets": "none" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.300/PortableRuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.301/PortableRuntimeIdentifierGraph.json" } } } diff --git a/obj/YD_TrainingCompetition_Api.csproj.nuget.g.props b/obj/YD_TrainingCompetition_Api.csproj.nuget.g.props index 702c7c2..54cc99e 100644 --- a/obj/YD_TrainingCompetition_Api.csproj.nuget.g.props +++ b/obj/YD_TrainingCompetition_Api.csproj.nuget.g.props @@ -5,12 +5,12 @@ NuGet $(MSBuildThisFileDirectory)project.assets.json $(UserProfile)\.nuget\packages\ - C:\Users\tangl\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages + C:\Users\19304\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages PackageReference 7.0.0 - + @@ -18,6 +18,6 @@ - C:\Users\tangl\.nuget\packages\microsoft.extensions.apidescription.server\6.0.5 + C:\Users\19304\.nuget\packages\microsoft.extensions.apidescription.server\6.0.5 \ No newline at end of file diff --git a/obj/project.assets.json b/obj/project.assets.json index f0b91af..9e6afb3 100644 --- a/obj/project.assets.json +++ b/obj/project.assets.json @@ -1,7 +1,7 @@ { "version": 4, "targets": { - "net8.0": { + "net8.0-windows": { "ClosedXML/0.104.0": { "type": "package", "dependencies": { @@ -1029,7 +1029,7 @@ } }, "projectFileDependencyGroups": { - "net8.0": [ + "net8.0-windows": [ "ClosedXML >= 0.104.0", "MQTTnet >= 4.3.7.1207", "Microsoft.AspNetCore.OpenApi >= 8.0.27", @@ -1038,38 +1038,37 @@ ] }, "packageFolders": { - "C:\\Users\\tangl\\.nuget\\packages\\": {}, + "C:\\Users\\19304\\.nuget\\packages\\": {}, "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} }, "project": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\tangl\\Desktop\\Git\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj", + "projectUniqueName": "C:\\Project\\赛事\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj", "projectName": "YD_TrainingCompetition_Api", - "projectPath": "C:\\Users\\tangl\\Desktop\\Git\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj", - "packagesPath": "C:\\Users\\tangl\\.nuget\\packages\\", - "outputPath": "C:\\Users\\tangl\\Desktop\\Git\\YD_TrainingCompetition_Api\\obj\\", + "projectPath": "C:\\Project\\赛事\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj", + "packagesPath": "C:\\Users\\19304\\.nuget\\packages\\", + "outputPath": "C:\\Project\\赛事\\YD_TrainingCompetition_Api\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" ], "configFilePaths": [ - "C:\\Users\\tangl\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Users\\19304\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ - "net8.0" + "net8.0-windows" ], "sources": { "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "C:\\Program Files\\dotnet\\library-packs": {}, "https://api.nuget.org/v3/index.json": {} }, "frameworks": { - "net8.0": { - "framework": "net8.0", - "targetAlias": "net8.0", + "net8.0-windows": { + "framework": "net8.0-windows7.0", + "targetAlias": "net8.0-windows", "projectReferences": {} } }, @@ -1086,9 +1085,9 @@ "SdkAnalysisLevel": "10.0.300" }, "frameworks": { - "net8.0": { - "framework": "net8.0", - "targetAlias": "net8.0", + "net8.0-windows": { + "framework": "net8.0-windows7.0", + "targetAlias": "net8.0-windows", "dependencies": { "ClosedXML": { "target": "Package", @@ -1128,9 +1127,12 @@ }, "Microsoft.NETCore.App": { "privateAssets": "all" + }, + "Microsoft.WindowsDesktop.App.WindowsForms": { + "privateAssets": "none" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.300/PortableRuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.301/PortableRuntimeIdentifierGraph.json" } } } diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache index 226d39e..4039ad6 100644 --- a/obj/project.nuget.cache +++ b/obj/project.nuget.cache @@ -1,32 +1,32 @@ { "version": 2, - "dgSpecHash": "Dt5gZIeIL0Q=", + "dgSpecHash": "MwWq4leAOS8=", "success": true, - "projectFilePath": "C:\\Users\\tangl\\Desktop\\Git\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj", + "projectFilePath": "C:\\Project\\赛事\\YD_TrainingCompetition_Api\\YD_TrainingCompetition_Api.csproj", "expectedPackageFiles": [ - "C:\\Users\\tangl\\.nuget\\packages\\closedxml\\0.104.0\\closedxml.0.104.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\closedxml.parser\\1.2.0\\closedxml.parser.1.2.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\documentformat.openxml\\3.0.1\\documentformat.openxml.3.0.1.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\documentformat.openxml.framework\\3.0.1\\documentformat.openxml.framework.3.0.1.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\excelnumberformat\\1.1.0\\excelnumberformat.1.1.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\microsoft.aspnetcore.openapi\\8.0.27\\microsoft.aspnetcore.openapi.8.0.27.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\microsoft.extensions.apidescription.server\\6.0.5\\microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\microsoft.openapi\\1.6.14\\microsoft.openapi.1.6.14.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\mqttnet\\4.3.7.1207\\mqttnet.4.3.7.1207.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\rbush\\3.2.0\\rbush.3.2.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\runtime.linux-arm.runtime.native.system.io.ports\\8.0.0\\runtime.linux-arm.runtime.native.system.io.ports.8.0.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\runtime.linux-arm64.runtime.native.system.io.ports\\8.0.0\\runtime.linux-arm64.runtime.native.system.io.ports.8.0.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\runtime.linux-x64.runtime.native.system.io.ports\\8.0.0\\runtime.linux-x64.runtime.native.system.io.ports.8.0.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\runtime.native.system.io.ports\\8.0.0\\runtime.native.system.io.ports.8.0.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\runtime.osx-arm64.runtime.native.system.io.ports\\8.0.0\\runtime.osx-arm64.runtime.native.system.io.ports.8.0.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\runtime.osx-x64.runtime.native.system.io.ports\\8.0.0\\runtime.osx-x64.runtime.native.system.io.ports.8.0.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\sixlabors.fonts\\1.0.0\\sixlabors.fonts.1.0.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\swashbuckle.aspnetcore\\6.6.2\\swashbuckle.aspnetcore.6.6.2.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\6.6.2\\swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\6.6.2\\swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\6.6.2\\swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\system.io.packaging\\8.0.0\\system.io.packaging.8.0.0.nupkg.sha512", - "C:\\Users\\tangl\\.nuget\\packages\\system.io.ports\\8.0.0\\system.io.ports.8.0.0.nupkg.sha512" + "C:\\Users\\19304\\.nuget\\packages\\closedxml\\0.104.0\\closedxml.0.104.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\closedxml.parser\\1.2.0\\closedxml.parser.1.2.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\documentformat.openxml\\3.0.1\\documentformat.openxml.3.0.1.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\documentformat.openxml.framework\\3.0.1\\documentformat.openxml.framework.3.0.1.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\excelnumberformat\\1.1.0\\excelnumberformat.1.1.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\microsoft.aspnetcore.openapi\\8.0.27\\microsoft.aspnetcore.openapi.8.0.27.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\microsoft.extensions.apidescription.server\\6.0.5\\microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\microsoft.openapi\\1.6.14\\microsoft.openapi.1.6.14.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\mqttnet\\4.3.7.1207\\mqttnet.4.3.7.1207.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\rbush\\3.2.0\\rbush.3.2.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\runtime.linux-arm.runtime.native.system.io.ports\\8.0.0\\runtime.linux-arm.runtime.native.system.io.ports.8.0.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\runtime.linux-arm64.runtime.native.system.io.ports\\8.0.0\\runtime.linux-arm64.runtime.native.system.io.ports.8.0.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\runtime.linux-x64.runtime.native.system.io.ports\\8.0.0\\runtime.linux-x64.runtime.native.system.io.ports.8.0.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\runtime.native.system.io.ports\\8.0.0\\runtime.native.system.io.ports.8.0.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\runtime.osx-arm64.runtime.native.system.io.ports\\8.0.0\\runtime.osx-arm64.runtime.native.system.io.ports.8.0.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\runtime.osx-x64.runtime.native.system.io.ports\\8.0.0\\runtime.osx-x64.runtime.native.system.io.ports.8.0.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\sixlabors.fonts\\1.0.0\\sixlabors.fonts.1.0.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\swashbuckle.aspnetcore\\6.6.2\\swashbuckle.aspnetcore.6.6.2.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\6.6.2\\swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\6.6.2\\swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\6.6.2\\swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\system.io.packaging\\8.0.0\\system.io.packaging.8.0.0.nupkg.sha512", + "C:\\Users\\19304\\.nuget\\packages\\system.io.ports\\8.0.0\\system.io.ports.8.0.0.nupkg.sha512" ], "logs": [] } \ No newline at end of file