Merge pull request 'feature-nxdev' (#9) from feature-nxdev into main

Reviewed-on: #9
This commit is contained in:
西街长安 2025-10-18 14:08:31 +08:00
commit ca9da60832
46 changed files with 1336 additions and 847 deletions

3
backend/IM_API/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
bin/
obj/
.vs/

Binary file not shown.

View File

@ -1,12 +0,0 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\",
"Documents": [],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": []
}
]
}

View File

@ -1,12 +0,0 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\",
"Documents": [],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": []
}
]
}

View File

@ -10,7 +10,16 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.21">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.21">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.22.1" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.3" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
</ItemGroup>

View File

@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("admins")]
[Index("RoleId", Name = "RoleId")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Admin
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 用户名
/// </summary>
[StringLength(50)]
public string Username { get; set; } = null!;
/// <summary>
/// 密码
/// </summary>
[StringLength(50)]
public string Password { get; set; } = null!;
/// <summary>
/// 角色
/// </summary>
[Column(TypeName = "int(11)")]
public int RoleId { get; set; }
/// <summary>
/// 状态0:正常2封禁
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte State { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
/// <summary>
/// 更新时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Updated { get; set; }
[ForeignKey("RoleId")]
[InverseProperty("Admins")]
public virtual Role Role { get; set; } = null!;
}

View File

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("conversations")]
[Index("Userid", Name = "Userid")]
[Index("LastMessageId", Name = "lastMessageId")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Conversation
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 用户
/// </summary>
[Column(TypeName = "int(11)")]
public int Userid { get; set; }
/// <summary>
/// 对方ID群聊为群聊ID单聊为单聊ID
/// </summary>
[Column(TypeName = "int(11)")]
public int Targetid { get; set; }
/// <summary>
/// 消息类型同Messages.MsgType
/// </summary>
[Column(TypeName = "int(11)")]
public int MsgType { get; set; }
/// <summary>
/// 最后一条消息ID
/// </summary>
[Column("lastMessageId", TypeName = "int(11)")]
public int LastMessageId { get; set; }
/// <summary>
/// 未读消息数
/// </summary>
[Column("unreadCount", TypeName = "int(11)")]
public int UnreadCount { get; set; }
[ForeignKey("LastMessageId")]
[InverseProperty("Conversations")]
public virtual Message LastMessage { get; set; } = null!;
[ForeignKey("Userid")]
[InverseProperty("Conversations")]
public virtual User User { get; set; } = null!;
}

View File

@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("devices")]
[Index("Userid", Name = "Userid")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Device
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 设备所属用户
/// </summary>
[Column(TypeName = "int(11)")]
public int Userid { get; set; }
/// <summary>
/// 设备类型(
/// 0:Android,1:Ios,2:PC,3Pad,4:未知)
/// </summary>
[Column("DType", TypeName = "tinyint(4)")]
public sbyte Dtype { get; set; }
/// <summary>
/// 最后一次登录
/// </summary>
[Column(TypeName = "datetime")]
public DateTime LastLogin { get; set; }
[ForeignKey("Userid")]
[InverseProperty("Devices")]
public virtual User User { get; set; } = null!;
}

View File

@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("files")]
[Index("Messageld", Name = "Messageld")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class File
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 文件名
/// </summary>
[StringLength(50)]
public string Name { get; set; } = null!;
/// <summary>
/// 文件储存URL
/// </summary>
[Column("URL")]
[StringLength(100)]
public string Url { get; set; } = null!;
/// <summary>
/// 文件大小单位KB
/// </summary>
[Column(TypeName = "int(11)")]
public int Size { get; set; }
/// <summary>
/// 文件类型
/// </summary>
[StringLength(10)]
public string Type { get; set; } = null!;
/// <summary>
/// 关联消息ID
/// </summary>
[Column(TypeName = "int(11)")]
public int Messageld { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
[ForeignKey("Messageld")]
[InverseProperty("Files")]
public virtual Message MessageldNavigation { get; set; } = null!;
}

View File

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("friends")]
[Index("Id", Name = "ID")]
[Index("Userld", "Friendld", Name = "Userld")]
[Index("Friendld", Name = "用户2id")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Friend
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 用户ID
/// </summary>
[Column(TypeName = "int(11)")]
public int Userld { get; set; }
/// <summary>
/// 用户2ID
/// </summary>
[Column(TypeName = "int(11)")]
public int Friendld { get; set; }
/// <summary>
/// 当前好友关系状态
/// 0待通过,1已添加,2已拒绝,3已拉黑
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte Status { get; set; }
/// <summary>
/// 好友关系创建时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
[ForeignKey("Friendld")]
[InverseProperty("FriendFriendldNavigations")]
public virtual User FriendldNavigation { get; set; } = null!;
[ForeignKey("Userld")]
[InverseProperty("FriendUserldNavigations")]
public virtual User UserldNavigation { get; set; } = null!;
}

View File

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("friendrequest")]
[Index("RequestUser", Name = "RequestUser")]
[Index("ResponseUser", Name = "ResponseUser")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Friendrequest
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 申请人
/// </summary>
[Column(TypeName = "int(11)")]
public int RequestUser { get; set; }
/// <summary>
/// 被申请人
/// </summary>
[Column(TypeName = "int(11)")]
public int ResponseUser { get; set; }
/// <summary>
/// 申请时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
/// <summary>
/// 申请附言
/// </summary>
[Column(TypeName = "text")]
public string? Description { get; set; }
/// <summary>
/// 申请状态0待通过,1:拒绝,2:同意,3拉黑
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte State { get; set; }
[ForeignKey("RequestUser")]
[InverseProperty("FriendrequestRequestUserNavigations")]
public virtual User RequestUserNavigation { get; set; } = null!;
[ForeignKey("ResponseUser")]
[InverseProperty("FriendrequestResponseUserNavigations")]
public virtual User ResponseUserNavigation { get; set; } = null!;
}

View File

@ -0,0 +1,73 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("groups")]
[Index("GroupMaster", Name = "GroupMaster")]
[Index("Id", Name = "ID")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Group
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 群聊名称
/// </summary>
[StringLength(20)]
public string Name { get; set; } = null!;
/// <summary>
/// 群主
/// </summary>
[Column(TypeName = "int(11)")]
public int GroupMaster { get; set; }
/// <summary>
/// 群权限
/// 0需管理员同意,1任意人可加群,2不允许任何人加入
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte Auhority { get; set; }
/// <summary>
/// 全员禁言0允许发言2全员禁言
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte AllMembersBanned { get; set; }
/// <summary>
/// 群聊状态
/// (1正常,2封禁)
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte Status { get; set; }
/// <summary>
/// 群公告
/// </summary>
[Column(TypeName = "text")]
public string? Announcement { get; set; }
/// <summary>
/// 群聊创建时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
[ForeignKey("GroupMaster")]
[InverseProperty("Groups")]
public virtual User GroupMasterNavigation { get; set; } = null!;
[InverseProperty("Group")]
public virtual ICollection<Groupinvite> Groupinvites { get; set; } = new List<Groupinvite>();
[InverseProperty("Group")]
public virtual ICollection<Grouprequest> Grouprequests { get; set; } = new List<Grouprequest>();
}

View File

