diff options
Diffstat (limited to 'Emby.Naming/AudioBook/AudioBookFileInfo.cs')
| -rw-r--r-- | Emby.Naming/AudioBook/AudioBookFileInfo.cs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Emby.Naming/AudioBook/AudioBookFileInfo.cs b/Emby.Naming/AudioBook/AudioBookFileInfo.cs new file mode 100644 index 000000000..88a98d0f1 --- /dev/null +++ b/Emby.Naming/AudioBook/AudioBookFileInfo.cs @@ -0,0 +1,49 @@ + +using System; +using Emby.Naming.Video; + +namespace Emby.Naming.AudioBook +{ + /// <summary> + /// Represents a single video file + /// </summary> + public class AudioBookFileInfo : IComparable<AudioBookFileInfo> + { + /// <summary> + /// Gets or sets the path. + /// </summary> + /// <value>The path.</value> + public string Path { get; set; } + /// <summary> + /// Gets or sets the container. + /// </summary> + /// <value>The container.</value> + public string Container { get; set; } + /// <summary> + /// Gets or sets the part number. + /// </summary> + /// <value>The part number.</value> + public int? PartNumber { get; set; } + /// <summary> + /// Gets or sets the chapter number. + /// </summary> + /// <value>The chapter number.</value> + public int? ChapterNumber { get; set; } + /// <summary> + /// Gets or sets the type. + /// </summary> + /// <value>The type.</value> + public bool IsDirectory { get; set; } + + public int CompareTo(AudioBookFileInfo other) + { + if (ReferenceEquals(this, other)) return 0; + if (ReferenceEquals(null, other)) return 1; + var chapterNumberComparison = Nullable.Compare(ChapterNumber, other.ChapterNumber); + if (chapterNumberComparison != 0) return chapterNumberComparison; + var partNumberComparison = Nullable.Compare(PartNumber, other.PartNumber); + if (partNumberComparison != 0) return partNumberComparison; + return string.Compare(Path, other.Path, StringComparison.Ordinal); + } + } +} |
