Add NES headers to database.

This commit is contained in:
2021-12-09 00:06:48 +00:00
parent e5c6d058c1
commit d2873dbf6d
6 changed files with 6509 additions and 1093 deletions

View File

@@ -90,6 +90,25 @@ public sealed class UpdateController : Controller
})), device.Id, device.OptimalMultipleSectorsRead,
device.CanReadGdRomUsingSwapDisc));
sync.NesHeaders = new List<NesHeaderDto>();
foreach(NesHeaderInfo header in _ctx.NesHeaders.Where(v => v.ModifiedWhen > lastSync))
sync.NesHeaders.Add(new NesHeaderDto
{
Id = header.Id,
BatteryPresent = header.BatteryPresent,
ConsoleType = header.ConsoleType,
DefaultExpansionDevice = header.DefaultExpansionDevice,
ExtendedConsoleType = header.ExtendedConsoleType,
FourScreenMode = header.FourScreenMode,
Mapper = header.Mapper,
NametableMirroring = header.NametableMirroring,
Sha256 = header.Sha256,
Submapper = header.Submapper,
VsHardwareType = header.VsHardwareType,
VsPpuType = header.VsPpuType
});
var js = JsonSerializer.Create();
var sw = new StringWriter();
js.Serialize(sw, sync);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -78,6 +78,7 @@ public sealed class AaruServerContext : IdentityDbContext<IdentityUser>
public DbSet<RemoteArchitecture> RemoteArchitectures { get; set; }
public DbSet<RemoteOperatingSystem> RemoteOperatingSystems { get; set; }
public DbSet<GdRomSwapDiscCapabilities> GdRomSwapDiscCapabilities { get; set; }
public DbSet<NesHeaderInfo> NesHeaders { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
@@ -247,6 +248,9 @@ public sealed class AaruServerContext : IdentityDbContext<IdentityUser>
modelBuilder.Entity<UsbVendor>().HasIndex(b => b.ModifiedWhen);
modelBuilder.Entity<UsbVendor>().HasIndex(b => b.VendorId).IsUnique();
modelBuilder.Entity<NesHeaderInfo>().HasIndex(b => b.ModifiedWhen);
modelBuilder.Entity<NesHeaderInfo>().HasIndex(b => b.Sha256).IsUnique();
}
internal static bool TableExists(string tableName)

View File

@@ -0,0 +1,37 @@
using System.ComponentModel.DataAnnotations;
using Aaru.CommonTypes.Enums;
namespace Aaru.Server.Models;
public class NesHeaderInfo : BaseModel<int>
{
/// <summary>ROM hash</summary>
[StringLength(64), Required]
public string Sha256 { get; set; }
/// <summary>If <c>true</c> vertical mirroring is hard-wired, horizontal or mapper defined otherwise</summary>
public bool NametableMirroring { get; set; }
/// <summary>If <c>true</c> a battery is present</summary>
public bool BatteryPresent { get; set; }
/// <summary>If <c>true</c> the four player screen mode is hardwired</summary>
public bool FourScreenMode { get; set; }
/// <summary>Mapper number (NES 2.0 when in conflict)</summary>
public ushort Mapper { get; set; }
/// <summary>Console type</summary>
public NesConsoleType ConsoleType { get; set; }
/// <summary>Submapper number</summary>
public byte Submapper { get; set; }
/// <summary>Timing mode</summary>
public NesTimingMode TimingMode { get; set; }
/// <summary>Vs. PPU type</summary>
public NesVsPpuType VsPpuType { get; set; }
/// <summary>Vs. hardware type</summary>
public NesVsHardwareType VsHardwareType { get; set; }
/// <summary>Extended console type</summary>
public NesExtendedConsoleType ExtendedConsoleType { get; set; }
/// <summary>Default expansion device</summary>
public NesDefaultExpansionDevice DefaultExpansionDevice { get; set; }
/// <summary>Date when model has been added to the database</summary>
public DateTime AddedWhen { get; set; }
/// <summary>Date when model was last modified</summary>
public DateTime ModifiedWhen { get; set; }
}