@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("groupinvite")]
[Index("GroupId", Name = "GroupId")]
[Index("InviteUser", Name = "InviteUser")]
[Index("InvitedUser", Name = "InvitedUser")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Groupinvite
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 群聊编号
/// </summary>
[Column(TypeName = "int(11)")]
public int GroupId { get; set; }
/// <summary>
/// 被邀请用户
/// </summary>
[Column(TypeName = "int(11)")]
public int? InvitedUser { get; set; }
/// <summary>
/// 邀请用户
/// </summary>
[Column(TypeName = "int(11)")]
public int? InviteUser { get; set; }
/// <summary>
/// 当前状态(0:待被邀请人同意
/// 1:被邀请人已同意)
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte? State { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime? Created { get; set; }
[ForeignKey("GroupId")]
[InverseProperty("Groupinvites")]
public virtual Group Group { get; set; } = null!;
[ForeignKey("InviteUser")]
[InverseProperty("GroupinviteInviteUserNavigations")]
public virtual User? InviteUserNavigation { get; set; }
[ForeignKey("InvitedUser")]
[InverseProperty("GroupinviteInvitedUserNavigations")]
public virtual User? InvitedUserNavigation { get; set; }
}

View File

@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("groupmember")]
[Index("Groupld", Name = "Groupld")]
[Index("Id", Name = "ID")]
[Index("Userld", Name = "Userld")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Groupmember
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 用户编号
/// </summary>
[Column(TypeName = "int(11)")]
public int Userld { get; set; }
/// <summary>
/// 群聊编号
/// </summary>
[Column(TypeName = "int(11)")]
public int Groupld { get; set; }
/// <summary>
/// 成员角色0:普通成员,1:管理员,2:群主)
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte Role { get; set; }
/// <summary>
/// 加入群聊时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
[ForeignKey("Groupld")]
[InverseProperty("GroupmemberGroupldNavigations")]
public virtual User GroupldNavigation { get; set; } = null!;
[ForeignKey("Userld")]
[InverseProperty("GroupmemberUserldNavigations")]
public virtual User UserldNavigation { get; set; } = null!;
}

View File

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("grouprequest")]
[Index("GroupId", Name = "GroupId")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Grouprequest
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 群聊编号
///
/// </summary>
[Column(TypeName = "int(11)")]
public int GroupId { get; set; }
/// <summary>
/// 申请人
/// </summary>
[Column(TypeName = "int(11)")]
public int UserId { get; set; }
/// <summary>
/// 申请状态0:待管理员同意,1:已拒绝,2已同意
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte State { get; set; }
/// <summary>
/// 入群附言
/// </summary>
[Column(TypeName = "text")]
public string Description { get; set; } = null!;
/// <summary>
/// 创建时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
[ForeignKey("GroupId")]
[InverseProperty("Grouprequests")]
public virtual Group Group { get; set; } = null!;
[ForeignKey("GroupId")]
[InverseProperty("Grouprequests")]
public virtual User GroupNavigation { get; set; } = null!;
}

View File

