diff --git a/MareSynchronosServer/MareSynchronosServer/Hubs/FilesHub.cs b/MareSynchronosServer/MareSynchronosServer/Hubs/FilesHub.cs
index d37981a..d7dd180 100644
--- a/MareSynchronosServer/MareSynchronosServer/Hubs/FilesHub.cs
+++ b/MareSynchronosServer/MareSynchronosServer/Hubs/FilesHub.cs
@@ -158,7 +158,6 @@ namespace MareSynchronosServer.Hubs
await DbContext.Files.AddAsync(new FileCache()
{
Hash = file,
- LastAccessTime = DateTime.Now,
Uploaded = false,
Uploader = DbContext.Users.Single(u => u.UID == userId)
});
@@ -225,7 +224,6 @@ namespace MareSynchronosServer.Hubs
await File.WriteAllBytesAsync(Path.Combine(BasePath, hash), uploadedFile.ToArray());
relatedFile = DbContext.Files.Single(f => f.Hash == hash);
relatedFile.Uploaded = true;
- relatedFile.LastAccessTime = DateTime.Now;
await DbContext.SaveChangesAsync();
Logger.LogInformation("File " + hash + " added to DB");
}
diff --git a/MareSynchronosServer/MareSynchronosServer/Migrations/20220712082237_SetMaxLengths.Designer.cs b/MareSynchronosServer/MareSynchronosServer/Migrations/20220712082237_SetMaxLengths.Designer.cs
new file mode 100644
index 0000000..4a89585
--- /dev/null
+++ b/MareSynchronosServer/MareSynchronosServer/Migrations/20220712082237_SetMaxLengths.Designer.cs
@@ -0,0 +1,175 @@
+//
+using System;
+using MareSynchronosServer.Data;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace MareSynchronosServer.Migrations
+{
+ [DbContext(typeof(MareDbContext))]
+ [Migration("20220712082237_SetMaxLengths")]
+ partial class SetMaxLengths
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "6.0.6")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
+
+ modelBuilder.Entity("MareSynchronosServer.Models.Banned", b =>
+ {
+ b.Property("CharacterIdentification")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("Reason")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Timestamp")
+ .IsConcurrencyToken()
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("rowversion");
+
+ b.HasKey("CharacterIdentification");
+
+ b.ToTable("BannedUsers", (string)null);
+ });
+
+ modelBuilder.Entity("MareSynchronosServer.Models.ClientPair", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("AllowReceivingMessages")
+ .HasColumnType("bit");
+
+ b.Property("IsPaused")
+ .HasColumnType("bit");
+
+ b.Property("OtherUserUID")
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("Timestamp")
+ .IsConcurrencyToken()
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("rowversion");
+
+ b.Property("UserUID")
+ .HasColumnType("nvarchar(10)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("OtherUserUID");
+
+ b.HasIndex("UserUID");
+
+ b.ToTable("ClientPairs", (string)null);
+ });
+
+ modelBuilder.Entity("MareSynchronosServer.Models.FileCache", b =>
+ {
+ b.Property("Hash")
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(40)");
+
+ b.Property("Timestamp")
+ .IsConcurrencyToken()
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("rowversion");
+
+ b.Property("Uploaded")
+ .HasColumnType("bit");
+
+ b.Property("UploaderUID")
+ .HasColumnType("nvarchar(10)");
+
+ b.HasKey("Hash");
+
+ b.HasIndex("UploaderUID");
+
+ b.ToTable("FileCaches", (string)null);
+ });
+
+ modelBuilder.Entity("MareSynchronosServer.Models.ForbiddenUploadEntry", b =>
+ {
+ b.Property("Hash")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("ForbiddenBy")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Timestamp")
+ .IsConcurrencyToken()
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("rowversion");
+
+ b.HasKey("Hash");
+
+ b.ToTable("ForbiddenUploadEntries", (string)null);
+ });
+
+ modelBuilder.Entity("MareSynchronosServer.Models.User", b =>
+ {
+ b.Property("UID")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("CharacterIdentification")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsAdmin")
+ .HasColumnType("bit");
+
+ b.Property("IsModerator")
+ .HasColumnType("bit");
+
+ b.Property("SecretKey")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Timestamp")
+ .IsConcurrencyToken()
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("rowversion");
+
+ b.HasKey("UID");
+
+ b.ToTable("Users", (string)null);
+ });
+
+ modelBuilder.Entity("MareSynchronosServer.Models.ClientPair", b =>
+ {
+ b.HasOne("MareSynchronosServer.Models.User", "OtherUser")
+ .WithMany()
+ .HasForeignKey("OtherUserUID");
+
+ b.HasOne("MareSynchronosServer.Models.User", "User")
+ .WithMany()
+ .HasForeignKey("UserUID");
+
+ b.Navigation("OtherUser");
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("MareSynchronosServer.Models.FileCache", b =>
+ {
+ b.HasOne("MareSynchronosServer.Models.User", "Uploader")
+ .WithMany()
+ .HasForeignKey("UploaderUID");
+
+ b.Navigation("Uploader");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/MareSynchronosServer/MareSynchronosServer/Migrations/20220712082237_SetMaxLengths.cs b/MareSynchronosServer/MareSynchronosServer/Migrations/20220712082237_SetMaxLengths.cs
new file mode 100644
index 0000000..fc8c77a
--- /dev/null
+++ b/MareSynchronosServer/MareSynchronosServer/Migrations/20220712082237_SetMaxLengths.cs
@@ -0,0 +1,141 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace MareSynchronosServer.Migrations
+{
+ public partial class SetMaxLengths : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "LastAccessTime",
+ table: "FileCaches");
+
+ migrationBuilder.DropForeignKey("FK_FileCaches_Users_UploaderUID", "FileCaches");
+ migrationBuilder.DropForeignKey("FK_ClientPairs_Users_UserUID", "ClientPairs");
+ migrationBuilder.DropForeignKey("FK_ClientPairs_Users_OtherUserUID", "ClientPairs");
+ migrationBuilder.DropPrimaryKey("PK_FileCaches", "FileCaches");
+ migrationBuilder.DropPrimaryKey("PK_Users", "Users");
+
+ migrationBuilder.AlterColumn(
+ name: "UploaderUID",
+ table: "FileCaches",
+ type: "nvarchar(10)",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(450)",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn(
+ name: "Hash",
+ table: "FileCaches",
+ type: "nvarchar(40)",
+ maxLength: 20,
+ nullable: false,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(450)");
+
+ migrationBuilder.AlterColumn(
+ name: "UserUID",
+ table: "ClientPairs",
+ type: "nvarchar(10)",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(450)",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn(
+ name: "OtherUserUID",
+ table: "ClientPairs",
+ type: "nvarchar(10)",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(450)",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn(
+ name: "UID",
+ table: "Users",
+ type: "nvarchar(10)",
+ maxLength: 10,
+ nullable: false,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(450)");
+
+ migrationBuilder.AddPrimaryKey("PK_Users", "Users", "UID");
+ migrationBuilder.AddPrimaryKey("PK_FileCaches", "FileCaches", "Hash");
+ migrationBuilder.AddForeignKey("FK_FileCaches_Users_UploaderUID", "FileCaches", "UploaderUID", "Users");
+ migrationBuilder.AddForeignKey("FK_ClientPairs_Users_UserUID", "ClientPairs", "UserUID", "Users");
+ migrationBuilder.AddForeignKey("FK_ClientPairs_Users_OtherUserUID", "ClientPairs", "UserUID", "Users");
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropForeignKey("FK_FileCaches_Users_UploaderUID", "FileCaches");
+ migrationBuilder.DropForeignKey("FK_ClientPairs_Users_UserUID", "ClientPairs");
+ migrationBuilder.DropForeignKey("FK_ClientPairs_Users_OtherUserUID", "ClientPairs");
+ migrationBuilder.DropPrimaryKey("PK_FileCaches", "FileCaches");
+ migrationBuilder.DropPrimaryKey("PK_Users", "Users");
+
+ migrationBuilder.AlterColumn(
+ name: "UID",
+ table: "Users",
+ type: "nvarchar(450)",
+ nullable: false,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(10)",
+ oldMaxLength: 10);
+
+ migrationBuilder.AlterColumn(
+ name: "UploaderUID",
+ table: "FileCaches",
+ type: "nvarchar(450)",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(10)",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn(
+ name: "Hash",
+ table: "FileCaches",
+ type: "nvarchar(450)",
+ nullable: false,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(20)",
+ oldMaxLength: 20);
+
+ migrationBuilder.AddColumn(
+ name: "LastAccessTime",
+ table: "FileCaches",
+ type: "datetime2",
+ nullable: false,
+ defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
+
+ migrationBuilder.AlterColumn(
+ name: "UserUID",
+ table: "ClientPairs",
+ type: "nvarchar(450)",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(10)",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn(
+ name: "OtherUserUID",
+ table: "ClientPairs",
+ type: "nvarchar(450)",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(10)",
+ oldNullable: true);
+
+ migrationBuilder.AddPrimaryKey("PK_Users", "Users", "UID");
+ migrationBuilder.AddPrimaryKey("PK_FileCaches", "FileCaches", "Hash");
+ migrationBuilder.AddForeignKey("FK_FileCaches_Users_UploaderUID", "FileCaches", "UploaderUID", "Users");
+ migrationBuilder.AddForeignKey("FK_ClientPairs_Users_UserUID", "ClientPairs", "UserUID", "Users");
+ migrationBuilder.AddForeignKey("FK_ClientPairs_Users_OtherUserUID", "ClientPairs", "UserUID", "Users");
+ }
+ }
+}
diff --git a/MareSynchronosServer/MareSynchronosServer/Migrations/MareDbContextModelSnapshot.cs b/MareSynchronosServer/MareSynchronosServer/Migrations/MareDbContextModelSnapshot.cs
index ebc28e7..bfcf123 100644
--- a/MareSynchronosServer/MareSynchronosServer/Migrations/MareDbContextModelSnapshot.cs
+++ b/MareSynchronosServer/MareSynchronosServer/Migrations/MareDbContextModelSnapshot.cs
@@ -55,7 +55,7 @@ namespace MareSynchronosServer.Migrations
.HasColumnType("bit");
b.Property("OtherUserUID")
- .HasColumnType("nvarchar(450)");
+ .HasColumnType("nvarchar(10)");
b.Property("Timestamp")
.IsConcurrencyToken()
@@ -63,7 +63,7 @@ namespace MareSynchronosServer.Migrations
.HasColumnType("rowversion");
b.Property("UserUID")
- .HasColumnType("nvarchar(450)");
+ .HasColumnType("nvarchar(10)");
b.HasKey("Id");
@@ -77,10 +77,8 @@ namespace MareSynchronosServer.Migrations
modelBuilder.Entity("MareSynchronosServer.Models.FileCache", b =>
{
b.Property("Hash")
- .HasColumnType("nvarchar(450)");
-
- b.Property("LastAccessTime")
- .HasColumnType("datetime2");
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(40)");
b.Property("Timestamp")
.IsConcurrencyToken()
@@ -91,7 +89,7 @@ namespace MareSynchronosServer.Migrations
.HasColumnType("bit");
b.Property("UploaderUID")
- .HasColumnType("nvarchar(450)");
+ .HasColumnType("nvarchar(10)");
b.HasKey("Hash");
@@ -121,7 +119,8 @@ namespace MareSynchronosServer.Migrations
modelBuilder.Entity("MareSynchronosServer.Models.User", b =>
{
b.Property("UID")
- .HasColumnType("nvarchar(450)");
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
b.Property("CharacterIdentification")
.HasColumnType("nvarchar(max)");
diff --git a/MareSynchronosServer/MareSynchronosServer/Models/FileCache.cs b/MareSynchronosServer/MareSynchronosServer/Models/FileCache.cs
index 95c3297..b5a5e22 100644
--- a/MareSynchronosServer/MareSynchronosServer/Models/FileCache.cs
+++ b/MareSynchronosServer/MareSynchronosServer/Models/FileCache.cs
@@ -7,10 +7,10 @@ namespace MareSynchronosServer.Models
public class FileCache
{
[Key]
+ [MaxLength(40)]
public string Hash { get; set; }
public User Uploader { get; set; }
public bool Uploaded { get; set; }
- public DateTime LastAccessTime { get; set; }
[Timestamp]
public byte[] Timestamp { get; set; }
}
diff --git a/MareSynchronosServer/MareSynchronosServer/Models/User.cs b/MareSynchronosServer/MareSynchronosServer/Models/User.cs
index bca6496..5bc9a54 100644
--- a/MareSynchronosServer/MareSynchronosServer/Models/User.cs
+++ b/MareSynchronosServer/MareSynchronosServer/Models/User.cs
@@ -6,6 +6,7 @@ namespace MareSynchronosServer.Models
public class User
{
[Key]
+ [MaxLength(10)]
public string UID { get; set; }
public string SecretKey { get; set; }
public string CharacterIdentification { get; set; }