mirror of
https://github.com/claunia/romrepomgr.git
synced 2025-12-16 19:24:51 +00:00
Use collection expression syntax.
This commit is contained in:
@@ -113,7 +113,7 @@ public static class Base32
|
|||||||
if(base32String == null) return null;
|
if(base32String == null) return null;
|
||||||
|
|
||||||
// Check if empty
|
// Check if empty
|
||||||
if(base32String == string.Empty) return new byte[0];
|
if(base32String == string.Empty) return [];
|
||||||
|
|
||||||
// Convert to upper-case
|
// Convert to upper-case
|
||||||
string base32StringUpperCase = base32String.ToUpperInvariant();
|
string base32StringUpperCase = base32String.ToUpperInvariant();
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public sealed class Md5Context : IChecksum
|
|||||||
/// <summary>Returns a byte array of the hash value.</summary>
|
/// <summary>Returns a byte array of the hash value.</summary>
|
||||||
public byte[] Final()
|
public byte[] Final()
|
||||||
{
|
{
|
||||||
_provider.TransformFinalBlock(new byte[0], 0, 0);
|
_provider.TransformFinalBlock([], 0, 0);
|
||||||
|
|
||||||
return _provider.Hash;
|
return _provider.Hash;
|
||||||
}
|
}
|
||||||
@@ -69,7 +69,7 @@ public sealed class Md5Context : IChecksum
|
|||||||
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
||||||
public string End()
|
public string End()
|
||||||
{
|
{
|
||||||
_provider.TransformFinalBlock(new byte[0], 0, 0);
|
_provider.TransformFinalBlock([], 0, 0);
|
||||||
var md5Output = new StringBuilder();
|
var md5Output = new StringBuilder();
|
||||||
|
|
||||||
foreach(byte h in _provider.Hash) md5Output.Append(h.ToString("x2"));
|
foreach(byte h in _provider.Hash) md5Output.Append(h.ToString("x2"));
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public sealed class Sha1Context : IChecksum
|
|||||||
/// <summary>Returns a byte array of the hash value.</summary>
|
/// <summary>Returns a byte array of the hash value.</summary>
|
||||||
public byte[] Final()
|
public byte[] Final()
|
||||||
{
|
{
|
||||||
_provider.TransformFinalBlock(new byte[0], 0, 0);
|
_provider.TransformFinalBlock([], 0, 0);
|
||||||
|
|
||||||
return _provider.Hash;
|
return _provider.Hash;
|
||||||
}
|
}
|
||||||
@@ -69,7 +69,7 @@ public sealed class Sha1Context : IChecksum
|
|||||||
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
||||||
public string End()
|
public string End()
|
||||||
{
|
{
|
||||||
_provider.TransformFinalBlock(new byte[0], 0, 0);
|
_provider.TransformFinalBlock([], 0, 0);
|
||||||
var sha1Output = new StringBuilder();
|
var sha1Output = new StringBuilder();
|
||||||
|
|
||||||
foreach(byte h in _provider.Hash) sha1Output.Append(h.ToString("x2"));
|
foreach(byte h in _provider.Hash) sha1Output.Append(h.ToString("x2"));
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public sealed class Sha256Context : IChecksum
|
|||||||
/// <summary>Returns a byte array of the hash value.</summary>
|
/// <summary>Returns a byte array of the hash value.</summary>
|
||||||
public byte[] Final()
|
public byte[] Final()
|
||||||
{
|
{
|
||||||
_provider.TransformFinalBlock(new byte[0], 0, 0);
|
_provider.TransformFinalBlock([], 0, 0);
|
||||||
|
|
||||||
return _provider.Hash;
|
return _provider.Hash;
|
||||||
}
|
}
|
||||||
@@ -69,7 +69,7 @@ public sealed class Sha256Context : IChecksum
|
|||||||
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
||||||
public string End()
|
public string End()
|
||||||
{
|
{
|
||||||
_provider.TransformFinalBlock(new byte[0], 0, 0);
|
_provider.TransformFinalBlock([], 0, 0);
|
||||||
var sha256Output = new StringBuilder();
|
var sha256Output = new StringBuilder();
|
||||||
|
|
||||||
foreach(byte h in _provider.Hash) sha256Output.Append(h.ToString("x2"));
|
foreach(byte h in _provider.Hash) sha256Output.Append(h.ToString("x2"));
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public sealed class Sha384Context : IChecksum
|
|||||||
/// <summary>Returns a byte array of the hash value.</summary>
|
/// <summary>Returns a byte array of the hash value.</summary>
|
||||||
public byte[] Final()
|
public byte[] Final()
|
||||||
{
|
{
|
||||||
_provider.TransformFinalBlock(new byte[0], 0, 0);
|
_provider.TransformFinalBlock([], 0, 0);
|
||||||
|
|
||||||
return _provider.Hash;
|
return _provider.Hash;
|
||||||
}
|
}
|
||||||
@@ -69,7 +69,7 @@ public sealed class Sha384Context : IChecksum
|
|||||||
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
||||||
public string End()
|
public string End()
|
||||||
{
|
{
|
||||||
_provider.TransformFinalBlock(new byte[0], 0, 0);
|
_provider.TransformFinalBlock([], 0, 0);
|
||||||
var sha384Output = new StringBuilder();
|
var sha384Output = new StringBuilder();
|
||||||
|
|
||||||
foreach(byte h in _provider.Hash) sha384Output.Append(h.ToString("x2"));
|
foreach(byte h in _provider.Hash) sha384Output.Append(h.ToString("x2"));
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public sealed class Sha512Context : IChecksum
|
|||||||
/// <summary>Returns a byte array of the hash value.</summary>
|
/// <summary>Returns a byte array of the hash value.</summary>
|
||||||
public byte[] Final()
|
public byte[] Final()
|
||||||
{
|
{
|
||||||
_provider.TransformFinalBlock(new byte[0], 0, 0);
|
_provider.TransformFinalBlock([], 0, 0);
|
||||||
|
|
||||||
return _provider.Hash;
|
return _provider.Hash;
|
||||||
}
|
}
|
||||||
@@ -69,7 +69,7 @@ public sealed class Sha512Context : IChecksum
|
|||||||
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
/// <summary>Returns a hexadecimal representation of the hash value.</summary>
|
||||||
public string End()
|
public string End()
|
||||||
{
|
{
|
||||||
_provider.TransformFinalBlock(new byte[0], 0, 0);
|
_provider.TransformFinalBlock([], 0, 0);
|
||||||
var sha512Output = new StringBuilder();
|
var sha512Output = new StringBuilder();
|
||||||
|
|
||||||
foreach(byte h in _provider.Hash) sha512Output.Append(h.ToString("x2"));
|
foreach(byte h in _provider.Hash) sha512Output.Append(h.ToString("x2"));
|
||||||
|
|||||||
@@ -60,12 +60,12 @@ public sealed class SpamSumContext : IChecksum
|
|||||||
|
|
||||||
//"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
//"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||||
readonly byte[] _b64 =
|
readonly byte[] _b64 =
|
||||||
{
|
[
|
||||||
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52,
|
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52,
|
||||||
0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A,
|
0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A,
|
||||||
0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x30, 0x31,
|
0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x30, 0x31,
|
||||||
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2B, 0x2F
|
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2B, 0x2F
|
||||||
};
|
];
|
||||||
|
|
||||||
FuzzyState _self;
|
FuzzyState _self;
|
||||||
|
|
||||||
|
|||||||
@@ -415,19 +415,19 @@ public class Winfsp : FileSystemBase
|
|||||||
ConcurrentDictionary<string, CachedMedia> cachedMachineMedias =
|
ConcurrentDictionary<string, CachedMedia> cachedMachineMedias =
|
||||||
_vfs.GetMediasFromMachine(node.MachineId);
|
_vfs.GetMediasFromMachine(node.MachineId);
|
||||||
|
|
||||||
node.Children = new List<FileEntry>
|
node.Children =
|
||||||
{
|
[
|
||||||
new()
|
new FileEntry
|
||||||
{
|
{
|
||||||
FileName = ".",
|
FileName = ".",
|
||||||
Info = node.Info
|
Info = node.Info
|
||||||
},
|
},
|
||||||
new()
|
new FileEntry
|
||||||
{
|
{
|
||||||
FileName = "..",
|
FileName = "..",
|
||||||
Info = node.ParentInfo
|
Info = node.ParentInfo
|
||||||
}
|
}
|
||||||
};
|
];
|
||||||
|
|
||||||
node.Children.AddRange(cachedMachineFiles.Select(file => new FileEntry
|
node.Children.AddRange(cachedMachineFiles.Select(file => new FileEntry
|
||||||
{
|
{
|
||||||
@@ -485,19 +485,19 @@ public class Winfsp : FileSystemBase
|
|||||||
{
|
{
|
||||||
ConcurrentDictionary<string, CachedMachine> machines = _vfs.GetMachinesFromRomSet(node.RomSetId);
|
ConcurrentDictionary<string, CachedMachine> machines = _vfs.GetMachinesFromRomSet(node.RomSetId);
|
||||||
|
|
||||||
node.Children = new List<FileEntry>
|
node.Children =
|
||||||
{
|
[
|
||||||
new()
|
new FileEntry
|
||||||
{
|
{
|
||||||
FileName = ".",
|
FileName = ".",
|
||||||
Info = node.Info
|
Info = node.Info
|
||||||
},
|
},
|
||||||
new()
|
new FileEntry
|
||||||
{
|
{
|
||||||
FileName = "..",
|
FileName = "..",
|
||||||
Info = node.ParentInfo
|
Info = node.ParentInfo
|
||||||
}
|
}
|
||||||
};
|
];
|
||||||
|
|
||||||
node.Children.AddRange(machines.Select(machine => new FileEntry
|
node.Children.AddRange(machines.Select(machine => new FileEntry
|
||||||
{
|
{
|
||||||
@@ -512,7 +512,7 @@ public class Winfsp : FileSystemBase
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
node.Children = new List<FileEntry>();
|
node.Children = [];
|
||||||
|
|
||||||
node.Children.AddRange(_vfs.GetRootEntries()
|
node.Children.AddRange(_vfs.GetRootEntries()
|
||||||
.Select(e => new FileEntry
|
.Select(e => new FileEntry
|
||||||
|
|||||||
@@ -479,41 +479,41 @@ public sealed class DatImporter
|
|||||||
? ctx.Files
|
? ctx.Files
|
||||||
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomCrc32Table}] AS t WHERE f.Crc32 = t.Crc32 AND f.Size = t.Size")
|
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomCrc32Table}] AS t WHERE f.Crc32 = t.Crc32 AND f.Size = t.Size")
|
||||||
.ToList()
|
.ToList()
|
||||||
: new List<DbFile>();
|
: [];
|
||||||
|
|
||||||
List<DbFile> pendingFilesByMd5List = romsHaveMd5
|
List<DbFile> pendingFilesByMd5List = romsHaveMd5
|
||||||
? ctx.Files
|
? ctx.Files
|
||||||
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomMd5Table}] AS t WHERE f.Md5 = t.Md5 AND f.Size = t.Size")
|
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomMd5Table}] AS t WHERE f.Md5 = t.Md5 AND f.Size = t.Size")
|
||||||
.ToList()
|
.ToList()
|
||||||
: new List<DbFile>();
|
: [];
|
||||||
|
|
||||||
List<DbFile> pendingFilesBySha1List =
|
List<DbFile> pendingFilesBySha1List =
|
||||||
romsHaveSha1
|
romsHaveSha1
|
||||||
? ctx.Files
|
? ctx.Files
|
||||||
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomSha1Table}] AS t WHERE f.Sha1 = t.Sha1 AND f.Size = t.Size")
|
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomSha1Table}] AS t WHERE f.Sha1 = t.Sha1 AND f.Size = t.Size")
|
||||||
.ToList()
|
.ToList()
|
||||||
: new List<DbFile>();
|
: [];
|
||||||
|
|
||||||
List<DbFile> pendingFilesBySha256List =
|
List<DbFile> pendingFilesBySha256List =
|
||||||
romsHaveSha256
|
romsHaveSha256
|
||||||
? ctx.Files
|
? ctx.Files
|
||||||
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomSha256Table}] AS t WHERE f.Sha256 = t.Sha256 AND f.Size = t.Size")
|
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomSha256Table}] AS t WHERE f.Sha256 = t.Sha256 AND f.Size = t.Size")
|
||||||
.ToList()
|
.ToList()
|
||||||
: new List<DbFile>();
|
: [];
|
||||||
|
|
||||||
List<DbFile> pendingFilesBySha384List =
|
List<DbFile> pendingFilesBySha384List =
|
||||||
romsHaveSha384
|
romsHaveSha384
|
||||||
? ctx.Files
|
? ctx.Files
|
||||||
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomSha384Table}] AS t WHERE f.Sha384 = t.Sha384 AND f.Size = t.Size")
|
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomSha384Table}] AS t WHERE f.Sha384 = t.Sha384 AND f.Size = t.Size")
|
||||||
.ToList()
|
.ToList()
|
||||||
: new List<DbFile>();
|
: [];
|
||||||
|
|
||||||
List<DbFile> pendingFilesBySha512List =
|
List<DbFile> pendingFilesBySha512List =
|
||||||
romsHaveSha512
|
romsHaveSha512
|
||||||
? ctx.Files
|
? ctx.Files
|
||||||
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomSha512Table}] AS t WHERE f.Sha512 = t.Sha512 AND f.Size = t.Size")
|
.FromSqlRaw($"SELECT DISTINCT f.* FROM Files AS f, [{tmpRomSha512Table}] AS t WHERE f.Sha512 = t.Sha512 AND f.Size = t.Size")
|
||||||
.ToList()
|
.ToList()
|
||||||
: new List<DbFile>();
|
: [];
|
||||||
|
|
||||||
Dictionary<string, DbDisk> pendingDisksByMd5 =
|
Dictionary<string, DbDisk> pendingDisksByMd5 =
|
||||||
disksHaveMd5
|
disksHaveMd5
|
||||||
@@ -756,41 +756,53 @@ public sealed class DatImporter
|
|||||||
if(file == null && hashCollision)
|
if(file == null && hashCollision)
|
||||||
{
|
{
|
||||||
if(rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.SHA512Key) != null)
|
if(rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.SHA512Key) != null)
|
||||||
|
{
|
||||||
file = pendingFiles.FirstOrDefault(f => f.Sha512 ==
|
file = pendingFiles.FirstOrDefault(f => f.Sha512 ==
|
||||||
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
||||||
.SHA512Key) &&
|
.SHA512Key) &&
|
||||||
f.Size == uSize);
|
f.Size == uSize);
|
||||||
|
}
|
||||||
|
|
||||||
if(file == null && rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.SHA384Key) != null)
|
if(file == null && rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.SHA384Key) != null)
|
||||||
|
{
|
||||||
file = pendingFiles.FirstOrDefault(f => f.Sha384 ==
|
file = pendingFiles.FirstOrDefault(f => f.Sha384 ==
|
||||||
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
||||||
.SHA384Key) &&
|
.SHA384Key) &&
|
||||||
f.Size == uSize);
|
f.Size == uSize);
|
||||||
|
}
|
||||||
|
|
||||||
if(file == null && rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.SHA256Key) != null)
|
if(file == null && rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.SHA256Key) != null)
|
||||||
|
{
|
||||||
file = pendingFiles.FirstOrDefault(f => f.Sha256 ==
|
file = pendingFiles.FirstOrDefault(f => f.Sha256 ==
|
||||||
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
||||||
.SHA256Key) &&
|
.SHA256Key) &&
|
||||||
f.Size == uSize);
|
f.Size == uSize);
|
||||||
|
}
|
||||||
|
|
||||||
if(file == null && rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.SHA1Key) != null)
|
if(file == null && rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.SHA1Key) != null)
|
||||||
|
{
|
||||||
file = pendingFiles.FirstOrDefault(f => f.Sha1 ==
|
file = pendingFiles.FirstOrDefault(f => f.Sha1 ==
|
||||||
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
||||||
.SHA1Key) &&
|
.SHA1Key) &&
|
||||||
f.Size == uSize);
|
f.Size == uSize);
|
||||||
|
}
|
||||||
|
|
||||||
if(file == null && rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.MD5Key) != null)
|
if(file == null && rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.MD5Key) != null)
|
||||||
|
{
|
||||||
file = pendingFiles.FirstOrDefault(f => f.Md5 ==
|
file = pendingFiles.FirstOrDefault(f => f.Md5 ==
|
||||||
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
||||||
.MD5Key) &&
|
.MD5Key) &&
|
||||||
f.Size == uSize);
|
f.Size == uSize);
|
||||||
|
}
|
||||||
|
|
||||||
if(file == null && rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.CRCKey) != null)
|
if(file == null && rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom.CRCKey) != null)
|
||||||
|
{
|
||||||
file = pendingFiles.FirstOrDefault(f => f.Crc32 ==
|
file = pendingFiles.FirstOrDefault(f => f.Crc32 ==
|
||||||
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
rom.GetStringFieldValue(SabreTools.Models.Metadata.Rom
|
||||||
.CRCKey) &&
|
.CRCKey) &&
|
||||||
f.Size == uSize);
|
f.Size == uSize);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(file == null)
|
if(file == null)
|
||||||
{
|
{
|
||||||
@@ -991,12 +1003,16 @@ public sealed class DatImporter
|
|||||||
DbDisk dbDisk = null;
|
DbDisk dbDisk = null;
|
||||||
|
|
||||||
if(disk.GetStringFieldValue(SabreTools.Models.Metadata.Disk.SHA1Key) != null && dbDisk == null)
|
if(disk.GetStringFieldValue(SabreTools.Models.Metadata.Disk.SHA1Key) != null && dbDisk == null)
|
||||||
|
{
|
||||||
pendingDisksBySha1.TryGetValue(disk.GetStringFieldValue(SabreTools.Models.Metadata.Disk.SHA1Key),
|
pendingDisksBySha1.TryGetValue(disk.GetStringFieldValue(SabreTools.Models.Metadata.Disk.SHA1Key),
|
||||||
out dbDisk);
|
out dbDisk);
|
||||||
|
}
|
||||||
|
|
||||||
if(disk.GetStringFieldValue(SabreTools.Models.Metadata.Disk.MD5Key) != null && dbDisk == null)
|
if(disk.GetStringFieldValue(SabreTools.Models.Metadata.Disk.MD5Key) != null && dbDisk == null)
|
||||||
|
{
|
||||||
pendingDisksByMd5.TryGetValue(disk.GetStringFieldValue(SabreTools.Models.Metadata.Disk.MD5Key),
|
pendingDisksByMd5.TryGetValue(disk.GetStringFieldValue(SabreTools.Models.Metadata.Disk.MD5Key),
|
||||||
out dbDisk);
|
out dbDisk);
|
||||||
|
}
|
||||||
|
|
||||||
if(dbDisk == null)
|
if(dbDisk == null)
|
||||||
{
|
{
|
||||||
@@ -1115,17 +1131,23 @@ public sealed class DatImporter
|
|||||||
DbMedia dbMedia = null;
|
DbMedia dbMedia = null;
|
||||||
|
|
||||||
if(media.GetStringFieldValue(SabreTools.Models.Metadata.Media.SHA256Key) != null && dbMedia == null)
|
if(media.GetStringFieldValue(SabreTools.Models.Metadata.Media.SHA256Key) != null && dbMedia == null)
|
||||||
|
{
|
||||||
pendingMediasBySha256.TryGetValue(media.GetStringFieldValue(SabreTools.Models.Metadata.Media
|
pendingMediasBySha256.TryGetValue(media.GetStringFieldValue(SabreTools.Models.Metadata.Media
|
||||||
.SHA256Key),
|
.SHA256Key),
|
||||||
out dbMedia);
|
out dbMedia);
|
||||||
|
}
|
||||||
|
|
||||||
if(media.GetStringFieldValue(SabreTools.Models.Metadata.Media.SHA1Key) != null && dbMedia == null)
|
if(media.GetStringFieldValue(SabreTools.Models.Metadata.Media.SHA1Key) != null && dbMedia == null)
|
||||||
|
{
|
||||||
pendingMediasBySha1.TryGetValue(media.GetStringFieldValue(SabreTools.Models.Metadata.Media.SHA1Key),
|
pendingMediasBySha1.TryGetValue(media.GetStringFieldValue(SabreTools.Models.Metadata.Media.SHA1Key),
|
||||||
out dbMedia);
|
out dbMedia);
|
||||||
|
}
|
||||||
|
|
||||||
if(media.GetStringFieldValue(SabreTools.Models.Metadata.Media.MD5Key) != null && dbMedia == null)
|
if(media.GetStringFieldValue(SabreTools.Models.Metadata.Media.MD5Key) != null && dbMedia == null)
|
||||||
|
{
|
||||||
pendingMediasByMd5.TryGetValue(media.GetStringFieldValue(SabreTools.Models.Metadata.Media.MD5Key),
|
pendingMediasByMd5.TryGetValue(media.GetStringFieldValue(SabreTools.Models.Metadata.Media.MD5Key),
|
||||||
out dbMedia);
|
out dbMedia);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: SpamSum
|
// TODO: SpamSum
|
||||||
if(dbMedia == null)
|
if(dbMedia == null)
|
||||||
|
|||||||
@@ -45,9 +45,9 @@ public class FileImporter
|
|||||||
_pendingMediasBySha256 = new Dictionary<string, DbMedia>();
|
_pendingMediasBySha256 = new Dictionary<string, DbMedia>();
|
||||||
_pendingMediasBySha1 = new Dictionary<string, DbMedia>();
|
_pendingMediasBySha1 = new Dictionary<string, DbMedia>();
|
||||||
_pendingMediasByMd5 = new Dictionary<string, DbMedia>();
|
_pendingMediasByMd5 = new Dictionary<string, DbMedia>();
|
||||||
_newFiles = new List<DbFile>();
|
_newFiles = [];
|
||||||
_newDisks = new List<DbDisk>();
|
_newDisks = [];
|
||||||
_newMedias = new List<DbMedia>();
|
_newMedias = [];
|
||||||
_onlyKnown = onlyKnown;
|
_onlyKnown = onlyKnown;
|
||||||
_deleteAfterImport = deleteAfterImport;
|
_deleteAfterImport = deleteAfterImport;
|
||||||
_position = 0;
|
_position = 0;
|
||||||
|
|||||||
@@ -52,11 +52,7 @@ public static class Version
|
|||||||
{
|
{
|
||||||
Assembly assembly = typeof(GCSettings).Assembly;
|
Assembly assembly = typeof(GCSettings).Assembly;
|
||||||
|
|
||||||
string[] assemblyPath = assembly.Location.Split(new[]
|
string[] assemblyPath = assembly.Location.Split(['/', '\\'], StringSplitOptions.RemoveEmptyEntries);
|
||||||
{
|
|
||||||
'/', '\\'
|
|
||||||
},
|
|
||||||
StringSplitOptions.RemoveEmptyEntries);
|
|
||||||
|
|
||||||
int netCoreAppIndex = Array.IndexOf(assemblyPath, "Microsoft.NETCore.App");
|
int netCoreAppIndex = Array.IndexOf(assemblyPath, "Microsoft.NETCore.App");
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public sealed class AboutViewModel : ViewModelBase
|
|||||||
LicenseCommand = ReactiveCommand.Create(ExecuteLicenseCommand);
|
LicenseCommand = ReactiveCommand.Create(ExecuteLicenseCommand);
|
||||||
CloseCommand = ReactiveCommand.Create(ExecuteCloseCommand);
|
CloseCommand = ReactiveCommand.Create(ExecuteCloseCommand);
|
||||||
|
|
||||||
Assemblies = new ObservableCollection<AssemblyModel>();
|
Assemblies = [];
|
||||||
|
|
||||||
// TODO: They do not load in time
|
// TODO: They do not load in time
|
||||||
Task.Run(() =>
|
Task.Run(() =>
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ public sealed class ImportDatFolderViewModel : ViewModelBase
|
|||||||
FolderPath = folderPath;
|
FolderPath = folderPath;
|
||||||
_allFilesChecked = false;
|
_allFilesChecked = false;
|
||||||
_recursiveChecked = true;
|
_recursiveChecked = true;
|
||||||
ImportResults = new ObservableCollection<ImportDatFolderItem>();
|
ImportResults = [];
|
||||||
CloseCommand = ReactiveCommand.Create(ExecuteCloseCommand);
|
CloseCommand = ReactiveCommand.Create(ExecuteCloseCommand);
|
||||||
StartCommand = ReactiveCommand.Create(ExecuteStartCommand);
|
StartCommand = ReactiveCommand.Create(ExecuteStartCommand);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public sealed class ImportRomFolderViewModel : ViewModelBase
|
|||||||
_removeFilesChecked = false;
|
_removeFilesChecked = false;
|
||||||
_knownOnlyChecked = true;
|
_knownOnlyChecked = true;
|
||||||
_recurseArchivesChecked = Settings.Settings.UnArUsable;
|
_recurseArchivesChecked = Settings.Settings.UnArUsable;
|
||||||
ImportResults = new ObservableCollection<ImportRomItem>();
|
ImportResults = [];
|
||||||
CloseCommand = ReactiveCommand.Create(ExecuteCloseCommand);
|
CloseCommand = ReactiveCommand.Create(ExecuteCloseCommand);
|
||||||
StartCommand = ReactiveCommand.Create(ExecuteStartCommand);
|
StartCommand = ReactiveCommand.Create(ExecuteStartCommand);
|
||||||
IsReady = true;
|
IsReady = true;
|
||||||
|
|||||||
@@ -162,20 +162,13 @@ public class MainWindowViewModel : ViewModelBase
|
|||||||
|
|
||||||
dlgOpen.Filters.Add(new FileDialogFilter
|
dlgOpen.Filters.Add(new FileDialogFilter
|
||||||
{
|
{
|
||||||
Extensions = new List<string>
|
Extensions = ["dat", "xml"],
|
||||||
{
|
|
||||||
"dat",
|
|
||||||
"xml"
|
|
||||||
},
|
|
||||||
Name = Localization.DatFilesDialogLabel
|
Name = Localization.DatFilesDialogLabel
|
||||||
});
|
});
|
||||||
|
|
||||||
dlgOpen.Filters.Add(new FileDialogFilter
|
dlgOpen.Filters.Add(new FileDialogFilter
|
||||||
{
|
{
|
||||||
Extensions = new List<string>
|
Extensions = ["*"],
|
||||||
{
|
|
||||||
"*"
|
|
||||||
},
|
|
||||||
Name = Localization.AllFilesDialogLabel
|
Name = Localization.AllFilesDialogLabel
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public sealed class UpdateStatsViewModel : ViewModelBase
|
|||||||
CloseCommand = ReactiveCommand.Create(ExecuteCloseCommand);
|
CloseCommand = ReactiveCommand.Create(ExecuteCloseCommand);
|
||||||
IndeterminateProgress = true;
|
IndeterminateProgress = true;
|
||||||
ProgressVisible = false;
|
ProgressVisible = false;
|
||||||
RomSets = new ObservableCollection<RomSetModel>();
|
RomSets = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Title => Localization.UpdateStatsTitle;
|
public string Title => Localization.UpdateStatsTitle;
|
||||||
|
|||||||
Reference in New Issue
Block a user