@ -0,0 +1,343 @@
using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
using Pomelo.EntityFrameworkCore.MySql.Scaffolding.Internal;
namespace IM_API.Models;
public partial class IMDbContext : DbContext
{
public IMDbContext()
{
}
public IMDbContext(DbContextOptions<IMDbContext> options)
: base(options)
{
}
public virtual DbSet<Admin> Admins { get; set; }
public virtual DbSet<Conversation> Conversations { get; set; }
public virtual DbSet<Device> Devices { get; set; }
public virtual DbSet<File> Files { get; set; }
public virtual DbSet<Friend> Friends { get; set; }
public virtual DbSet<Friendrequest> Friendrequests { get; set; }
public virtual DbSet<Group> Groups { get; set; }
public virtual DbSet<Groupinvite> Groupinvites { get; set; }
public virtual DbSet<Groupmember> Groupmembers { get; set; }
public virtual DbSet<Grouprequest> Grouprequests { get; set; }
public virtual DbSet<LoginLog> LoginLogs { get; set; }
public virtual DbSet<Message> Messages { get; set; }
public virtual DbSet<Notification> Notifications { get; set; }
public virtual DbSet<Permission> Permissions { get; set; }
public virtual DbSet<Permissionarole> Permissionaroles { get; set; }
public virtual DbSet<Role> Roles { get; set; }
public virtual DbSet<User> Users { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263.
=> optionsBuilder.UseMySql("server=192.168.5.100;port=3306;database=IM;user=root;password=768788Dyw", Microsoft.EntityFrameworkCore.ServerVersion.Parse("5.7.44-mysql"));
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.UseCollation("latin1_swedish_ci")
.HasCharSet("latin1");
modelBuilder.Entity<Admin>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Created).HasComment("创建时间 ");
entity.Property(e => e.Password).HasComment("密码");
entity.Property(e => e.RoleId).HasComment("角色");
entity.Property(e => e.State).HasComment("状态0:正常2封禁 ");
entity.Property(e => e.Updated).HasComment("更新时间 ");
entity.Property(e => e.Username).HasComment("用户名");
entity.HasOne(d => d.Role).WithMany(p => p.Admins)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("admins_ibfk_1");
});
modelBuilder.Entity<Conversation>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.LastMessageId).HasComment("最后一条消息ID ");
entity.Property(e => e.MsgType).HasComment("消息类型同Messages.MsgType ");
entity.Property(e => e.Targetid).HasComment("对方ID群聊为群聊ID单聊为单聊ID ");
entity.Property(e => e.UnreadCount).HasComment("未读消息数 ");
entity.Property(e => e.Userid).HasComment("用户");
entity.HasOne(d => d.LastMessage).WithMany(p => p.Conversations)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("conversations_ibfk_2");
entity.HasOne(d => d.User).WithMany(p => p.Conversations)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("conversations_ibfk_1");
});
modelBuilder.Entity<Device>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Dtype).HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3Pad,4:未知)");
entity.Property(e => e.LastLogin).HasComment("最后一次登录 ");
entity.Property(e => e.Userid).HasComment("设备所属用户 ");
entity.HasOne(d => d.User).WithMany(p => p.Devices)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("devices_ibfk_1");
});
modelBuilder.Entity<File>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Created).HasComment("创建时间 ");
entity.Property(e => e.Messageld).HasComment("关联消息ID ");
entity.Property(e => e.Name).HasComment("文件名 ");
entity.Property(e => e.Size).HasComment("文件大小单位KB ");
entity.Property(e => e.Type).HasComment("文件类型 ");
entity.Property(e => e.Url).HasComment("文件储存URL ");
entity.HasOne(d => d.MessageldNavigation).WithMany(p => p.Files)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("files_ibfk_1");
});
modelBuilder.Entity<Friend>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Created).HasComment("好友关系创建时间");
entity.Property(e => e.Friendld).HasComment("用户2ID");
entity.Property(e => e.Status).HasComment("当前好友关系状态\r\n0待通过,1已添加,2已拒绝,3已拉黑");
entity.Property(e => e.Userld).HasComment("用户ID");
entity.HasOne(d => d.FriendldNavigation).WithMany(p => p.FriendFriendldNavigations)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("用户2id");
entity.HasOne(d => d.UserldNavigation).WithMany(p => p.FriendUserldNavigations)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("用户id");
});
modelBuilder.Entity<Friendrequest>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Created).HasComment("申请时间 ");
entity.Property(e => e.Description).HasComment("申请附言 ");
entity.Property(e => e.RequestUser).HasComment("申请人 ");
entity.Property(e => e.ResponseUser).HasComment("被申请人 ");
entity.Property(e => e.State).HasComment("申请状态0待通过,1:拒绝,2:同意,3拉黑 ");
entity.HasOne(d => d.RequestUserNavigation).WithMany(p => p.FriendrequestRequestUserNavigations)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("friendrequest_ibfk_1");
entity.HasOne(d => d.ResponseUserNavigation).WithMany(p => p.FriendrequestResponseUserNavigations)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("friendrequest_ibfk_2");
});
modelBuilder.Entity<Group>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.AllMembersBanned).HasComment("全员禁言0允许发言2全员禁言");
entity.Property(e => e.Announcement).HasComment("群公告");
entity.Property(e => e.Auhority).HasComment("群权限\r\n0需管理员同意,1任意人可加群,2不允许任何人加入");
entity.Property(e => e.Created).HasComment("群聊创建时间");
entity.Property(e => e.GroupMaster).HasComment("群主");
entity.Property(e => e.Name).HasComment("群聊名称");
entity.Property(e => e.Status).HasComment("群聊状态\r\n(1正常,2封禁)");
entity.HasOne(d => d.GroupMasterNavigation).WithMany(p => p.Groups)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("groups_ibfk_1");
});
modelBuilder.Entity<Groupinvite>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Created).HasComment("创建时间");
entity.Property(e => e.GroupId).HasComment("群聊编号");
entity.Property(e => e.InviteUser).HasComment("邀请用户");
entity.Property(e => e.InvitedUser).HasComment("被邀请用户");
entity.Property(e => e.State).HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)");
entity.HasOne(d => d.Group).WithMany(p => p.Groupinvites)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("groupinvite_ibfk_2");
entity.HasOne(d => d.InviteUserNavigation).WithMany(p => p.GroupinviteInviteUserNavigations).HasConstraintName("groupinvite_ibfk_1");
entity.HasOne(d => d.InvitedUserNavigation).WithMany(p => p.GroupinviteInvitedUserNavigations).HasConstraintName("groupinvite_ibfk_3");
});
modelBuilder.Entity<Groupmember>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Created)
.HasDefaultValueSql("'1970-01-01 00:00:00'")
.HasComment("加入群聊时间");
entity.Property(e => e.Groupld).HasComment("群聊编号");
entity.Property(e => e.Role).HasComment("成员角色0:普通成员,1:管理员,2:群主)");
entity.Property(e => e.Userld).HasComment("用户编号");
entity.HasOne(d => d.GroupldNavigation).WithMany(p => p.GroupmemberGroupldNavigations)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("groupmember_ibfk_2");
entity.HasOne(d => d.UserldNavigation).WithMany(p => p.GroupmemberUserldNavigations)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("groupmember_ibfk_1");
});
modelBuilder.Entity<Grouprequest>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Created).HasComment("创建时间");
entity.Property(e => e.Description).HasComment("入群附言");
entity.Property(e => e.GroupId).HasComment("群聊编号\r\n");
entity.Property(e => e.State).HasComment("申请状态0:待管理员同意,1:已拒绝,2已同意");
entity.Property(e => e.UserId).HasComment("申请人 ");
entity.HasOne(d => d.Group).WithMany(p => p.Grouprequests)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("grouprequest_ibfk_1");
entity.HasOne(d => d.GroupNavigation).WithMany(p => p.Grouprequests)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("grouprequest_ibfk_2");
});
modelBuilder.Entity<LoginLog>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Dtype).HasComment("设备类型通Devices/DType ");
entity.Property(e => e.Logined).HasComment("登录时间 ");
entity.Property(e => e.State).HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) ");
entity.Property(e => e.Userld).HasComment("登录用户 ");
entity.HasOne(d => d.UserldNavigation).WithMany(p => p.LoginLogs)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("login_log_ibfk_1");
});
modelBuilder.Entity<Message>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.ChatType).HasComment("聊天类型\r\n0私聊,1群聊");
entity.Property(e => e.Content).HasComment("消息内容 ");
entity.Property(e => e.Created).HasComment("发送时间 ");
entity.Property(e => e.MsgType).HasComment("消息类型\r\n(0:文本,1图片,2语音,3视频,4文件5语音聊天,6视频聊天)");
entity.Property(e => e.Recipient).HasComment("接收者私聊为用户ID群聊为群聊ID ");
entity.Property(e => e.Sender).HasComment("发送者 ");
entity.Property(e => e.State).HasComment("消息状态(0:已发送,1:已撤回) ");
entity.HasOne(d => d.SenderNavigation).WithMany(p => p.Messages)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("messages_ibfk_1");
});
modelBuilder.Entity<Notification>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Content).HasComment("通知内容");
entity.Property(e => e.Created).HasComment("创建时间");
entity.Property(e => e.Ntype).HasComment("通知类型(0文本)");
entity.Property(e => e.Title).HasComment("通知标题");
entity.Property(e => e.Userld).HasComment("接收人(为空为全体通知)");
entity.HasOne(d => d.UserldNavigation).WithMany(p => p.Notifications)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("notifications_ibfk_1");
});
modelBuilder.Entity<Permission>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Code).HasComment("权限编码 ");
entity.Property(e => e.Created).HasComment("创建时间 ");
entity.Property(e => e.Name).HasComment("权限名称 ");
entity.Property(e => e.Ptype).HasComment("权限类型(0:增,1:删,2:改,3:查) ");
});
modelBuilder.Entity<Permissionarole>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Id).ValueGeneratedNever();
entity.Property(e => e.Permissionld).HasComment("权限 ");
entity.Property(e => e.Roleld).HasComment("角色 ");
entity.HasOne(d => d.PermissionldNavigation).WithMany(p => p.Permissionaroles)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("permissionarole_ibfk_2");
entity.HasOne(d => d.RoleldNavigation).WithMany(p => p.Permissionaroles)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("permissionarole_ibfk_1");
});
modelBuilder.Entity<Role>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Created).HasComment("创建时间 ");
entity.Property(e => e.Description).HasComment("角色描述 ");
entity.Property(e => e.Name).HasComment("角色名称 ");
});
modelBuilder.Entity<User>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.Property(e => e.Created)
.HasDefaultValueSql("'1970-01-01 00:00:00'")
.HasComment("创建时间");
entity.Property(e => e.IsDeleted).HasComment("软删除标识\r\n0账号正常\r\n1账号已删除");
entity.Property(e => e.NickName).HasComment("用户昵称");
entity.Property(e => e.OlineStatus).HasComment("用户在线状态\r\n0默认不在线\r\n1在线");
entity.Property(e => e.Password).HasComment("密码");
entity.Property(e => e.Status)
.HasDefaultValueSql("'1'")
.HasComment("账户状态\r\n(0未激活,1正常,2封禁)");
entity.Property(e => e.Updated).HasComment("修改时间");
entity.Property(e => e.Username).HasComment("唯一用户名");
});
OnModelCreatingPartial(modelBuilder);
}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}

