Select only distinct density codes when creating device report.

This commit is contained in:
2019-05-26 00:44:51 +01:00
parent ab670f36b0
commit 5ef78954b0
2 changed files with 26 additions and 5 deletions

View File

@@ -1683,9 +1683,30 @@ namespace DiscImageChef.CommonTypes.Metadata
}
}
public class DensityCode
public class DensityCode : IEquatable<DensityCode>
{
[JsonIgnore]
[Key]
public int Id { get; set; }
public int Code { get; set; }
public bool Equals(DensityCode other)
{
if(ReferenceEquals(null, other)) return false;
if(ReferenceEquals(this, other)) return true;
return Code == other.Code;
}
public override bool Equals(object obj)
{
if(ReferenceEquals(null, obj)) return false;
if(ReferenceEquals(this, obj)) return true;
return obj.GetType() == GetType() && Equals((DensityCode)obj);
}
public override int GetHashCode() => Code;
}
}

View File

@@ -110,9 +110,9 @@ namespace DiscImageChef.Core.Devices.Report
if(mtsh.Value.descriptors[i].densityCodes == null) continue;
DensityCode[] array3 = new DensityCode[mtsh.Value.descriptors[i].densityCodes.Length];
for(int j = 0; j < mtsh.Value.descriptors.Length; j++)
for(int j = 0; j < mtsh.Value.descriptors[i].densityCodes.Length; j++)
array3[j] = new DensityCode {Code = mtsh.Value.descriptors[i].densityCodes[j]};
array2[i].DensityCodes = array3.ToList();
array2[i].DensityCodes = array3.Distinct().ToList();
}
report.SupportedMediaTypes = array2.ToList();
@@ -201,9 +201,9 @@ namespace DiscImageChef.Core.Devices.Report
if(mtsh.Value.descriptors[i].densityCodes == null) continue;
DensityCode[] array2 = new DensityCode[mtsh.Value.descriptors[i].densityCodes.Length];
for(int j = 0; j < mtsh.Value.descriptors.Length; j++)
for(int j = 0; j < mtsh.Value.descriptors[i].densityCodes.Length; j++)
array2[j] = new DensityCode {Code = mtsh.Value.descriptors[i].densityCodes[j]};
array[i].DensityCodes = array2.ToList();
array[i].DensityCodes = array2.Distinct().ToList();
}
seqTest.SupportedMediaTypes = array.ToList();