初始化
Some checks failed
Some checks failed
This commit is contained in:
@@ -3,15 +3,6 @@ using HardwarePerformance.Core.Entities;
|
||||
|
||||
namespace HardwarePerformance.Infrastructure.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// 基础实体类
|
||||
/// </summary>
|
||||
public abstract class BaseEntity
|
||||
{
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime UpdatedAt { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 应用程序数据库上下文
|
||||
/// </summary>
|
||||
|
||||
@@ -51,19 +51,19 @@ namespace HardwarePerformance.Infrastructure.Data
|
||||
{
|
||||
Name = "Geekbench",
|
||||
Description = "跨平台处理器和内存性能测试工具",
|
||||
ApiUrl = "https://browser.geekbench.com/"
|
||||
Url = "https://browser.geekbench.com/"
|
||||
},
|
||||
new DataSource
|
||||
{
|
||||
Name = "3DMark",
|
||||
Description = "游戏和图形性能基准测试工具",
|
||||
ApiUrl = "https://www.3dmark.com/"
|
||||
Url = "https://www.3dmark.com/"
|
||||
},
|
||||
new DataSource
|
||||
{
|
||||
Name = "AnTuTu",
|
||||
Description = "移动设备综合性能测试平台",
|
||||
ApiUrl = "https://www.antutu.com/"
|
||||
Url = "https://www.antutu.com/"
|
||||
}
|
||||
};
|
||||
|
||||
@@ -126,7 +126,7 @@ namespace HardwarePerformance.Infrastructure.Data
|
||||
performanceScores.Add(new PerformanceScore
|
||||
{
|
||||
ProductId = cpu.Id,
|
||||
BenchmarkType = "Single-Core",
|
||||
TestName = "Single-Core",
|
||||
Score = cpu.Name.Contains("A17") ? 2950 : cpu.Name.Contains("Snapdragon") ? 2300 : 2200,
|
||||
TestDate = DateTime.Now,
|
||||
DataSourceId = geekbenchSource.Id
|
||||
@@ -135,7 +135,7 @@ namespace HardwarePerformance.Infrastructure.Data
|
||||
performanceScores.Add(new PerformanceScore
|
||||
{
|
||||
ProductId = cpu.Id,
|
||||
BenchmarkType = "Multi-Core",
|
||||
TestName = "Multi-Core",
|
||||
Score = cpu.Name.Contains("A17") ? 7200 : cpu.Name.Contains("Snapdragon") ? 7400 : 7500,
|
||||
TestDate = DateTime.Now,
|
||||
DataSourceId = geekbenchSource.Id
|
||||
@@ -154,14 +154,14 @@ namespace HardwarePerformance.Infrastructure.Data
|
||||
specifications.Add(new Specification
|
||||
{
|
||||
ProductId = cpu.Id,
|
||||
Key = "制程工艺",
|
||||
Name = "制程工艺",
|
||||
Value = "3nm",
|
||||
Unit = "nm"
|
||||
});
|
||||
specifications.Add(new Specification
|
||||
{
|
||||
ProductId = cpu.Id,
|
||||
Key = "核心数",
|
||||
Name = "核心数",
|
||||
Value = "6",
|
||||
Unit = "核"
|
||||
});
|
||||
@@ -171,14 +171,14 @@ namespace HardwarePerformance.Infrastructure.Data
|
||||
specifications.Add(new Specification
|
||||
{
|
||||
ProductId = cpu.Id,
|
||||
Key = "制程工艺",
|
||||
Name = "制程工艺",
|
||||
Value = "4nm",
|
||||
Unit = "nm"
|
||||
});
|
||||
specifications.Add(new Specification
|
||||
{
|
||||
ProductId = cpu.Id,
|
||||
Key = "核心数",
|
||||
Name = "核心数",
|
||||
Value = "8",
|
||||
Unit = "核"
|
||||
});
|
||||
@@ -188,14 +188,14 @@ namespace HardwarePerformance.Infrastructure.Data
|
||||
specifications.Add(new Specification
|
||||
{
|
||||
ProductId = cpu.Id,
|
||||
Key = "制程工艺",
|
||||
Name = "制程工艺",
|
||||
Value = "4nm",
|
||||
Unit = "nm"
|
||||
});
|
||||
specifications.Add(new Specification
|
||||
{
|
||||
ProductId = cpu.Id,
|
||||
Key = "核心数",
|
||||
Name = "核心数",
|
||||
Value = "8",
|
||||
Unit = "核"
|
||||
});
|
||||
@@ -242,7 +242,7 @@ namespace HardwarePerformance.Infrastructure.Data
|
||||
performanceScores.Add(new PerformanceScore
|
||||
{
|
||||
ProductId = cpu.Id,
|
||||
BenchmarkType = "Single-Core",
|
||||
TestName = "Single-Core",
|
||||
Score = cpu.Name.Contains("Intel") ? 3200 : 2300,
|
||||
TestDate = DateTime.Now,
|
||||
DataSourceId = geekbenchSource.Id
|
||||
@@ -251,7 +251,7 @@ namespace HardwarePerformance.Infrastructure.Data
|
||||
performanceScores.Add(new PerformanceScore
|
||||
{
|
||||
ProductId = cpu.Id,
|
||||
BenchmarkType = "Multi-Core",
|
||||
TestName = "Multi-Core",
|
||||
Score = cpu.Name.Contains("Intel") ? 22000 : 30000,
|
||||
TestDate = DateTime.Now,
|
||||
DataSourceId = geekbenchSource.Id
|
||||
|
||||
@@ -1,226 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace HardwarePerformance.Infrastructure.Data.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class InitialCreate : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Categories",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
|
||||
Name = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: false),
|
||||
Description = table.Column<string>(type: "text", nullable: true),
|
||||
CreatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
||||
UpdatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Categories", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "DataSources",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
|
||||
Name = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: false),
|
||||
Description = table.Column<string>(type: "text", nullable: true),
|
||||
ApiUrl = table.Column<string>(type: "varchar(500)", maxLength: 500, nullable: true),
|
||||
CreatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
||||
UpdatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_DataSources", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Products",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
|
||||
Name = table.Column<string>(type: "varchar(200)", maxLength: 200, nullable: false),
|
||||
Model = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: false),
|
||||
Manufacturer = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: false),
|
||||
ReleaseDate = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
||||
ImageUrl = table.Column<string>(type: "varchar(500)", maxLength: 500, nullable: true),
|
||||
CategoryId = table.Column<int>(type: "int", nullable: false),
|
||||
CurrentRank = table.Column<int>(type: "int", nullable: true),
|
||||
CreatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
||||
UpdatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Products", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_Products_Categories_CategoryId",
|
||||
column: x => x.CategoryId,
|
||||
principalTable: "Categories",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "PerformanceScores",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
|
||||
ProductId = table.Column<int>(type: "int", nullable: false),
|
||||
BenchmarkType = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: false),
|
||||
Score = table.Column<decimal>(type: "decimal(10,2)", nullable: false),
|
||||
TestDate = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
||||
DataSourceId = table.Column<int>(type: "int", nullable: false),
|
||||
CreatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
||||
UpdatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_PerformanceScores", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_PerformanceScores_DataSources_DataSourceId",
|
||||
column: x => x.DataSourceId,
|
||||
principalTable: "DataSources",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_PerformanceScores_Products_ProductId",
|
||||
column: x => x.ProductId,
|
||||
principalTable: "Products",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "RankingHistories",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
|
||||
ProductId = table.Column<int>(type: "int", nullable: false),
|
||||
Rank = table.Column<int>(type: "int", nullable: false),
|
||||
CategoryId = table.Column<int>(type: "int", nullable: false),
|
||||
RecordDate = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
||||
CreatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
||||
UpdatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_RankingHistories", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_RankingHistories_Categories_CategoryId",
|
||||
column: x => x.CategoryId,
|
||||
principalTable: "Categories",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_RankingHistories_Products_ProductId",
|
||||
column: x => x.ProductId,
|
||||
principalTable: "Products",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Specifications",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
|
||||
ProductId = table.Column<int>(type: "int", nullable: false),
|
||||
Key = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: false),
|
||||
Value = table.Column<string>(type: "varchar(500)", maxLength: 500, nullable: false),
|
||||
Unit = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true),
|
||||
CreatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
||||
UpdatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Specifications", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_Specifications_Products_ProductId",
|
||||
column: x => x.ProductId,
|
||||
principalTable: "Products",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_PerformanceScores_BenchmarkType",
|
||||
table: "PerformanceScores",
|
||||
column: "BenchmarkType");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_PerformanceScores_ProductId",
|
||||
table: "PerformanceScores",
|
||||
column: "ProductId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Products_CategoryId",
|
||||
table: "Products",
|
||||
column: "CategoryId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Products_Manufacturer",
|
||||
table: "Products",
|
||||
column: "Manufacturer");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Products_Model",
|
||||
table: "Products",
|
||||
column: "Model");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Products_Name",
|
||||
table: "Products",
|
||||
column: "Name");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_RankingHistories_CategoryId",
|
||||
table: "RankingHistories",
|
||||
column: "CategoryId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_RankingHistories_ProductId",
|
||||
table: "RankingHistories",
|
||||
column: "ProductId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Specifications_ProductId",
|
||||
table: "Specifications",
|
||||
column: "ProductId");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "PerformanceScores");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "RankingHistories");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Specifications");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "DataSources");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Products");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Categories");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,315 +0,0 @@
|
||||
// <auto-generated />
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using HardwarePerformance.Infrastructure.Data;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace HardwarePerformance.Infrastructure.Data.Migrations
|
||||
{
|
||||
[DbContext(typeof(AppDbContext))]
|
||||
partial class AppDbContextModelSnapshot : ModelSnapshot
|
||||
{
|
||||
protected override void BuildModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "9.0.0")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 64);
|
||||
|
||||
MySqlModelBuilderExtensions.UseCollation(modelBuilder, "utf8mb4_0900_ai_ci");
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.Category", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<DateTime>("CreatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasMaxLength(100)
|
||||
.HasColumnType("varchar(100)");
|
||||
|
||||
b.Property<DateTime>("UpdatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Categories");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.DataSource", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("ApiUrl")
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("varchar(500)");
|
||||
|
||||
b.Property<DateTime>("CreatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasMaxLength(100)
|
||||
.HasColumnType("varchar(100)");
|
||||
|
||||
b.Property<DateTime>("UpdatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("DataSources");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.PerformanceScore", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("BenchmarkType")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("varchar(50)");
|
||||
|
||||
b.Property<DateTime>("CreatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.Property<int>("DataSourceId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("ProductId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<decimal>("Score")
|
||||
.HasColumnType("decimal(10,2)");
|
||||
|
||||
b.Property<DateTime>("TestDate")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.Property<DateTime>("UpdatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("BenchmarkType");
|
||||
|
||||
b.HasIndex("ProductId");
|
||||
|
||||
b.ToTable("PerformanceScores");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.Product", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("CategoryId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<DateTime>("CreatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.Property<string>("ImageUrl")
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("varchar(500)");
|
||||
|
||||
b.Property<string>("Manufacturer")
|
||||
.IsRequired()
|
||||
.HasMaxLength(100)
|
||||
.HasColumnType("varchar(100)");
|
||||
|
||||
b.Property<string>("Model")
|
||||
.IsRequired()
|
||||
.HasMaxLength(100)
|
||||
.HasColumnType("varchar(100)");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasMaxLength(200)
|
||||
.HasColumnType("varchar(200)");
|
||||
|
||||
b.Property<int?>("CurrentRank")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<DateTime>("ReleaseDate")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.Property<DateTime>("UpdatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("CategoryId");
|
||||
|
||||
b.HasIndex("Manufacturer");
|
||||
|
||||
b.HasIndex("Model");
|
||||
|
||||
b.HasIndex("Name");
|
||||
|
||||
b.ToTable("Products");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.RankingHistory", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("CategoryId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<DateTime>("CreatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.Property<int>("ProductId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("Rank")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<DateTime>("RecordDate")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.Property<DateTime>("UpdatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("CategoryId");
|
||||
|
||||
b.HasIndex("ProductId");
|
||||
|
||||
b.ToTable("RankingHistories");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.Specification", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<DateTime>("CreatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.Property<string>("Key")
|
||||
.IsRequired()
|
||||
.HasMaxLength(100)
|
||||
.HasColumnType("varchar(100)");
|
||||
|
||||
b.Property<int>("ProductId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Unit")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("varchar(50)");
|
||||
|
||||
b.Property<string>("Value")
|
||||
.IsRequired()
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("varchar(500)");
|
||||
|
||||
b.Property<DateTime>("UpdatedAt")
|
||||
.HasColumnType("datetime(6)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ProductId");
|
||||
|
||||
b.ToTable("Specifications");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.PerformanceScore", b =>
|
||||
{
|
||||
b.HasOne("HardwarePerformance.Core.Entities.DataSource", "DataSource")
|
||||
.WithMany()
|
||||
.HasForeignKey("DataSourceId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("HardwarePerformance.Core.Entities.Product", "Product")
|
||||
.WithMany("PerformanceScores")
|
||||
.HasForeignKey("ProductId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("DataSource");
|
||||
|
||||
b.Navigation("Product");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.Product", b =>
|
||||
{
|
||||
b.HasOne("HardwarePerformance.Core.Entities.Category", "Category")
|
||||
.WithMany("Products")
|
||||
.HasForeignKey("CategoryId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Category");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.RankingHistory", b =>
|
||||
{
|
||||
b.HasOne("HardwarePerformance.Core.Entities.Category", "Category")
|
||||
.WithMany()
|
||||
.HasForeignKey("CategoryId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("HardwarePerformance.Core.Entities.Product", "Product")
|
||||
.WithMany("RankingHistories")
|
||||
.HasForeignKey("ProductId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Category");
|
||||
|
||||
b.Navigation("Product");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.Specification", b =>
|
||||
{
|
||||
b.HasOne("HardwarePerformance.Core.Entities.Product", "Product")
|
||||
.WithMany("Specifications")
|
||||
.HasForeignKey("ProductId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Product");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.Category", b =>
|
||||
{
|
||||
b.Navigation("Products");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("HardwarePerformance.Core.Entities.Product", b =>
|
||||
{
|
||||
b.Navigation("PerformanceScores");
|
||||
|
||||
b.Navigation("RankingHistories");
|
||||
|
||||
b.Navigation("Specifications");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Data;
|
||||
using MySql.Data.MySqlClient;
|
||||
using HardwarePerformance.Core.Entities;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace HardwarePerformance.Infrastructure.Data;
|
||||
|
||||
@@ -202,4 +203,63 @@ public class SimpleAppDbContext
|
||||
cmd.CommandText = insertSpecifications;
|
||||
await cmd.ExecuteNonQueryAsync();
|
||||
}
|
||||
|
||||
public async Task<List<object>> GetCategoriesAsync()
|
||||
{
|
||||
var categories = new List<object>();
|
||||
|
||||
using var connection = new MySqlConnection(_connectionString);
|
||||
await connection.OpenAsync();
|
||||
|
||||
using var cmd = new MySqlCommand("SELECT * FROM Categories", connection);
|
||||
using var reader = await cmd.ExecuteReaderAsync();
|
||||
|
||||
while (await reader.ReadAsync())
|
||||
{
|
||||
categories.Add(new
|
||||
{
|
||||
Id = reader.GetInt32("Id"),
|
||||
Name = reader.GetString("Name"),
|
||||
Description = reader.IsDBNull("Description") ? null : reader.GetString("Description"),
|
||||
CreatedAt = reader.GetDateTime("CreatedAt")
|
||||
});
|
||||
}
|
||||
|
||||
return categories;
|
||||
}
|
||||
|
||||
public async Task<List<object>> GetProductsAsync(int categoryId = 0, int page = 1, int pageSize = 10)
|
||||
{
|
||||
var products = new List<object>();
|
||||
|
||||
using var connection = new MySqlConnection(_connectionString);
|
||||
await connection.OpenAsync();
|
||||
|
||||
var offset = (page - 1) * pageSize;
|
||||
var query = categoryId > 0
|
||||
? $"SELECT p.*, c.Name as CategoryName FROM Products p LEFT JOIN Categories c ON p.CategoryId = c.Id WHERE p.CategoryId = {categoryId} LIMIT {pageSize} OFFSET {offset}"
|
||||
: $"SELECT p.*, c.Name as CategoryName FROM Products p LEFT JOIN Categories c ON p.CategoryId = c.Id LIMIT {pageSize} OFFSET {offset}";
|
||||
|
||||
using var cmd = new MySqlCommand(query, connection);
|
||||
using var reader = await cmd.ExecuteReaderAsync();
|
||||
|
||||
while (await reader.ReadAsync())
|
||||
{
|
||||
products.Add(new
|
||||
{
|
||||
Id = reader.GetInt32("Id"),
|
||||
Name = reader.GetString("Name"),
|
||||
Model = reader.IsDBNull("Model") ? null : reader.GetString("Model"),
|
||||
Manufacturer = reader.IsDBNull("Manufacturer") ? null : reader.GetString("Manufacturer"),
|
||||
ImageUrl = reader.IsDBNull("ImageUrl") ? null : reader.GetString("ImageUrl"),
|
||||
ReleaseDate = reader.IsDBNull("ReleaseDate") ? (DateTime?)null : reader.GetDateTime("ReleaseDate"),
|
||||
CategoryId = reader.IsDBNull("CategoryId") ? (int?)null : reader.GetInt32("CategoryId"),
|
||||
CategoryName = reader.IsDBNull("CategoryName") ? null : reader.GetString("CategoryName"),
|
||||
CurrentRank = reader.IsDBNull("CurrentRank") ? (int?)null : reader.GetInt32("CurrentRank"),
|
||||
CreatedAt = reader.GetDateTime("CreatedAt")
|
||||
});
|
||||
}
|
||||
|
||||
return products;
|
||||
}
|
||||
}
|
||||
@@ -6,10 +6,15 @@
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.0" />
|
||||
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0" />
|
||||
<PackageReference Include="MySql.Data" Version="9.0.0" />
|
||||
<PackageReference Include="StackExchange.Redis" Version="2.7.27" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="9.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\HardwarePerformance.Core\HardwarePerformance.Core.csproj" />
|
||||
<ProjectReference Include="..\HardwarePerformance.Application\HardwarePerformance.Application.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using HardwarePerformance.Application.Interfaces;
|
||||
using HardwarePerformance.Core.Entities;
|
||||
using HardwarePerformance.Infrastructure.Data;
|
||||
|
||||
namespace HardwarePerformance.Infrastructure.Repositories
|
||||
{
|
||||
/// <summary>
|
||||
/// 类别Repository实现
|
||||
/// </summary>
|
||||
public class CategoryRepository : Repository<Category>, ICategoryRepository
|
||||
{
|
||||
public CategoryRepository(AppDbContext context) : base(context)
|
||||
{
|
||||
}
|
||||
|
||||
public async Task<Category?> GetByNameAsync(string name)
|
||||
{
|
||||
return await _dbSet
|
||||
.FirstOrDefaultAsync(c => c.Name == name);
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<Category>> GetCategoriesWithProductCountAsync()
|
||||
{
|
||||
return await _dbSet
|
||||
.Include(c => c.Products)
|
||||
.Select(c => new Category
|
||||
{
|
||||
Id = c.Id,
|
||||
Name = c.Name,
|
||||
Description = c.Description,
|
||||
IconUrl = c.IconUrl,
|
||||
Products = new List<Product>() // 不加载实际产品,只用于计数
|
||||
})
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<bool> IsNameExistsAsync(string name, int? excludeId = null)
|
||||
{
|
||||
var query = _dbSet.Where(c => c.Name == name);
|
||||
|
||||
if (excludeId.HasValue)
|
||||
{
|
||||
query = query.Where(c => c.Id != excludeId.Value);
|
||||
}
|
||||
|
||||
return await query.AnyAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,235 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using HardwarePerformance.Application.Interfaces;
|
||||
using HardwarePerformance.Core.Entities;
|
||||
using HardwarePerformance.Infrastructure.Data;
|
||||
|
||||
namespace HardwarePerformance.Infrastructure.Repositories
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品Repository实现
|
||||
/// </summary>
|
||||
public class ProductRepository : Repository<Product>, IProductRepository
|
||||
{
|
||||
public ProductRepository(AppDbContext context) : base(context)
|
||||
{
|
||||
}
|
||||
|
||||
public async Task<(IEnumerable<Product> products, int totalCount)> GetByCategoryAsync(
|
||||
int categoryId,
|
||||
int pageNumber = 1,
|
||||
int pageSize = 20,
|
||||
string sortBy = "CurrentRank",
|
||||
bool ascending = true)
|
||||
{
|
||||
var query = _dbSet
|
||||
.Include(p => p.Category)
|
||||
.Include(p => p.PerformanceScores)
|
||||
.Where(p => p.CategoryId == categoryId);
|
||||
|
||||
// 排序
|
||||
query = ApplySorting(query, sortBy, ascending);
|
||||
|
||||
var totalCount = await query.CountAsync();
|
||||
|
||||
var products = await query
|
||||
.Skip((pageNumber - 1) * pageSize)
|
||||
.Take(pageSize)
|
||||
.ToListAsync();
|
||||
|
||||
return (products, totalCount);
|
||||
}
|
||||
|
||||
public async Task<Product?> GetByModelAsync(string model)
|
||||
{
|
||||
return await _dbSet
|
||||
.Include(p => p.Category)
|
||||
.Include(p => p.PerformanceScores)
|
||||
.FirstOrDefaultAsync(p => p.Model == model);
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<Product>> GetTopNByCategoryAsync(int categoryId, int n)
|
||||
{
|
||||
return await _dbSet
|
||||
.Include(p => p.Category)
|
||||
.Include(p => p.PerformanceScores)
|
||||
.Where(p => p.CategoryId == categoryId)
|
||||
.OrderBy(p => p.CurrentRank)
|
||||
.Take(n)
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<(IEnumerable<Product> products, int totalCount)> SearchAsync(
|
||||
string searchTerm,
|
||||
int? categoryId = null,
|
||||
int pageNumber = 1,
|
||||
int pageSize = 20)
|
||||
{
|
||||
var query = _dbSet
|
||||
.Include(p => p.Category)
|
||||
.Include(p => p.PerformanceScores)
|
||||
.Where(p =>
|
||||
(string.IsNullOrEmpty(searchTerm) ||
|
||||
p.Name.Contains(searchTerm) ||
|
||||
p.Model.Contains(searchTerm) ||
|
||||
p.Manufacturer.Contains(searchTerm)) &&
|
||||
(!categoryId.HasValue || p.CategoryId == categoryId.Value));
|
||||
|
||||
var totalCount = await query.CountAsync();
|
||||
|
||||
var products = await query
|
||||
.OrderBy(p => p.CurrentRank)
|
||||
.Skip((pageNumber - 1) * pageSize)
|
||||
.Take(pageSize)
|
||||
.ToListAsync();
|
||||
|
||||
return (products, totalCount);
|
||||
}
|
||||
|
||||
public async Task<(IEnumerable<Product> products, int totalCount)> FilterAsync(
|
||||
int categoryId,
|
||||
int? minScore = null,
|
||||
int? maxScore = null,
|
||||
int? minYear = null,
|
||||
int? maxYear = null,
|
||||
string? manufacturer = null,
|
||||
int pageNumber = 1,
|
||||
int pageSize = 20)
|
||||
{
|
||||
var query = _dbSet
|
||||
.Include(p => p.Category)
|
||||
.Include(p => p.PerformanceScores)
|
||||
.Where(p => p.CategoryId == categoryId);
|
||||
|
||||
// 性能分数筛选
|
||||
if (minScore.HasValue)
|
||||
{
|
||||
query = query.Where(p => p.PerformanceScores.Any(ps => ps.Score >= minScore.Value));
|
||||
}
|
||||
|
||||
if (maxScore.HasValue)
|
||||
{
|
||||
query = query.Where(p => p.PerformanceScores.Any(ps => ps.Score <= maxScore.Value));
|
||||
}
|
||||
|
||||
// 发布年份筛选
|
||||
if (minYear.HasValue)
|
||||
{
|
||||
query = query.Where(p => p.ReleaseDate.HasValue && p.ReleaseDate.Value.Year >= minYear.Value);
|
||||
}
|
||||
|
||||
if (maxYear.HasValue)
|
||||
{
|
||||
query = query.Where(p => p.ReleaseDate.HasValue && p.ReleaseDate.Value.Year <= maxYear.Value);
|
||||
}
|
||||
|
||||
// 品牌筛选
|
||||
if (!string.IsNullOrEmpty(manufacturer))
|
||||
{
|
||||
query = query.Where(p => p.Manufacturer == manufacturer);
|
||||
}
|
||||
|
||||
var totalCount = await query.CountAsync();
|
||||
|
||||
var products = await query
|
||||
.OrderBy(p => p.CurrentRank)
|
||||
.Skip((pageNumber - 1) * pageSize)
|
||||
.Take(pageSize)
|
||||
.ToListAsync();
|
||||
|
||||
return (products, totalCount);
|
||||
}
|
||||
|
||||
public async Task<Product?> GetWithDetailsAsync(int id)
|
||||
{
|
||||
return await _dbSet
|
||||
.Include(p => p.Category)
|
||||
.Include(p => p.Specifications)
|
||||
.Include(p => p.PerformanceScores)
|
||||
.ThenInclude(ps => ps.DataSource)
|
||||
.Include(p => p.RankingHistories
|
||||
.OrderByDescending(rh => rh.RecordDate)
|
||||
.Take(12)) // 最近12个月的排名历史
|
||||
.FirstOrDefaultAsync(p => p.Id == id);
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<Product>> GetByIdsAsync(IEnumerable<int> productIds)
|
||||
{
|
||||
return await _dbSet
|
||||
.Include(p => p.Category)
|
||||
.Include(p => p.Specifications)
|
||||
.Include(p => p.PerformanceScores)
|
||||
.ThenInclude(ps => ps.DataSource)
|
||||
.Where(p => productIds.Contains(p.Id))
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<string>> GetManufacturersAsync(int? categoryId = null)
|
||||
{
|
||||
var query = _dbSet.AsQueryable();
|
||||
|
||||
if (categoryId.HasValue)
|
||||
{
|
||||
query = query.Where(p => p.CategoryId == categoryId.Value);
|
||||
}
|
||||
|
||||
return await query
|
||||
.Where(p => !string.IsNullOrEmpty(p.Manufacturer))
|
||||
.Select(p => p.Manufacturer)
|
||||
.Distinct()
|
||||
.OrderBy(m => m)
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<RankingHistory>> GetRankingHistoryAsync(int productId, int months = 12)
|
||||
{
|
||||
var startDate = DateTime.UtcNow.AddMonths(-months);
|
||||
|
||||
return await _context.RankingHistories
|
||||
.Where(rh => rh.ProductId == productId && rh.RecordDate >= startDate)
|
||||
.OrderBy(rh => rh.RecordDate)
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<(IEnumerable<Product> products, int totalCount)> GetByManufacturerAsync(
|
||||
string manufacturer,
|
||||
int? categoryId = null,
|
||||
int pageNumber = 1,
|
||||
int pageSize = 20)
|
||||
{
|
||||
var query = _dbSet
|
||||
.Include(p => p.Category)
|
||||
.Include(p => p.PerformanceScores)
|
||||
.Where(p => p.Manufacturer == manufacturer);
|
||||
|
||||
if (categoryId.HasValue)
|
||||
{
|
||||
query = query.Where(p => p.CategoryId == categoryId.Value);
|
||||
}
|
||||
|
||||
var totalCount = await query.CountAsync();
|
||||
|
||||
var products = await query
|
||||
.OrderBy(p => p.CurrentRank)
|
||||
.Skip((pageNumber - 1) * pageSize)
|
||||
.Take(pageSize)
|
||||
.ToListAsync();
|
||||
|
||||
return (products, totalCount);
|
||||
}
|
||||
|
||||
private IQueryable<Product> ApplySorting(IQueryable<Product> query, string sortBy, bool ascending)
|
||||
{
|
||||
return sortBy.ToLower() switch
|
||||
{
|
||||
"name" => ascending ? query.OrderBy(p => p.Name) : query.OrderByDescending(p => p.Name),
|
||||
"manufacturer" => ascending ? query.OrderBy(p => p.Manufacturer) : query.OrderByDescending(p => p.Manufacturer),
|
||||
"releasedate" => ascending ? query.OrderBy(p => p.ReleaseDate) : query.OrderByDescending(p => p.ReleaseDate),
|
||||
"currentrank" => ascending ? query.OrderBy(p => p.CurrentRank) : query.OrderByDescending(p => p.CurrentRank),
|
||||
"score" => ascending ?
|
||||
query.OrderBy(p => p.PerformanceScores.Any() ? p.PerformanceScores.Average(ps => ps.Score) : 0) :
|
||||
query.OrderByDescending(p => p.PerformanceScores.Any() ? p.PerformanceScores.Average(ps => ps.Score) : 0),
|
||||
_ => ascending ? query.OrderBy(p => p.CurrentRank) : query.OrderByDescending(p => p.CurrentRank)
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using HardwarePerformance.Application.Interfaces;
|
||||
using HardwarePerformance.Infrastructure.Data;
|
||||
|
||||
namespace HardwarePerformance.Infrastructure.Repositories
|
||||
{
|
||||
/// <summary>
|
||||
/// 通用Repository基类,实现基本的CRUD操作
|
||||
/// </summary>
|
||||
/// <typeparam name="T">实体类型</typeparam>
|
||||
public class Repository<T> : IRepository<T> where T : class
|
||||
{
|
||||
protected readonly AppDbContext _context;
|
||||
protected readonly DbSet<T> _dbSet;
|
||||
|
||||
public Repository(AppDbContext context)
|
||||
{
|
||||
_context = context;
|
||||
_dbSet = context.Set<T>();
|
||||
}
|
||||
|
||||
public virtual async Task<T?> GetByIdAsync(int id)
|
||||
{
|
||||
return await _dbSet.FindAsync(id);
|
||||
}
|
||||
|
||||
public virtual async Task<IEnumerable<T>> GetAllAsync()
|
||||
{
|
||||
return await _dbSet.ToListAsync();
|
||||
}
|
||||
|
||||
public virtual async Task<IEnumerable<T>> FindAsync(System.Linq.Expressions.Expression<Func<T, bool>> predicate)
|
||||
{
|
||||
return await _dbSet.Where(predicate).ToListAsync();
|
||||
}
|
||||
|
||||
public virtual async Task<bool> ExistsAsync(System.Linq.Expressions.Expression<Func<T, bool>> predicate)
|
||||
{
|
||||
return await _dbSet.AnyAsync(predicate);
|
||||
}
|
||||
|
||||
public virtual async Task<T> AddAsync(T entity)
|
||||
{
|
||||
await _dbSet.AddAsync(entity);
|
||||
await _context.SaveChangesAsync();
|
||||
return entity;
|
||||
}
|
||||
|
||||
public virtual async Task<IEnumerable<T>> AddRangeAsync(IEnumerable<T> entities)
|
||||
{
|
||||
await _dbSet.AddRangeAsync(entities);
|
||||
await _context.SaveChangesAsync();
|
||||
return entities;
|
||||
}
|
||||
|
||||
public virtual async Task<T> UpdateAsync(T entity)
|
||||
{
|
||||
_dbSet.Update(entity);
|
||||
await _context.SaveChangesAsync();
|
||||
return entity;
|
||||
}
|
||||
|
||||
public virtual async Task<bool> DeleteAsync(T entity)
|
||||
{
|
||||
_dbSet.Remove(entity);
|
||||
await _context.SaveChangesAsync();
|
||||
return true;
|
||||
}
|
||||
|
||||
public virtual async Task<bool> DeleteByIdAsync(int id)
|
||||
{
|
||||
var entity = await GetByIdAsync(id);
|
||||
if (entity == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return await DeleteAsync(entity);
|
||||
}
|
||||
|
||||
public virtual async Task<int> CountAsync()
|
||||
{
|
||||
return await _dbSet.CountAsync();
|
||||
}
|
||||
|
||||
public virtual async Task<int> CountAsync(System.Linq.Expressions.Expression<Func<T, bool>> predicate)
|
||||
{
|
||||
return await _dbSet.CountAsync(predicate);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
using StackExchange.Redis;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace HardwarePerformance.Infrastructure.Services;
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net9.0",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "9.0.0"
|
||||
},
|
||||
"configProperties": {
|
||||
"System.Reflection.NullabilityInfoContext.IsSupported": true,
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,9 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -14,7 +13,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("HardwarePerformance.Infrastructure")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7a04b856674d8e31e95655605d640e36e54e848a")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("HardwarePerformance.Infrastructure")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("HardwarePerformance.Infrastructure")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -1 +1 @@
|
||||
1ef23de4e336eea01c33b39c99b91c4270cbe40a9e883f3a11996f68da9a0855
|
||||
d7554d87611695c232a287a1b7d8d0e5582d71cb8867f711040df3d91ff79c9a
|
||||
|
||||
@@ -1,14 +1,24 @@
|
||||
is_global = true
|
||||
build_property.TargetFramework = net9.0
|
||||
build_property.TargetFramework = net9.0
|
||||
build_property.TargetPlatformMinVersion =
|
||||
build_property.TargetPlatformMinVersion =
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.TargetFrameworkIdentifier = .NETCoreApp
|
||||
build_property.TargetFrameworkVersion = v9.0
|
||||
build_property.RootNamespace = HardwarePerformance.Infrastructure
|
||||
build_property.ProjectDir = C:\work\电脑硬件-01\backend\HardwarePerformance.Infrastructure\
|
||||
build_property.ProjectDir = D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.EffectiveAnalysisLevelStyle = 9.0
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.IO;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Net.Http;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using System;
|
||||
global using System.Collections.Generic;
|
||||
global using System.IO;
|
||||
global using System.Linq;
|
||||
global using System.Net.Http;
|
||||
global using System.Threading;
|
||||
global using System.Threading.Tasks;
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
caf94e062580521c8dd2e44f4ece773de615e92af912cbbe4f50ec0e552135e2
|
||||
8d8220281ced08823dd3e7dec2e8e310f93bd61f7432e31336c7f49035e8e8bc
|
||||
|
||||
@@ -13,3 +13,22 @@ C:\work\电脑硬件-01\backend\HardwarePerformance.Infrastructure\obj\Debug\net
|
||||
C:\work\电脑硬件-01\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\refint\HardwarePerformance.Infrastructure.dll
|
||||
C:\work\电脑硬件-01\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\HardwarePerformance.Infrastructure.pdb
|
||||
C:\work\电脑硬件-01\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\ref\HardwarePerformance.Infrastructure.dll
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\HardwarePerformance.Infrastructure.dll
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\refint\HardwarePerformance.Infrastructure.dll
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\HardwarePerformance.Infrastructure.pdb
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\HardwarePerformance.Infrastructure.csproj.AssemblyReference.cache
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\HardwarePerformance.Infrastructure.GeneratedMSBuildEditorConfig.editorconfig
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\HardwarePerformance.Infrastructure.AssemblyInfoInputs.cache
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\HardwarePerformance.Infrastructure.AssemblyInfo.cs
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\HardwarePerformance.Infrastructure.csproj.CoreCompileInputs.cache
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\bin\Debug\net9.0\HardwarePerformance.Infrastructure.deps.json
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\bin\Debug\net9.0\HardwarePerformance.Infrastructure.runtimeconfig.json
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\bin\Debug\net9.0\HardwarePerformance.Infrastructure.dll
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\bin\Debug\net9.0\HardwarePerformance.Infrastructure.pdb
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\bin\Debug\net9.0\HardwarePerformance.Application.dll
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\bin\Debug\net9.0\HardwarePerformance.Core.dll
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\bin\Debug\net9.0\HardwarePerformance.Core.pdb
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\bin\Debug\net9.0\HardwarePerformance.Application.pdb
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\Hardware.DD8A83DD.Up2Date
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\HardwarePerformance.Infrastructure.genruntimeconfig.cache
|
||||
D:\work\Demo\it\it\backend\HardwarePerformance.Infrastructure\obj\Debug\net9.0\ref\HardwarePerformance.Infrastructure.dll
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
2ba385f2ac0804b85ba290a606cc2f3c0f1aafd34ba7b26c04f962ebdc3db21b
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Target Name="GetEFProjectMetadata">
|
||||
<MSBuild Condition=" '$(TargetFramework)' == '' "
|
||||
Projects="$(MSBuildProjectFile)"
|
||||
Targets="GetEFProjectMetadata"
|
||||
Properties="TargetFramework=$(TargetFrameworks.Split(';')[0]);EFProjectMetadataFile=$(EFProjectMetadataFile)" />
|
||||
<ItemGroup Condition=" '$(TargetFramework)' != '' ">
|
||||
<EFProjectMetadata Include="AssemblyName: $(AssemblyName)" />
|
||||
<EFProjectMetadata Include="Language: $(Language)" />
|
||||
<EFProjectMetadata Include="OutputPath: $(OutputPath)" />
|
||||
<EFProjectMetadata Include="Platform: $(Platform)" />
|
||||
<EFProjectMetadata Include="PlatformTarget: $(PlatformTarget)" />
|
||||
<EFProjectMetadata Include="ProjectAssetsFile: $(ProjectAssetsFile)" />
|
||||
<EFProjectMetadata Include="ProjectDir: $(ProjectDir)" />
|
||||
<EFProjectMetadata Include="RootNamespace: $(RootNamespace)" />
|
||||
<EFProjectMetadata Include="RuntimeFrameworkVersion: $(RuntimeFrameworkVersion)" />
|
||||
<EFProjectMetadata Include="TargetFileName: $(TargetFileName)" />
|
||||
<EFProjectMetadata Include="TargetFrameworkMoniker: $(TargetFrameworkMoniker)" />
|
||||
<EFProjectMetadata Include="Nullable: $(Nullable)" />
|
||||
<EFProjectMetadata Include="TargetFramework: $(TargetFramework)" />
|
||||
<EFProjectMetadata Include="TargetPlatformIdentifier: $(TargetPlatformIdentifier)" />
|
||||
</ItemGroup>
|
||||
<WriteLinesToFile Condition=" '$(TargetFramework)' != '' "
|
||||
File="$(EFProjectMetadataFile)"
|
||||
Lines="@(EFProjectMetadata)" />
|
||||
</Target>
|
||||
</Project>
|
||||
@@ -1,24 +1,24 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj": {}
|
||||
"D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj": {
|
||||
"D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Application\\HardwarePerformance.Application.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj",
|
||||
"projectName": "HardwarePerformance.Core",
|
||||
"projectPath": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj",
|
||||
"packagesPath": "C:\\Users\\代\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Core\\obj\\",
|
||||
"projectUniqueName": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Application\\HardwarePerformance.Application.csproj",
|
||||
"projectName": "HardwarePerformance.Application",
|
||||
"projectPath": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Application\\HardwarePerformance.Application.csproj",
|
||||
"packagesPath": "C:\\Users\\Administrator\\.nuget\\packages\\",
|
||||
"outputPath": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Application\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\work\\电脑硬件-01\\backend\\NuGet.Config",
|
||||
"C:\\Users\\代\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"D:\\work\\Demo\\it\\it\\backend\\NuGet.Config",
|
||||
"C:\\Users\\Administrator\\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"
|
||||
],
|
||||
@@ -26,9 +26,94 @@
|
||||
"net9.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files\\dotnet\\library-packs": {},
|
||||
"https://api.nuget.org/v3/index.json": {},
|
||||
"https://nuget.cdn.azure.cn/v3/index.json": {},
|
||||
"https://packages.microsoft.com/index.json": {}
|
||||
"https://nuget.cdn.azure.cn/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"projectReferences": {
|
||||
"D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj": {
|
||||
"projectPath": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "10.0.100"
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"downloadDependencies": [
|
||||
{
|
||||
"name": "Microsoft.AspNetCore.App.Ref",
|
||||
"version": "[9.0.10, 9.0.10]"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.NETCore.App.Ref",
|
||||
"version": "[9.0.10, 9.0.10]"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.WindowsDesktop.App.Ref",
|
||||
"version": "[9.0.10, 9.0.10]"
|
||||
}
|
||||
],
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.100-rc.2.25502.107/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj",
|
||||
"projectName": "HardwarePerformance.Core",
|
||||
"projectPath": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj",
|
||||
"packagesPath": "C:\\Users\\Administrator\\.nuget\\packages\\",
|
||||
"outputPath": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Core\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"D:\\work\\Demo\\it\\it\\backend\\NuGet.Config",
|
||||
"C:\\Users\\Administrator\\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": [
|
||||
"net9.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files\\dotnet\\library-packs": {},
|
||||
"https://api.nuget.org/v3/index.json": {},
|
||||
"https://nuget.cdn.azure.cn/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
@@ -46,7 +131,7 @@
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.300"
|
||||
"SdkAnalysisLevel": "10.0.100"
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
@@ -62,30 +147,44 @@
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"downloadDependencies": [
|
||||
{
|
||||
"name": "Microsoft.AspNetCore.App.Ref",
|
||||
"version": "[9.0.10, 9.0.10]"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.NETCore.App.Ref",
|
||||
"version": "[9.0.10, 9.0.10]"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.WindowsDesktop.App.Ref",
|
||||
"version": "[9.0.10, 9.0.10]"
|
||||
}
|
||||
],
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json"
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.100-rc.2.25502.107/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj": {
|
||||
"D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj",
|
||||
"projectUniqueName": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj",
|
||||
"projectName": "HardwarePerformance.Infrastructure",
|
||||
"projectPath": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj",
|
||||
"packagesPath": "C:\\Users\\代\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Infrastructure\\obj\\",
|
||||
"projectPath": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj",
|
||||
"packagesPath": "C:\\Users\\Administrator\\.nuget\\packages\\",
|
||||
"outputPath": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Infrastructure\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\work\\电脑硬件-01\\backend\\NuGet.Config",
|
||||
"C:\\Users\\代\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"D:\\work\\Demo\\it\\it\\backend\\NuGet.Config",
|
||||
"C:\\Users\\Administrator\\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"
|
||||
],
|
||||
@@ -93,16 +192,19 @@
|
||||
"net9.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files\\dotnet\\library-packs": {},
|
||||
"https://api.nuget.org/v3/index.json": {},
|
||||
"https://nuget.cdn.azure.cn/v3/index.json": {},
|
||||
"https://packages.microsoft.com/index.json": {}
|
||||
"https://nuget.cdn.azure.cn/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"projectReferences": {
|
||||
"C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj": {
|
||||
"projectPath": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj"
|
||||
"D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Application\\HardwarePerformance.Application.csproj": {
|
||||
"projectPath": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Application\\HardwarePerformance.Application.csproj"
|
||||
},
|
||||
"D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj": {
|
||||
"projectPath": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Core\\HardwarePerformance.Core.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -117,7 +219,7 @@
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.300"
|
||||
"SdkAnalysisLevel": "10.0.100"
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
@@ -135,6 +237,18 @@
|
||||
"target": "Package",
|
||||
"version": "[9.0.0, )"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.0, )"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.0, )"
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.0, )"
|
||||
},
|
||||
"MySql.Data": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.0, )"
|
||||
@@ -142,6 +256,10 @@
|
||||
"Pomelo.EntityFrameworkCore.MySql": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.0, )"
|
||||
},
|
||||
"StackExchange.Redis": {
|
||||
"target": "Package",
|
||||
"version": "[2.7.27, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
@@ -155,12 +273,26 @@
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"downloadDependencies": [
|
||||
{
|
||||
"name": "Microsoft.AspNetCore.App.Ref",
|
||||
"version": "[9.0.10, 9.0.10]"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.NETCore.App.Ref",
|
||||
"version": "[9.0.10, 9.0.10]"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.WindowsDesktop.App.Ref",
|
||||
"version": "[9.0.10, 9.0.10]"
|
||||
}
|
||||
],
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json"
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.100-rc.2.25502.107/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,12 +5,21 @@
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\代\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Administrator\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.14.0</NuGetToolVersion>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\代\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Users\Administrator\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore\9.0.0\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore\9.0.0\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.props')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore.design\9.0.0\build\net8.0\Microsoft.EntityFrameworkCore.Design.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore.design\9.0.0\build\net8.0\Microsoft.EntityFrameworkCore.Design.props')" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">C:\Users\Administrator\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.4</PkgMicrosoft_CodeAnalysis_Analyzers>
|
||||
<PkgMicrosoft_EntityFrameworkCore_Tools Condition=" '$(PkgMicrosoft_EntityFrameworkCore_Tools)' == '' ">C:\Users\Administrator\.nuget\packages\microsoft.entityframeworkcore.tools\9.0.0</PkgMicrosoft_EntityFrameworkCore_Tools>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,2 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\net8.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\net8.0\System.Text.Json.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\9.0.0\buildTransitive\net8.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\9.0.0\buildTransitive\net8.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\9.0.0\buildTransitive\net8.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\9.0.0\buildTransitive\net8.0\Microsoft.Extensions.Options.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)mono.texttemplating\3.0.0\buildTransitive\Mono.TextTemplating.targets" Condition="Exists('$(NuGetPackageRoot)mono.texttemplating\3.0.0\buildTransitive\Mono.TextTemplating.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,27 +1,81 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "fC6gM55oPjY=",
|
||||
"success": false,
|
||||
"projectFilePath": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj",
|
||||
"expectedPackageFiles": [],
|
||||
"logs": [
|
||||
{
|
||||
"code": "NU1301",
|
||||
"level": "Error",
|
||||
"message": "无法加载源 https://nuget.cdn.azure.cn/v3/index.json 的服务索引。\r\n 不知道这样的主机。 (null:80)\r\n 不知道这样的主机。",
|
||||
"projectPath": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj",
|
||||
"filePath": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj",
|
||||
"libraryId": "Microsoft.EntityFrameworkCore.Design",
|
||||
"targetGraphs": []
|
||||
},
|
||||
{
|
||||
"code": "NU1301",
|
||||
"level": "Error",
|
||||
"message": "无法加载源 https://nuget.cdn.azure.cn/v3/index.json 的服务索引。\r\n 不知道这样的主机。 (null:80)\r\n 不知道这样的主机。",
|
||||
"projectPath": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj",
|
||||
"filePath": "C:\\work\\电脑硬件-01\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj",
|
||||
"libraryId": "Microsoft.EntityFrameworkCore",
|
||||
"targetGraphs": []
|
||||
}
|
||||
]
|
||||
"dgSpecHash": "sERbqzpivow=",
|
||||
"success": true,
|
||||
"projectFilePath": "D:\\work\\Demo\\it\\it\\backend\\HardwarePerformance.Infrastructure\\HardwarePerformance.Infrastructure.csproj",
|
||||
"expectedPackageFiles": [
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\bouncycastle.cryptography\\2.3.1\\bouncycastle.cryptography.2.3.1.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\google.protobuf\\3.26.1\\google.protobuf.3.26.1.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\k4os.compression.lz4\\1.3.8\\k4os.compression.lz4.1.3.8.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\k4os.compression.lz4.streams\\1.3.8\\k4os.compression.lz4.streams.1.3.8.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\k4os.hash.xxhash\\1.0.8\\k4os.hash.xxhash.1.0.8.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\7.0.0\\microsoft.bcl.asyncinterfaces.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.build.framework\\17.8.3\\microsoft.build.framework.17.8.3.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.build.locator\\1.7.8\\microsoft.build.locator.1.7.8.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.4\\microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.codeanalysis.common\\4.8.0\\microsoft.codeanalysis.common.4.8.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.8.0\\microsoft.codeanalysis.csharp.4.8.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.codeanalysis.csharp.workspaces\\4.8.0\\microsoft.codeanalysis.csharp.workspaces.4.8.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.codeanalysis.workspaces.common\\4.8.0\\microsoft.codeanalysis.workspaces.common.4.8.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.codeanalysis.workspaces.msbuild\\4.8.0\\microsoft.codeanalysis.workspaces.msbuild.4.8.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.entityframeworkcore\\9.0.0\\microsoft.entityframeworkcore.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\9.0.0\\microsoft.entityframeworkcore.abstractions.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\9.0.0\\microsoft.entityframeworkcore.analyzers.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.entityframeworkcore.design\\9.0.0\\microsoft.entityframeworkcore.design.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\9.0.0\\microsoft.entityframeworkcore.relational.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.entityframeworkcore.tools\\9.0.0\\microsoft.entityframeworkcore.tools.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\9.0.0\\microsoft.extensions.caching.abstractions.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.caching.memory\\9.0.0\\microsoft.extensions.caching.memory.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\9.0.0\\microsoft.extensions.configuration.abstractions.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\9.0.0\\microsoft.extensions.dependencyinjection.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\9.0.0\\microsoft.extensions.dependencyinjection.abstractions.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.dependencymodel\\9.0.0\\microsoft.extensions.dependencymodel.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.logging\\9.0.0\\microsoft.extensions.logging.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\9.0.0\\microsoft.extensions.logging.abstractions.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.options\\9.0.0\\microsoft.extensions.options.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.primitives\\9.0.0\\microsoft.extensions.primitives.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\mono.texttemplating\\3.0.0\\mono.texttemplating.3.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\mysql.data\\9.0.0\\mysql.data.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\mysqlconnector\\2.4.0\\mysqlconnector.2.4.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\pipelines.sockets.unofficial\\2.2.8\\pipelines.sockets.unofficial.2.2.8.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\pomelo.entityframeworkcore.mysql\\9.0.0\\pomelo.entityframeworkcore.mysql.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\stackexchange.redis\\2.7.27\\stackexchange.redis.2.7.27.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.buffers\\4.5.1\\system.buffers.4.5.1.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.codedom\\6.0.0\\system.codedom.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.collections.immutable\\7.0.0\\system.collections.immutable.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.composition\\7.0.0\\system.composition.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.composition.attributedmodel\\7.0.0\\system.composition.attributedmodel.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.composition.convention\\7.0.0\\system.composition.convention.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.composition.hosting\\7.0.0\\system.composition.hosting.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.composition.runtime\\7.0.0\\system.composition.runtime.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.composition.typedparts\\7.0.0\\system.composition.typedparts.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.configuration.configurationmanager\\8.0.0\\system.configuration.configurationmanager.8.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.diagnostics.diagnosticsource\\8.0.1\\system.diagnostics.diagnosticsource.8.0.1.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.diagnostics.eventlog\\8.0.0\\system.diagnostics.eventlog.8.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.io.pipelines\\7.0.0\\system.io.pipelines.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.reflection.metadata\\7.0.0\\system.reflection.metadata.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.runtime.loader\\4.3.0\\system.runtime.loader.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.security.cryptography.protecteddata\\8.0.0\\system.security.cryptography.protecteddata.8.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.security.permissions\\8.0.0\\system.security.permissions.8.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.text.encoding.codepages\\8.0.0\\system.text.encoding.codepages.8.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.text.json\\9.0.0\\system.text.json.9.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.threading.channels\\7.0.0\\system.threading.channels.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.4\\system.threading.tasks.extensions.4.5.4.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\system.windows.extensions\\8.0.0\\system.windows.extensions.8.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\zstdsharp.port\\0.8.0\\zstdsharp.port.0.8.0.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.netcore.app.ref\\9.0.10\\microsoft.netcore.app.ref.9.0.10.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.windowsdesktop.app.ref\\9.0.10\\microsoft.windowsdesktop.app.ref.9.0.10.nupkg.sha512",
|
||||
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.aspnetcore.app.ref\\9.0.10\\microsoft.aspnetcore.app.ref.9.0.10.nupkg.sha512"
|
||||
],
|
||||
"logs": []
|
||||
}
|
||||
Reference in New Issue
Block a user