// 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 duration />.
///
public sealed class AddedAtComparer : InversableComparer
where TCollectionItem : IPlayableCollectionItem
{
///
/// Initializes a new instance of the class.
///
/// Sets if the comparer operates in descending order.
public AddedAtComparer(bool isDescending = false) : base(isDescending)
{
}
///
public override int Compare(TCollectionItem x, TCollectionItem 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.AddedAt, y.AddedAt);
return IsDescending ? -value : value;
}
}
}