Fix saving modified ATA entities.

This commit is contained in:
2019-11-10 13:24:25 +00:00
parent cbc417a67e
commit 3e12a41a5f
3 changed files with 23 additions and 26 deletions

View File

@@ -71,8 +71,6 @@ namespace DiscImageChef.Server.Areas.Admin.Controllers
return RedirectToAction(nameof(Index)); return RedirectToAction(nameof(Index));
} }
bool AtaExists(int id) => _context.Ata.Any(e => e.Id == id);
public IActionResult Consolidate() public IActionResult Consolidate()
{ {
List<IdHashModel> hashes = List<IdHashModel> hashes =
@@ -126,29 +124,30 @@ namespace DiscImageChef.Server.Areas.Admin.Controllers
if(slave is null) if(slave is null)
continue; continue;
foreach(Device ataDevice in _context.Devices.Where(d => d.ATAId == duplicateId)) foreach(Device ataDevice in _context.Devices.Where(d => d.ATA.Id == duplicateId))
{ {
ataDevice.ATAId = duplicate.Id; ataDevice.ATA = master;
} }
foreach(Device atapiDevice in _context.Devices.Where(d => d.ATAPIId == duplicateId)) foreach(Device atapiDevice in _context.Devices.Where(d => d.ATAPI.Id == duplicateId))
{ {
atapiDevice.ATAPIId = duplicate.Id; atapiDevice.ATAPI = master;
} }
foreach(UploadedReport ataReport in _context.Reports.Where(d => d.ATAId == duplicateId)) foreach(UploadedReport ataReport in _context.Reports.Where(d => d.ATA.Id == duplicateId))
{ {
ataReport.ATAId = duplicate.Id; ataReport.ATA = master;
} }
foreach(UploadedReport atapiReport in _context.Reports.Where(d => d.ATAPIId == duplicateId)) foreach(UploadedReport atapiReport in _context.Reports.Where(d => d.ATAPI.Id == duplicateId))
{ {
atapiReport.ATAPIId = duplicate.Id; atapiReport.ATAPI = master;
} }
foreach(TestedMedia testedMedia in _context.TestedMedia.Where(d => d.AtaId == duplicateId)) foreach(TestedMedia testedMedia in slave.RemovableMedias)
{ {
testedMedia.AtaId = duplicate.Id; testedMedia.AtaId = duplicate.Id;
_context.Update(testedMedia);
} }
if(master.ReadCapabilities is null && if(master.ReadCapabilities is null &&
@@ -182,29 +181,30 @@ namespace DiscImageChef.Server.Areas.Admin.Controllers
id = masterId, rightId = slaveId id = masterId, rightId = slaveId
}); });
foreach(Device ataDevice in _context.Devices.Where(d => d.ATAId == slaveId)) foreach(Device ataDevice in _context.Devices.Where(d => d.ATA.Id == slaveId))
{ {
ataDevice.ATAId = masterId; ataDevice.ATA = master;
} }
foreach(Device atapiDevice in _context.Devices.Where(d => d.ATAPIId == slaveId)) foreach(Device atapiDevice in _context.Devices.Where(d => d.ATAPI.Id == slaveId))
{ {
atapiDevice.ATAPIId = masterId; atapiDevice.ATAPI = master;
} }
foreach(UploadedReport ataReport in _context.Reports.Where(d => d.ATAId == slaveId)) foreach(UploadedReport ataReport in _context.Reports.Where(d => d.ATA.Id == slaveId))
{ {
ataReport.ATAId = masterId; ataReport.ATA = master;
} }
foreach(UploadedReport atapiReport in _context.Reports.Where(d => d.ATAPIId == slaveId)) foreach(UploadedReport atapiReport in _context.Reports.Where(d => d.ATAPI.Id == slaveId))
{ {
atapiReport.ATAPIId = masterId; atapiReport.ATAPI = master;
} }
foreach(TestedMedia testedMedia in _context.TestedMedia.Where(d => d.AtaId == slaveId)) foreach(TestedMedia testedMedia in _context.TestedMedia.Where(d => d.AtaId == slaveId))
{ {
testedMedia.AtaId = masterId; testedMedia.AtaId = masterId;
_context.Update(testedMedia);
} }
if(master.ReadCapabilities is null && if(master.ReadCapabilities is null &&
@@ -220,10 +220,11 @@ namespace DiscImageChef.Server.Areas.Admin.Controllers
public IActionResult Compare(int id, int rightId) public IActionResult Compare(int id, int rightId)
{ {
var model = new CompareModel(); var model = new CompareModel
{
LeftId = id, RightId = rightId
};
model.LeftId = id;
model.RightId = rightId;
CommonTypes.Metadata.Ata left = _context.Ata.FirstOrDefault(l => l.Id == id); CommonTypes.Metadata.Ata left = _context.Ata.FirstOrDefault(l => l.Id == id);
CommonTypes.Metadata.Ata right = _context.Ata.FirstOrDefault(r => r.Id == rightId); CommonTypes.Metadata.Ata right = _context.Ata.FirstOrDefault(r => r.Id == rightId);

View File

@@ -65,7 +65,5 @@ namespace DiscImageChef.Server.Models
[DefaultValue(0)] [DefaultValue(0)]
public int OptimalMultipleSectorsRead { get; set; } public int OptimalMultipleSectorsRead { get; set; }
public int? ATAId { get; set; }
public int? ATAPIId { get; set; }
} }
} }

View File

@@ -58,7 +58,5 @@ namespace DiscImageChef.Server.Models
} }
public DateTime UploadedWhen { get; set; } public DateTime UploadedWhen { get; set; }
public int? ATAId { get; set; }
public int? ATAPIId { get; set; }
} }
} }