diff --git a/DiscImageChef.Server/Areas/Admin/Controllers/ReportsController.cs b/DiscImageChef.Server/Areas/Admin/Controllers/ReportsController.cs
index d0159a4d..9ae1a670 100644
--- a/DiscImageChef.Server/Areas/Admin/Controllers/ReportsController.cs
+++ b/DiscImageChef.Server/Areas/Admin/Controllers/ReportsController.cs
@@ -28,14 +28,39 @@ namespace DiscImageChef.Server.Areas.Admin.Controllers
return NotFound();
}
- UploadedReport uploadedReport = await _context.Reports.FirstOrDefaultAsync(m => m.Id == id);
+ var model = new UploadedReportDetails
+ {
+ Report = await _context.Reports.FirstOrDefaultAsync(m => m.Id == id)
+ };
- if(uploadedReport == null)
+ if(model.Report is null)
{
return NotFound();
}
- return View(uploadedReport);
+ model.ReportAll = _context.
+ Devices.Where(d => d.Manufacturer == model.Report.Manufacturer &&
+ d.Model == model.Report.Model &&
+ d.Revision == model.Report.Revision).
+ Select(d => d.Id).ToList();
+
+ model.ReportButManufacturer = _context.
+ Devices.Where(d => d.Model == model.Report.Model &&
+ d.Revision == model.Report.Revision).Select(d => d.Id).
+ Where(d => model.ReportAll.All(r => r != d)).ToList();
+
+ model.SameAll = _context.
+ Reports.Where(d => d.Manufacturer == model.Report.Manufacturer &&
+ d.Model == model.Report.Model &&
+ d.Revision == model.Report.Revision &&
+ d.Id != id).Select(d => d.Id).ToList();
+
+ model.SameButManufacturer = _context.
+ Reports.Where(d => d.Model == model.Report.Model &&
+ d.Revision == model.Report.Revision && d.Id != id).
+ Select(d => d.Id).Where(d => model.SameAll.All(r => r != d)).ToList();
+
+ return View(model);
}
// GET: Admin/Reports/Edit/5
diff --git a/DiscImageChef.Server/Areas/Admin/Views/Reports/Details.cshtml b/DiscImageChef.Server/Areas/Admin/Views/Reports/Details.cshtml
index 4332f365..645bc968 100644
--- a/DiscImageChef.Server/Areas/Admin/Views/Reports/Details.cshtml
+++ b/DiscImageChef.Server/Areas/Admin/Views/Reports/Details.cshtml
@@ -1,52 +1,173 @@
-@model UploadedReport
+@model UploadedReportDetails
@{
ViewData["Title"] = "Details";
}
Details
-
UploadedReport
+
Uploaded report
-
- @Html.DisplayNameFor(model => model.UploadedWhen)
+ @Html.DisplayNameFor(model => model.Report.UploadedWhen)
-
- @Html.DisplayFor(model => model.UploadedWhen)
+ @Html.DisplayFor(model => model.Report.UploadedWhen)
-
- @Html.DisplayNameFor(model => model.CompactFlash)
+ @Html.DisplayNameFor(model => model.Report.Manufacturer)
-
- @Html.DisplayFor(model => model.CompactFlash)
+ @Html.DisplayFor(model => model.Report.Manufacturer)
-
- @Html.DisplayNameFor(model => model.Manufacturer)
+ @Html.DisplayNameFor(model => model.Report.Model)
-
- @Html.DisplayFor(model => model.Manufacturer)
+ @Html.DisplayFor(model => model.Report.Model)
-
- @Html.DisplayNameFor(model => model.Model)
+ @Html.DisplayNameFor(model => model.Report.Revision)
-
- @Html.DisplayFor(model => model.Model)
+ @Html.DisplayFor(model => model.Report.Revision)
-
- @Html.DisplayNameFor(model => model.Revision)
+ @Html.DisplayNameFor(model => model.Report.CompactFlash)
-
- @Html.DisplayFor(model => model.Revision)
+ @Html.DisplayFor(model => model.Report.CompactFlash)
-
- @Html.DisplayNameFor(model => model.Type)
+ @Html.DisplayNameFor(model => model.Report.Type)
-
- @Html.DisplayFor(model => model.Type)
+ @Html.DisplayFor(model => model.Report.Type)
\ No newline at end of file
+
+@if (Model.SameAll.Count > 0)
+{
+
+
Other uploaded reports with same manufacturer, model and revision:
+
+
+
+ |
+ Id
+ |
+ |
+
+
+
+ @foreach (var item in Model.SameAll)
+ {
+
+ |
+ @item
+ |
+
+ Details
+ Merge
+ |
+
+ }
+
+
+
+}
+@if (Model.SameButManufacturer.Count > 0)
+{
+
+
Other uploaded reports with same model and revision:
+
+
+
+ |
+ Id
+ |
+ |
+
+
+
+ @foreach (var item in Model.SameButManufacturer)
+ {
+
+ |
+ @item
+ |
+
+ Details
+ Merge
+ |
+
+ }
+
+
+
+}
+@if (Model.ReportAll.Count > 0)
+{
+
+
Device reports with same manufacturer, model and revision:
+
+
+
+ |
+ Id
+ |
+ |
+
+
+
+ @foreach (var item in Model.ReportAll)
+ {
+
+ |
+ @item
+ |
+
+ Details
+ Merge
+ |
+
+ }
+
+
+
+}
+@if (Model.ReportButManufacturer.Count > 0)
+{
+
+
Device reports with same model and revision:
+
+
+
+ |
+ Id
+ |
+ |
+
+
+
+ @foreach (var item in Model.ReportButManufacturer)
+ {
+
+ |
+ @item
+ |
+
+ Details
+ Merge
+ |
+
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/DiscImageChef.Server/Models/UploadedReportDetails.cs b/DiscImageChef.Server/Models/UploadedReportDetails.cs
new file mode 100644
index 00000000..aa8bafc8
--- /dev/null
+++ b/DiscImageChef.Server/Models/UploadedReportDetails.cs
@@ -0,0 +1,13 @@
+using System.Collections.Generic;
+
+namespace DiscImageChef.Server.Models
+{
+ public class UploadedReportDetails
+ {
+ public UploadedReport Report { get; set; }
+ public List SameAll { get; set; }
+ public List SameButManufacturer { get; set; }
+ public List ReportAll { get; set; }
+ public List ReportButManufacturer { get; set; }
+ }
+}
\ No newline at end of file