// Copyright (c) Arlo Godfrey. All Rights Reserved. // Licensed under the GNU Lesser General Public License, Version 3.0 with additional terms. // See the LICENSE, LICENSE.LESSER and LICENSE.ADDITIONAL files in the project root for more information. using System; using StrixMusic.Sdk.BaseModels; namespace StrixMusic.Sdk.ViewModels.Helpers.Comparers { /// /// Compares the LastPlayed item/>. /// /// The to sort. public sealed class LastPlayedComparer : InversableComparer where TPlayableBase : IPlayableBase { /// /// Initializes a new instance of the class. /// /// Sets if the comparer operates in descending order. public LastPlayedComparer(bool isDescending = false) : base(isDescending) { } /// public override int Compare(TPlayableBase x, TPlayableBase y) { // Handling nullable dataTypes while comparison using Nullable. It also compares the values of the dataType provided and returns greater,less or equal relation. int value = Nullable.Compare(x.LastPlayed, y.LastPlayed); return IsDescending ? -value : value; } } }