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)
- Edit + Edit + Promote Back to List -
\ No newline at end of file + +@if (Model.SameAll.Count > 0) +{ +
+

Other uploaded reports with same manufacturer, model and revision:

+ + + + + + + + + @foreach (var item in Model.SameAll) + { + + + + + } + +
+ Id +
+ @item + + Details + Merge +
+
+} +@if (Model.SameButManufacturer.Count > 0) +{ +
+

Other uploaded reports with same model and revision:

+ + + + + + + + + @foreach (var item in Model.SameButManufacturer) + { + + + + + } + +
+ Id +
+ @item + + Details + Merge +
+
+} +@if (Model.ReportAll.Count > 0) +{ +
+

Device reports with same manufacturer, model and revision:

+ + + + + + + + + @foreach (var item in Model.ReportAll) + { + + + + + } + +
+ Id +
+ @item + + Details + Merge +
+
+} +@if (Model.ReportButManufacturer.Count > 0) +{ +
+

Device reports with same model and revision:

+ + + + + + + + + @foreach (var item in Model.ReportButManufacturer) + { + + + + + } + +
+ Id +
+ @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