Fix calculation of statistics when adding a DAT.

This commit is contained in:
2020-09-05 02:36:01 +01:00
parent 9f14a82222
commit 9818cd43c6

View File

@@ -730,29 +730,30 @@ namespace RomRepoMgr.Core.Workers
Version = romSet.Version,
TotalMachines = romSet.Machines.Count,
CompleteMachines =
romSet.Machines.Count(m => m.Files.Count > 0 && m.Disks.Count == 0 &&
romSet.Machines.Count(m => m.Files?.Count > 0 && m.Disks == null &&
m.Files.All(f => f.File.IsInRepo)) +
romSet.Machines.Count(m => m.Disks.Count > 0 && m.Files.Count == 0 &&
romSet.Machines.Count(m => m.Disks?.Count > 0 && m.Files == null &&
m.Disks.All(f => f.Disk.IsInRepo)) +
romSet.Machines.Count(m => m.Files.Count > 0 && m.Disks.Count > 0 &&
romSet.Machines.Count(m => m.Files?.Count > 0 && m.Disks?.Count > 0 &&
m.Files.All(f => f.File.IsInRepo) &&
m.Disks.All(f => f.Disk.IsInRepo)),
IncompleteMachines =
romSet.Machines.Count(m => m.Files.Count > 0 && m.Disks.Count == 0 &&
romSet.Machines.Count(m => m.Files?.Count > 0 && m.Disks == null &&
m.Files.Any(f => !f.File.IsInRepo)) +
romSet.Machines.Count(m => m.Disks.Count > 0 && m.Files.Count == 0 &&
romSet.Machines.Count(m => m.Disks?.Count > 0 && m.Files == null &&
m.Disks.Any(f => !f.Disk.IsInRepo)) +
romSet.Machines.Count(m => m.Files.Count > 0 && m.Disks.Count > 0 &&
romSet.Machines.Count(m => m.Files?.Count > 0 && m.Disks?.Count > 0 &&
(m.Files.Any(f => !f.File.IsInRepo) ||
m.Disks.Any(f => !f.Disk.IsInRepo))),
TotalRoms = romSet.Machines.Sum(m => m.Files.Count) + romSet.Machines.Sum(m => m.Disks.Count) +
romSet.Machines.Sum(m => m.Medias.Count),
HaveRoms = romSet.Machines.Sum(m => m.Files.Count(f => f.File.IsInRepo)) +
romSet.Machines.Sum(m => m.Disks.Count(f => f.Disk.IsInRepo)) +
romSet.Machines.Sum(m => m.Medias.Count(f => f.Media.IsInRepo)),
MissRoms = romSet.Machines.Sum(m => m.Files.Count(f => !f.File.IsInRepo)) +
romSet.Machines.Sum(m => m.Disks.Count(f => !f.Disk.IsInRepo)) +
romSet.Machines.Sum(m => m.Medias.Count(f => !f.Media.IsInRepo)),
TotalRoms = romSet.Machines.Sum(m => m.Files?.Count ?? 0) +
romSet.Machines.Sum(m => m.Disks?.Count ?? 0) +
romSet.Machines.Sum(m => m.Medias?.Count ?? 0),
HaveRoms = romSet.Machines.Sum(m => m.Files?.Count(f => f.File.IsInRepo) ?? 0) +
romSet.Machines.Sum(m => m.Disks?.Count(f => f.Disk.IsInRepo) ?? 0) +
romSet.Machines.Sum(m => m.Medias?.Count(f => f.Media.IsInRepo) ?? 0),
MissRoms = romSet.Machines.Sum(m => m.Files?.Count(f => !f.File.IsInRepo) ?? 0) +
romSet.Machines.Sum(m => m.Disks?.Count(f => !f.Disk.IsInRepo) ?? 0) +
romSet.Machines.Sum(m => m.Medias?.Count(f => !f.Media.IsInRepo) ?? 0),
Category = _category
}
});