|
|
|
@ -1,5 +1,4 @@
|
|
|
|
|
using LiteDB; |
|
|
|
|
using StabilityMatrix.Core.Helper; |
|
|
|
|
using StabilityMatrix.Core.Helper; |
|
|
|
|
using StabilityMatrix.Core.Models.FileInterfaces; |
|
|
|
|
using JsonSerializer = System.Text.Json.JsonSerializer; |
|
|
|
|
using Size = System.Drawing.Size; |
|
|
|
@ -9,7 +8,7 @@ namespace StabilityMatrix.Core.Models.Database;
|
|
|
|
|
/// <summary> |
|
|
|
|
/// Represents a locally indexed image file. |
|
|
|
|
/// </summary> |
|
|
|
|
public class LocalImageFile |
|
|
|
|
public record LocalImageFile |
|
|
|
|
{ |
|
|
|
|
public required string AbsolutePath { get; init; } |
|
|
|
|
|
|
|
|
@ -120,34 +119,15 @@ public class LocalImageFile
|
|
|
|
|
|
|
|
|
|
private sealed class LocalImageFileEqualityComparer : IEqualityComparer<LocalImageFile> |
|
|
|
|
{ |
|
|
|
|
public bool Equals(LocalImageFile? x, LocalImageFile? y) |
|
|
|
|
/// <inheritdoc /> |
|
|
|
|
public bool Equals(LocalImageFile x, LocalImageFile y) |
|
|
|
|
{ |
|
|
|
|
if (ReferenceEquals(x, y)) |
|
|
|
|
return true; |
|
|
|
|
if (ReferenceEquals(x, null)) |
|
|
|
|
return false; |
|
|
|
|
if (ReferenceEquals(y, null)) |
|
|
|
|
return false; |
|
|
|
|
if (x.GetType() != y.GetType()) |
|
|
|
|
return false; |
|
|
|
|
return x.AbsolutePath == y.AbsolutePath |
|
|
|
|
&& x.ImageType == y.ImageType |
|
|
|
|
&& x.CreatedAt.Equals(y.CreatedAt) |
|
|
|
|
&& x.LastModifiedAt.Equals(y.LastModifiedAt) |
|
|
|
|
&& Equals(x.GenerationParameters, y.GenerationParameters) |
|
|
|
|
&& Nullable.Equals(x.ImageSize, y.ImageSize); |
|
|
|
|
return x == y; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public int GetHashCode(LocalImageFile obj) |
|
|
|
|
{ |
|
|
|
|
return HashCode.Combine( |
|
|
|
|
obj.AbsolutePath, |
|
|
|
|
obj.ImageType, |
|
|
|
|
obj.CreatedAt, |
|
|
|
|
obj.LastModifiedAt, |
|
|
|
|
obj.GenerationParameters, |
|
|
|
|
obj.ImageSize |
|
|
|
|
); |
|
|
|
|
return obj.GetHashCode(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|