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