Fix statistical queries.

This commit is contained in:
2020-09-04 03:27:44 +01:00
parent d6e23ca95e
commit 8d000b979d
2 changed files with 36 additions and 16 deletions

View File

@@ -581,11 +581,21 @@ namespace RomRepoMgr.Core.Workers
Version = romSet.Version, Version = romSet.Version,
TotalMachines = romSet.Machines.Count, TotalMachines = romSet.Machines.Count,
CompleteMachines = CompleteMachines =
romSet.Machines.Count(m => m.Files.All(f => f.File.IsInRepo) && romSet.Machines.Count(m => m.Files.Count > 0 && m.Disks.Count == 0 &&
m.Files.All(f => f.File.IsInRepo)) +
romSet.Machines.Count(m => m.Disks.Count > 0 && m.Files.Count == 0 &&
m.Disks.All(f => f.Disk.IsInRepo)) +
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)), m.Disks.All(f => f.Disk.IsInRepo)),
IncompleteMachines = IncompleteMachines =
romSet.Machines.Count(m => m.Files.Any(f => !f.File.IsInRepo) || romSet.Machines.Count(m => m.Files.Count > 0 && m.Disks.Count == 0 &&
m.Disks.Any(f => !f.Disk.IsInRepo)), m.Files.Any(f => !f.File.IsInRepo)) +
romSet.Machines.Count(m => m.Disks.Count > 0 && m.Files.Count == 0 &&
m.Disks.Any(f => !f.Disk.IsInRepo)) +
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), TotalRoms = romSet.Machines.Sum(m => m.Files.Count) + romSet.Machines.Sum(m => m.Disks.Count),
HaveRoms = romSet.Machines.Sum(m => m.Files.Count(f => f.File.IsInRepo)) + 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.Disks.Count(f => f.Disk.IsInRepo)),

View File

@@ -329,11 +329,21 @@ namespace RomRepoMgr.ViewModels
Version = r.Version, Version = r.Version,
TotalMachines = r.Machines.Count, TotalMachines = r.Machines.Count,
CompleteMachines = CompleteMachines =
r.Machines.Count(m => m.Files.All(f => f.File.IsInRepo) && r.Machines.Count(m => m.Files.Count > 0 && m.Disks.Count == 0 &&
m.Files.All(f => f.File.IsInRepo)) +
r.Machines.Count(m => m.Disks.Count > 0 && m.Files.Count == 0 &&
m.Disks.All(f => f.Disk.IsInRepo)) +
r.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)), m.Disks.All(f => f.Disk.IsInRepo)),
IncompleteMachines = IncompleteMachines =
r.Machines.Count(m => m.Files.Any(f => !f.File.IsInRepo) || r.Machines.Count(m => m.Files.Count > 0 && m.Disks.Count == 0 &&
m.Disks.Any(f => !f.Disk.IsInRepo)), m.Files.Any(f => !f.File.IsInRepo)) +
r.Machines.Count(m => m.Disks.Count > 0 && m.Files.Count == 0 &&
m.Disks.Any(f => !f.Disk.IsInRepo)) +
r.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 = r.Machines.Sum(m => m.Files.Count) + TotalRoms = r.Machines.Sum(m => m.Files.Count) +
r.Machines.Sum(m => m.Disks.Count), r.Machines.Sum(m => m.Disks.Count),
HaveRoms = r.Machines.Sum(m => m.Files.Count(f => f.File.IsInRepo)) + HaveRoms = r.Machines.Sum(m => m.Files.Count(f => f.File.IsInRepo)) +