View File

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("login_log")]
[Index("Userld", Name = "Userld")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class LoginLog
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 设备类型通Devices/DType
/// </summary>
[Column("DType", TypeName = "tinyint(4)")]
public sbyte Dtype { get; set; }
/// <summary>
/// 登录时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Logined { get; set; }
/// <summary>
/// 登录用户
/// </summary>
[Column(TypeName = "int(11)")]
public int Userld { get; set; }
/// <summary>
/// 登录状态(0:登陆成功,1:未验证,2:已被拒绝)
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte State { get; set; }
[ForeignKey("Userld")]
[InverseProperty("LoginLogs")]
public virtual User UserldNavigation { get; set; } = null!;
}

View File

@ -0,0 +1,72 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("messages")]
[Index("Sender", Name = "Sender")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Message
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 聊天类型
/// 0私聊,1群聊
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte ChatType { get; set; }
/// <summary>
/// 消息类型
/// (0:文本,1图片,2语音,3视频,4文件5语音聊天,6视频聊天)
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte MsgType { get; set; }
/// <summary>
/// 消息内容
/// </summary>
[Column(TypeName = "text")]
public string Content { get; set; } = null!;
/// <summary>
/// 发送者
/// </summary>
[Column(TypeName = "int(11)")]
public int Sender { get; set; }
/// <summary>
/// 接收者私聊为用户ID群聊为群聊ID
/// </summary>
[Column(TypeName = "int(11)")]
public int Recipient { get; set; }
/// <summary>
/// 消息状态(0:已发送,1:已撤回)
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte State { get; set; }
/// <summary>
/// 发送时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
[InverseProperty("LastMessage")]
public virtual ICollection<Conversation> Conversations { get; set; } = new List<Conversation>();
[InverseProperty("MessageldNavigation")]
public virtual ICollection<File> Files { get; set; } = new List<File>();
[ForeignKey("Sender")]
[InverseProperty("Messages")]
public virtual User SenderNavigation { get; set; } = null!;
}

View File

@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("notifications")]
[Index("Userld", Name = "Userld")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Notification
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 接收人(为空为全体通知)
/// </summary>
[Column(TypeName = "int(11)")]
public int Userld { get; set; }
/// <summary>
/// 通知类型(0文本)
/// </summary>
[Column("NType", TypeName = "tinyint(4)")]
public sbyte Ntype { get; set; }
/// <summary>
/// 通知标题
/// </summary>
[StringLength(40)]
public string Title { get; set; } = null!;
/// <summary>
/// 通知内容
/// </summary>
[Column(TypeName = "text")]
public string Content { get; set; } = null!;
/// <summary>
/// 创建时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
[ForeignKey("Userld")]
[InverseProperty("Notifications")]
public virtual User UserldNavigation { get; set; } = null!;
}

View File

@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("permissions")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Permission
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 权限类型(0:增,1:删,2:改,3:查)
/// </summary>
[Column("PType", TypeName = "int(11)")]
public int Ptype { get; set; }
/// <summary>
/// 权限名称
/// </summary>
[StringLength(50)]
public string Name { get; set; } = null!;
/// <summary>
/// 权限编码
/// </summary>
[Column(TypeName = "int(11)")]
public int Code { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
[InverseProperty("PermissionldNavigation")]
public virtual ICollection<Permissionarole> Permissionaroles { get; set; } = new List<Permissionarole>();
}

View File

@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("permissionarole")]
[Index("Permissionld", Name = "Permissionld")]
[Index("Roleld", Name = "Roleld")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Permissionarole
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 角色
/// </summary>
[Column(TypeName = "int(11)")]
public int Roleld { get; set; }
/// <summary>
/// 权限
/// </summary>
[Column(TypeName = "int(11)")]
public int Permissionld { get; set; }
[ForeignKey("Permissionld")]
[InverseProperty("Permissionaroles")]
public virtual Permission PermissionldNavigation { get; set; } = null!;
[ForeignKey("Roleld")]
[InverseProperty("Permissionaroles")]
public virtual Role RoleldNavigation { get; set; } = null!;
}

View File

@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("roles")]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class Role
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 角色名称
/// </summary>
[StringLength(20)]
public string Name { get; set; } = null!;
/// <summary>
/// 角色描述
/// </summary>
[Column(TypeName = "text")]
public string Description { get; set; } = null!;
/// <summary>
/// 创建时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
[InverseProperty("Role")]
public virtual ICollection<Admin> Admins { get; set; } = new List<Admin>();
[InverseProperty("RoleldNavigation")]
public virtual ICollection<Permissionarole> Permissionaroles { get; set; } = new List<Permissionarole>();
}

View File

@ -0,0 +1,117 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IM_API.Models;
[Table("users")]
[Index("Id", Name = "ID")]
[Index("Username", Name = "Username", IsUnique = true)]
[MySqlCharSet("utf8mb4")]
[MySqlCollation("utf8mb4_general_ci")]
public partial class User
{
[Key]
[Column("ID", TypeName = "int(11)")]
public int Id { get; set; }
/// <summary>
/// 唯一用户名
/// </summary>
[StringLength(50)]
public string Username { get; set; } = null!;
/// <summary>
/// 密码
/// </summary>
[StringLength(50)]
public string Password { get; set; } = null!;
/// <summary>
/// 用户昵称
/// </summary>
[StringLength(50)]
public string NickName { get; set; } = null!;
/// <summary>
/// 用户在线状态
/// 0默认不在线
/// 1在线
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte OlineStatus { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime Created { get; set; }
/// <summary>
/// 修改时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime? Updated { get; set; }
/// <summary>
/// 账户状态
/// (0未激活,1正常,2封禁)
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte Status { get; set; }
/// <summary>
/// 软删除标识
/// 0账号正常
/// 1账号已删除
/// </summary>
[Column(TypeName = "tinyint(4)")]
public sbyte IsDeleted { get; set; }
[InverseProperty("User")]
public virtual ICollection<Conversation> Conversations { get; set; } = new List<Conversation>();
[InverseProperty("User")]
public virtual ICollection<Device> Devices { get; set; } = new List<Device>();
[InverseProperty("FriendldNavigation")]
public virtual ICollection<Friend> FriendFriendldNavigations { get; set; } = new List<Friend>();
[InverseProperty("UserldNavigation")]
public virtual ICollection<Friend> FriendUserldNavigations { get; set; } = new List<Friend>();
[InverseProperty("RequestUserNavigation")]
public virtual ICollection<Friendrequest> FriendrequestRequestUserNavigations { get; set; } = new List<Friendrequest>();
[InverseProperty("ResponseUserNavigation")]
public virtual ICollection<Friendrequest> FriendrequestResponseUserNavigations { get; set; } = new List<Friendrequest>();
[InverseProperty("InviteUserNavigation")]
public virtual ICollection<Groupinvite> GroupinviteInviteUserNavigations { get; set; } = new List<Groupinvite>();
[InverseProperty("InvitedUserNavigation")]
public virtual ICollection<Groupinvite> GroupinviteInvitedUserNavigations { get; set; } = new List<Groupinvite>();
[InverseProperty("GroupldNavigation")]
public virtual ICollection<Groupmember> GroupmemberGroupldNavigations { get; set; } = new List<Groupmember>();
[InverseProperty("UserldNavigation")]
public virtual ICollection<Groupmember> GroupmemberUserldNavigations { get; set; } = new List<Groupmember>();
[InverseProperty("GroupNavigation")]
public virtual ICollection<Grouprequest> Grouprequests { get; set; } = new List<Grouprequest>();
[InverseProperty("GroupMasterNavigation")]
public virtual ICollection<Group> Groups { get; set; } = new List<Group>();
[InverseProperty("UserldNavigation")]
public virtual ICollection<LoginLog> LoginLogs { get; set; } = new List<LoginLog>();
[InverseProperty("SenderNavigation")]
public virtual ICollection<Message> Messages { get; set; } = new List<Message>();
[InverseProperty("UserldNavigation")]
public virtual ICollection<Notification> Notifications { get; set; } = new List<Notification>();
}

View File

@ -1,4 +0,0 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]

