44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
#region License
|
|
//The contents of this file are subject to the Mozilla Public License
|
|
//Version 1.1 (the "License"); you may not use this file except in
|
|
//compliance with the License. You may obtain a copy of the License at
|
|
//http://www.mozilla.org/MPL/
|
|
//Software distributed under the License is distributed on an "AS IS"
|
|
//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
|
//License for the specific language governing rights and limitations
|
|
//under the License.
|
|
#endregion
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using Migrator.Framework;
|
|
|
|
namespace Migrator
|
|
{
|
|
/// <summary>
|
|
/// Comparer of Migration by their version attribute.
|
|
/// </summary>
|
|
public class MigrationTypeComparer : IComparer<Type>
|
|
{
|
|
private readonly bool _ascending = true;
|
|
|
|
public MigrationTypeComparer(bool ascending)
|
|
{
|
|
_ascending = ascending;
|
|
}
|
|
|
|
public int Compare(Type x, Type y)
|
|
{
|
|
MigrationAttribute attribOfX = (MigrationAttribute) Attribute.GetCustomAttribute(x, typeof(MigrationAttribute));
|
|
MigrationAttribute attribOfY = (MigrationAttribute) Attribute.GetCustomAttribute(y, typeof(MigrationAttribute));
|
|
|
|
if (_ascending)
|
|
return attribOfX.Version.CompareTo(attribOfY.Version);
|
|
else
|
|
return attribOfY.Version.CompareTo(attribOfX.Version);
|
|
|
|
|
|
}
|
|
}
|
|
}
|