View File

@ -1,24 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute("3f396849-59bd-435f-a0cb-351ec0559e70")]
[assembly: System.Reflection.AssemblyCompanyAttribute("IM_API")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5ac2a859f072f36c9a26b6a0ae100926ce361737")]
[assembly: System.Reflection.AssemblyProductAttribute("IM_API")]
[assembly: System.Reflection.AssemblyTitleAttribute("IM_API")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@ -1 +0,0 @@
ecdfe90ee262639f8d7c4eb34d36c17cf3984ff8a0ebd0c562bbe56091dd7da2

View File

@ -1,21 +0,0 @@
is_global = true
build_property.TargetFramework = net8.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb = true
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = IM_API
build_property.RootNamespace = IM_API
build_property.ProjectDir = C:\Users\nanxun\Documents\IM\backend\IM_API\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.RazorLangVersion = 8.0
build_property.SupportLocalizedComponentNames =
build_property.GenerateRazorMetadataSourceChecksumAttributes =
build_property.MSBuildProjectDirectory = C:\Users\nanxun\Documents\IM\backend\IM_API
build_property._RazorSourceGeneratorDebug =
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =

View File

@ -1,17 +0,0 @@
// <auto-generated/>
global using global::Microsoft.AspNetCore.Builder;
global using global::Microsoft.AspNetCore.Hosting;
global using global::Microsoft.AspNetCore.Http;
global using global::Microsoft.AspNetCore.Routing;
global using global::Microsoft.Extensions.Configuration;
global using global::Microsoft.Extensions.DependencyInjection;
global using global::Microsoft.Extensions.Hosting;
global using global::Microsoft.Extensions.Logging;
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.Net.Http.Json;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@ -1 +0,0 @@
{"GlobalPropertiesHash":"CTgS+cWYTbcaEAEp0gp2B6cHTV0srRdQzYydcF2wY5A=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["o/KWD0aNxlAqF51Di\u002BQMhbth5dV2eE0GsWviN/A7C5M=","1Co80OYN1AHERXdYjGVBC4OME7Ab4Ta6mjxvn8WvY5M="],"CachedAssets":{},"CachedCopyCandidates":{}}

View File

@ -1,87 +0,0 @@
{
"format": 1,
"restore": {
"C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj": {}
},
"projects": {
"C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj",
"projectName": "IM_API",
"projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj",
"packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\",
"outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\nanxun\\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"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "9.0.300"
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"Microsoft.VisualStudio.Azure.Containers.Tools.Targets": {
"target": "Package",
"version": "[1.22.1, )"
},
"Swashbuckle.AspNetCore": {
"target": "Package",
"version": "[6.6.2, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.AspNetCore.App": {
"privateAssets": "none"
},
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<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\nanxun\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.14.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\nanxun\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.props')" />
<Import Project="$(NuGetPackageRoot)swashbuckle.aspnetcore\6.6.2\build\Swashbuckle.AspNetCore.props" Condition="Exists('$(NuGetPackageRoot)swashbuckle.aspnetcore\6.6.2\build\Swashbuckle.AspNetCore.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.visualstudio.azure.containers.tools.targets\1.22.1\build\Microsoft.VisualStudio.Azure.Containers.Tools.Targets.props" Condition="Exists('$(NuGetPackageRoot)microsoft.visualstudio.azure.containers.tools.targets\1.22.1\build\Microsoft.VisualStudio.Azure.Containers.Tools.Targets.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgMicrosoft_Extensions_ApiDescription_Server Condition=" '$(PkgMicrosoft_Extensions_ApiDescription_Server)' == '' ">C:\Users\nanxun\.nuget\packages\microsoft.extensions.apidescription.server\6.0.5</PkgMicrosoft_Extensions_ApiDescription_Server>
<PkgMicrosoft_VisualStudio_Azure_Containers_Tools_Targets Condition=" '$(PkgMicrosoft_VisualStudio_Azure_Containers_Tools_Targets)' == '' ">C:\Users\nanxun\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.22.1</PkgMicrosoft_VisualStudio_Azure_Containers_Tools_Targets>
</PropertyGroup>
</Project>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.visualstudio.azure.containers.tools.targets\1.22.1\build\Microsoft.VisualStudio.Azure.Containers.Tools.Targets.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.visualstudio.azure.containers.tools.targets\1.22.1\build\Microsoft.VisualStudio.Azure.Containers.Tools.Targets.targets')" />
</ImportGroup>
</Project>

View File

@ -1,620 +0,0 @@
{
"version": 3,
"targets": {
"net8.0": {
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {
"type": "package",
"build": {
"build/Microsoft.Extensions.ApiDescription.Server.props": {},
"build/Microsoft.Extensions.ApiDescription.Server.targets": {}
},
"buildMultiTargeting": {
"buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props": {},
"buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets": {}
}
},
"Microsoft.OpenApi/1.6.14": {
"type": "package",
"compile": {
"lib/netstandard2.0/Microsoft.OpenApi.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/netstandard2.0/Microsoft.OpenApi.dll": {
"related": ".pdb;.xml"
}
}
},
"Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": {
"type": "package",
"build": {
"build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.props": {},
"build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.targets": {}
}
},
"Swashbuckle.AspNetCore/6.6.2": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.ApiDescription.Server": "6.0.5",
"Swashbuckle.AspNetCore.Swagger": "6.6.2",
"Swashbuckle.AspNetCore.SwaggerGen": "6.6.2",
"Swashbuckle.AspNetCore.SwaggerUI": "6.6.2"
},
"build": {
"build/Swashbuckle.AspNetCore.props": {}
}
},
"Swashbuckle.AspNetCore.Swagger/6.6.2": {
"type": "package",
"dependencies": {
"Microsoft.OpenApi": "1.6.14"
},
"compile": {
"lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": {
"related": ".pdb;.xml"
}
},
"frameworkReferences": [
"Microsoft.AspNetCore.App"
]
},
"Swashbuckle.AspNetCore.SwaggerGen/6.6.2": {
"type": "package",
"dependencies": {
"Swashbuckle.AspNetCore.Swagger": "6.6.2"
},
"compile": {
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
"related": ".pdb;.xml"
}
}
},
"Swashbuckle.AspNetCore.SwaggerUI/6.6.2": {
"type": "package",
"compile": {
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
"related": ".pdb;.xml"
}
},
"frameworkReferences": [
"Microsoft.AspNetCore.App"
]
}
}
},
"libraries": {
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {
"sha512": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==",
"type": "package",
"path": "microsoft.extensions.apidescription.server/6.0.5",
"hasTools": true,
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"build/Microsoft.Extensions.ApiDescription.Server.props",
"build/Microsoft.Extensions.ApiDescription.Server.targets",
"buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props",
"buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets",
"microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512",
"microsoft.extensions.apidescription.server.nuspec",
"tools/Newtonsoft.Json.dll",
"tools/dotnet-getdocument.deps.json",
"tools/dotnet-getdocument.dll",
"tools/dotnet-getdocument.runtimeconfig.json",
"tools/net461-x86/GetDocument.Insider.exe",
"tools/net461-x86/GetDocument.Insider.exe.config",
"tools/net461-x86/Microsoft.Win32.Primitives.dll",
"tools/net461-x86/System.AppContext.dll",
"tools/net461-x86/System.Buffers.dll",
"tools/net461-x86/System.Collections.Concurrent.dll",
"tools/net461-x86/System.Collections.NonGeneric.dll",
"tools/net461-x86/System.Collections.Specialized.dll",
"tools/net461-x86/System.Collections.dll",
"tools/net461-x86/System.ComponentModel.EventBasedAsync.dll",
"tools/net461-x86/System.ComponentModel.Primitives.dll",
"tools/net461-x86/System.ComponentModel.TypeConverter.dll",
"tools/net461-x86/System.ComponentModel.dll",
"tools/net461-x86/System.Console.dll",
"tools/net461-x86/System.Data.Common.dll",
"tools/net461-x86/System.Diagnostics.Contracts.dll",
"tools/net461-x86/System.Diagnostics.Debug.dll",
"tools/net461-x86/System.Diagnostics.DiagnosticSource.dll",
"tools/net461-x86/System.Diagnostics.FileVersionInfo.dll",
"tools/net461-x86/System.Diagnostics.Process.dll",
"tools/net461-x86/System.Diagnostics.StackTrace.dll",
"tools/net461-x86/System.Diagnostics.TextWriterTraceListener.dll",
"tools/net461-x86/System.Diagnostics.Tools.dll",
"tools/net461-x86/System.Diagnostics.TraceSource.dll",
"tools/net461-x86/System.Diagnostics.Tracing.dll",
"tools/net461-x86/System.Drawing.Primitives.dll",
"tools/net461-x86/System.Dynamic.Runtime.dll",
"tools/net461-x86/System.Globalization.Calendars.dll",
"tools/net461-x86/System.Globalization.Extensions.dll",
"tools/net461-x86/System.Globalization.dll",
"tools/net461-x86/System.IO.Compression.ZipFile.dll",
"tools/net461-x86/System.IO.Compression.dll",
"tools/net461-x86/System.IO.FileSystem.DriveInfo.dll",
"tools/net461-x86/System.IO.FileSystem.Primitives.dll",
"tools/net461-x86/System.IO.FileSystem.Watcher.dll",
"tools/net461-x86/System.IO.FileSystem.dll",
"tools/net461-x86/System.IO.IsolatedStorage.dll",
"tools/net461-x86/System.IO.MemoryMappedFiles.dll",
"tools/net461-x86/System.IO.Pipes.dll",
"tools/net461-x86/System.IO.UnmanagedMemoryStream.dll",
"tools/net461-x86/System.IO.dll",
"tools/net461-x86/System.Linq.Expressions.dll",
"tools/net461-x86/System.Linq.Parallel.dll",
"tools/net461-x86/System.Linq.Queryable.dll",
"tools/net461-x86/System.Linq.dll",
"tools/net461-x86/System.Memory.dll",
"tools/net461-x86/System.Net.Http.dll",
"tools/net461-x86/System.Net.NameResolution.dll",
"tools/net461-x86/System.Net.NetworkInformation.dll",
"tools/net461-x86/System.Net.Ping.dll",
"tools/net461-x86/System.Net.Primitives.dll",
"tools/net461-x86/System.Net.Requests.dll",
"tools/net461-x86/System.Net.Security.dll",
"tools/net461-x86/System.Net.Sockets.dll",
"tools/net461-x86/System.Net.WebHeaderCollection.dll",
"tools/net461-x86/System.Net.WebSockets.Client.dll",
"tools/net461-x86/System.Net.WebSockets.dll",
"tools/net461-x86/System.Numerics.Vectors.dll",
"tools/net461-x86/System.ObjectModel.dll",
"tools/net461-x86/System.Reflection.Extensions.dll",
"tools/net461-x86/System.Reflection.Primitives.dll",
"tools/net461-x86/System.Reflection.dll",
"tools/net461-x86/System.Resources.Reader.dll",
"tools/net461-x86/System.Resources.ResourceManager.dll",
"tools/net461-x86/System.Resources.Writer.dll",
"tools/net461-x86/System.Runtime.CompilerServices.Unsafe.dll",
"tools/net461-x86/System.Runtime.CompilerServices.VisualC.dll",
"tools/net461-x86/System.Runtime.Extensions.dll",
"tools/net461-x86/System.Runtime.Handles.dll",
"tools/net461-x86/System.Runtime.InteropServices.RuntimeInformation.dll",
"tools/net461-x86/System.Runtime.InteropServices.dll",
"tools/net461-x86/System.Runtime.Numerics.dll",
"tools/net461-x86/System.Runtime.Serialization.Formatters.dll",
"tools/net461-x86/System.Runtime.Serialization.Json.dll",
"tools/net461-x86/System.Runtime.Serialization.Primitives.dll",
"tools/net461-x86/System.Runtime.Serialization.Xml.dll",
"tools/net461-x86/System.Runtime.dll",
"tools/net461-x86/System.Security.Claims.dll",
"tools/net461-x86/System.Security.Cryptography.Algorithms.dll",
"tools/net461-x86/System.Security.Cryptography.Csp.dll",
"tools/net461-x86/System.Security.Cryptography.Encoding.dll",
"tools/net461-x86/System.Security.Cryptography.Primitives.dll",
"tools/net461-x86/System.Security.Cryptography.X509Certificates.dll",
"tools/net461-x86/System.Security.Principal.dll",
"tools/net461-x86/System.Security.SecureString.dll",
"tools/net461-x86/System.Text.Encoding.Extensions.dll",
"tools/net461-x86/System.Text.Encoding.dll",
"tools/net461-x86/System.Text.RegularExpressions.dll",
"tools/net461-x86/System.Threading.Overlapped.dll",
"tools/net461-x86/System.Threading.Tasks.Parallel.dll",
"tools/net461-x86/System.Threading.Tasks.dll",
"tools/net461-x86/System.Threading.Thread.dll",
"tools/net461-x86/System.Threading.ThreadPool.dll",
"tools/net461-x86/System.Threading.Timer.dll",
"tools/net461-x86/System.Threading.dll",
"tools/net461-x86/System.ValueTuple.dll",
"tools/net461-x86/System.Xml.ReaderWriter.dll",
"tools/net461-x86/System.Xml.XDocument.dll",
"tools/net461-x86/System.Xml.XPath.XDocument.dll",
"tools/net461-x86/System.Xml.XPath.dll",
"tools/net461-x86/System.Xml.XmlDocument.dll",
"tools/net461-x86/System.Xml.XmlSerializer.dll",
"tools/net461-x86/netstandard.dll",
"tools/net461/GetDocument.Insider.exe",
"tools/net461/GetDocument.Insider.exe.config",
"tools/net461/Microsoft.Win32.Primitives.dll",
"tools/net461/System.AppContext.dll",
"tools/net461/System.Buffers.dll",
"tools/net461/System.Collections.Concurrent.dll",
"tools/net461/System.Collections.NonGeneric.dll",
"tools/net461/System.Collections.Specialized.dll",
"tools/net461/System.Collections.dll",
"tools/net461/System.ComponentModel.EventBasedAsync.dll",
"tools/net461/System.ComponentModel.Primitives.dll",
"tools/net461/System.ComponentModel.TypeConverter.dll",
"tools/net461/System.ComponentModel.dll",
"tools/net461/System.Console.dll",
"tools/net461/System.Data.Common.dll",
"tools/net461/System.Diagnostics.Contracts.dll",
"tools/net461/System.Diagnostics.Debug.dll",
"tools/net461/System.Diagnostics.DiagnosticSource.dll",
"tools/net461/System.Diagnostics.FileVersionInfo.dll",
"tools/net461/System.Diagnostics.Process.dll",
"tools/net461/System.Diagnostics.StackTrace.dll",
"tools/net461/System.Diagnostics.TextWriterTraceListener.dll",
"tools/net461/System.Diagnostics.Tools.dll",
"tools/net461/System.Diagnostics.TraceSource.dll",
"tools/net461/System.Diagnostics.Tracing.dll",
"tools/net461/System.Drawing.Primitives.dll",
"tools/net461/System.Dynamic.Runtime.dll",
"tools/net461/System.Globalization.Calendars.dll",
"tools/net461/System.Globalization.Extensions.dll",
"tools/net461/System.Globalization.dll",
"tools/net461/System.IO.Compression.ZipFile.dll",
"tools/net461/System.IO.Compression.dll",
"tools/net461/System.IO.FileSystem.DriveInfo.dll",
"tools/net461/System.IO.FileSystem.Primitives.dll",
"tools/net461/System.IO.FileSystem.Watcher.dll",
"tools/net461/System.IO.FileSystem.dll",
"tools/net461/System.IO.IsolatedStorage.dll",
"tools/net461/System.IO.MemoryMappedFiles.dll",
"tools/net461/System.IO.Pipes.dll",
"tools/net461/System.IO.UnmanagedMemoryStream.dll",
"tools/net461/System.IO.dll",
"tools/net461/System.Linq.Expressions.dll",
"tools/net461/System.Linq.Parallel.dll",
"tools/net461/System.Linq.Queryable.dll",
"tools/net461/System.Linq.dll",
"tools/net461/System.Memory.dll",
"tools/net461/System.Net.Http.dll",
"tools/net461/System.Net.NameResolution.dll",
"tools/net461/System.Net.NetworkInformation.dll",
"tools/net461/System.Net.Ping.dll",
"tools/net461/System.Net.Primitives.dll",
"tools/net461/System.Net.Requests.dll",
"tools/net461/System.Net.Security.dll",
"tools/net461/System.Net.Sockets.dll",
"tools/net461/System.Net.WebHeaderCollection.dll",
"tools/net461/System.Net.WebSockets.Client.dll",
"tools/net461/System.Net.WebSockets.dll",
"tools/net461/System.Numerics.Vectors.dll",
"tools/net461/System.ObjectModel.dll",
"tools/net461/System.Reflection.Extensions.dll",
"tools/net461/System.Reflection.Primitives.dll",
"tools/net461/System.Reflection.dll",
"tools/net461/System.Resources.Reader.dll",
"tools/net461/System.Resources.ResourceManager.dll",
"tools/net461/System.Resources.Writer.dll",
"tools/net461/System.Runtime.CompilerServices.Unsafe.dll",
"tools/net461/System.Runtime.CompilerServices.VisualC.dll",
"tools/net461/System.Runtime.Extensions.dll",
"tools/net461/System.Runtime.Handles.dll",
"tools/net461/System.Runtime.InteropServices.RuntimeInformation.dll",
"tools/net461/System.Runtime.InteropServices.dll",
"tools/net461/System.Runtime.Numerics.dll",
"tools/net461/System.Runtime.Serialization.Formatters.dll",
"tools/net461/System.Runtime.Serialization.Json.dll",
"tools/net461/System.Runtime.Serialization.Primitives.dll",
"tools/net461/System.Runtime.Serialization.Xml.dll",
"tools/net461/System.Runtime.dll",
"tools/net461/System.Security.Claims.dll",
"tools/net461/System.Security.Cryptography.Algorithms.dll",
"tools/net461/System.Security.Cryptography.Csp.dll",
"tools/net461/System.Security.Cryptography.Encoding.dll",
"tools/net461/System.Security.Cryptography.Primitives.dll",
"tools/net461/System.Security.Cryptography.X509Certificates.dll",
"tools/net461/System.Security.Principal.dll",
"tools/net461/System.Security.SecureString.dll",
"tools/net461/System.Text.Encoding.Extensions.dll",
"tools/net461/System.Text.Encoding.dll",
"tools/net461/System.Text.RegularExpressions.dll",
"tools/net461/System.Threading.Overlapped.dll",
"tools/net461/System.Threading.Tasks.Parallel.dll",
"tools/net461/System.Threading.Tasks.dll",
"tools/net461/System.Threading.Thread.dll",
"tools/net461/System.Threading.ThreadPool.dll",
"tools/net461/System.Threading.Timer.dll",
"tools/net461/System.Threading.dll",
"tools/net461/System.ValueTuple.dll",
"tools/net461/System.Xml.ReaderWriter.dll",
"tools/net461/System.Xml.XDocument.dll",
"tools/net461/System.Xml.XPath.XDocument.dll",
"tools/net461/System.Xml.XPath.dll",
"tools/net461/System.Xml.XmlDocument.dll",
"tools/net461/System.Xml.XmlSerializer.dll",
"tools/net461/netstandard.dll",
"tools/netcoreapp2.1/GetDocument.Insider.deps.json",
"tools/netcoreapp2.1/GetDocument.Insider.dll",
"tools/netcoreapp2.1/GetDocument.Insider.runtimeconfig.json",
"tools/netcoreapp2.1/System.Diagnostics.DiagnosticSource.dll"
]
},
"Microsoft.OpenApi/1.6.14": {
"sha512": "tTaBT8qjk3xINfESyOPE2rIellPvB7qpVqiWiyA/lACVvz+xOGiXhFUfohcx82NLbi5avzLW0lx+s6oAqQijfw==",
"type": "package",
"path": "microsoft.openapi/1.6.14",
"files": [
".nupkg.metadata",
".signature.p7s",
"README.md",
"lib/netstandard2.0/Microsoft.OpenApi.dll",
"lib/netstandard2.0/Microsoft.OpenApi.pdb",
"lib/netstandard2.0/Microsoft.OpenApi.xml",
"microsoft.openapi.1.6.14.nupkg.sha512",
"microsoft.openapi.nuspec"
]
},
"Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": {
"sha512": "EfYANhAWqmWKoLwN6bxoiPZSOfJSO9lzX+UrU6GVhLhPub1Hd+5f0zL0/tggIA6mRz6Ebw2xCNcIsM4k+7NPng==",
"type": "package",
"path": "microsoft.visualstudio.azure.containers.tools.targets/1.22.1",
"hasTools": true,
"files": [
".nupkg.metadata",
".signature.p7s",
"CHANGELOG.md",
"EULA.md",
"ThirdPartyNotices.txt",
"build/Container.props",
"build/Container.targets",
"build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.props",
"build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.targets",
"build/Rules/GeneralBrowseObject.xaml",
"build/Rules/cs-CZ/GeneralBrowseObject.xaml",
"build/Rules/de-DE/GeneralBrowseObject.xaml",
"build/Rules/es-ES/GeneralBrowseObject.xaml",
"build/Rules/fr-FR/GeneralBrowseObject.xaml",
"build/Rules/it-IT/GeneralBrowseObject.xaml",
"build/Rules/ja-JP/GeneralBrowseObject.xaml",
"build/Rules/ko-KR/GeneralBrowseObject.xaml",
"build/Rules/pl-PL/GeneralBrowseObject.xaml",
"build/Rules/pt-BR/GeneralBrowseObject.xaml",
"build/Rules/ru-RU/GeneralBrowseObject.xaml",
"build/Rules/tr-TR/GeneralBrowseObject.xaml",
"build/Rules/zh-CN/GeneralBrowseObject.xaml",
"build/Rules/zh-TW/GeneralBrowseObject.xaml",
"build/ToolsTarget.props",
"build/ToolsTarget.targets",
"icon.png",
"microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512",
"microsoft.visualstudio.azure.containers.tools.targets.nuspec",
"tools/Microsoft.VisualStudio.Containers.Tools.Common.dll",
"tools/Microsoft.VisualStudio.Containers.Tools.Shared.dll",
"tools/Microsoft.VisualStudio.Containers.Tools.Tasks.dll",
"tools/Newtonsoft.Json.dll",
"tools/System.Security.Principal.Windows.dll",
"tools/cs/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/cs/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/cs/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/de/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/de/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/de/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/es/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/es/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/es/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/fr/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/fr/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/fr/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/it/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/it/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/it/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/ja/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/ja/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/ja/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/ko/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/ko/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/ko/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/pl/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/pl/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/pl/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/ru/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/ru/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/ru/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/tr/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/tr/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/tr/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll",
"tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll",
"tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll",
"tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll"
]
},
"Swashbuckle.AspNetCore/6.6.2": {
"sha512": "+NB4UYVYN6AhDSjW0IJAd1AGD8V33gemFNLPaxKTtPkHB+HaKAKf9MGAEUPivEWvqeQfcKIw8lJaHq6LHljRuw==",
"type": "package",
"path": "swashbuckle.aspnetcore/6.6.2",
"files": [
".nupkg.metadata",
".signature.p7s",
"build/Swashbuckle.AspNetCore.props",
"swashbuckle.aspnetcore.6.6.2.nupkg.sha512",
"swashbuckle.aspnetcore.nuspec"
]
},
"Swashbuckle.AspNetCore.Swagger/6.6.2": {
"sha512": "ovgPTSYX83UrQUWiS5vzDcJ8TEX1MAxBgDFMK45rC24MorHEPQlZAHlaXj/yth4Zf6xcktpUgTEBvffRQVwDKA==",
"type": "package",
"path": "swashbuckle.aspnetcore.swagger/6.6.2",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/net5.0/Swashbuckle.AspNetCore.Swagger.dll",
"lib/net5.0/Swashbuckle.AspNetCore.Swagger.pdb",
"lib/net5.0/Swashbuckle.AspNetCore.Swagger.xml",
"lib/net6.0/Swashbuckle.AspNetCore.Swagger.dll",
"lib/net6.0/Swashbuckle.AspNetCore.Swagger.pdb",
"lib/net6.0/Swashbuckle.AspNetCore.Swagger.xml",
"lib/net7.0/Swashbuckle.AspNetCore.Swagger.dll",
"lib/net7.0/Swashbuckle.AspNetCore.Swagger.pdb",
"lib/net7.0/Swashbuckle.AspNetCore.Swagger.xml",
"lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll",
"lib/net8.0/Swashbuckle.AspNetCore.Swagger.pdb",
"lib/net8.0/Swashbuckle.AspNetCore.Swagger.xml",
"lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.dll",
"lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.pdb",
"lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.xml",
"lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.dll",
"lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.pdb",
"lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.xml",
"package-readme.md",
"swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512",
"swashbuckle.aspnetcore.swagger.nuspec"
]
},
"Swashbuckle.AspNetCore.SwaggerGen/6.6.2": {
"sha512": "zv4ikn4AT1VYuOsDCpktLq4QDq08e7Utzbir86M5/ZkRaLXbCPF11E1/vTmOiDzRTl0zTZINQU2qLKwTcHgfrA==",
"type": "package",
"path": "swashbuckle.aspnetcore.swaggergen/6.6.2",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.dll",
"lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.pdb",
"lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.xml",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.dll",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.pdb",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.xml",
"lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.dll",
"lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.pdb",
"lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.xml",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.pdb",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.xml",
"lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.dll",
"lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.pdb",
"lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.xml",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.dll",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.pdb",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.xml",
"package-readme.md",
"swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512",
"swashbuckle.aspnetcore.swaggergen.nuspec"
]
},
"Swashbuckle.AspNetCore.SwaggerUI/6.6.2": {
"sha512": "mBBb+/8Hm2Q3Wygag+hu2jj69tZW5psuv0vMRXY07Wy+Rrj40vRP8ZTbKBhs91r45/HXT4aY4z0iSBYx1h6JvA==",
"type": "package",
"path": "swashbuckle.aspnetcore.swaggerui/6.6.2",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.dll",
"lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.pdb",
"lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.xml",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.dll",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.pdb",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.xml",
"lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.dll",
"lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.pdb",
"lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.xml",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.pdb",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.xml",
"lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.dll",
"lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.pdb",
"lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.xml",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.dll",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.pdb",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.xml",
"package-readme.md",
"swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512",
"swashbuckle.aspnetcore.swaggerui.nuspec"
]
}
},
"projectFileDependencyGroups": {
"net8.0": [
"Microsoft.VisualStudio.Azure.Containers.Tools.Targets >= 1.22.1",
"Swashbuckle.AspNetCore >= 6.6.2"
]
},
"packageFolders": {
"C:\\Users\\nanxun\\.nuget\\packages\\": {},
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj",
"projectName": "IM_API",
"projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj",
"packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\",
"outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\nanxun\\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"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "9.0.300"
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"Microsoft.VisualStudio.Azure.Containers.Tools.Targets": {
"target": "Package",
"version": "[1.22.1, )"
},
"Swashbuckle.AspNetCore": {
"target": "Package",
"version": "[6.6.2, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.AspNetCore.App": {
"privateAssets": "none"
},
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json"
}
}
}
}

View File

@ -1,16 +0,0 @@
{
"version": 2,
"dgSpecHash": "sPkaomFyhxE=",
"success": true,
"projectFilePath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj",
"expectedPackageFiles": [
"C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.apidescription.server\\6.0.5\\microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512",
"C:\\Users\\nanxun\\.nuget\\packages\\microsoft.openapi\\1.6.14\\microsoft.openapi.1.6.14.nupkg.sha512",
"C:\\Users\\nanxun\\.nuget\\packages\\microsoft.visualstudio.azure.containers.tools.targets\\1.22.1\\microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512",
"C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore\\6.6.2\\swashbuckle.aspnetcore.6.6.2.nupkg.sha512",
"C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\6.6.2\\swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512",
"C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\6.6.2\\swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512",
"C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\6.6.2\\swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512"
],
"logs": []
}