56 lines
1.7 KiB
C#
56 lines
1.7 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Windows.Forms;
|
|
using Common;
|
|
|
|
namespace Users.Forms
|
|
{
|
|
class LviNameSurnameColumnComparer : IComparer
|
|
{
|
|
private int column;
|
|
MySortOrder order;
|
|
|
|
public LviNameSurnameColumnComparer()
|
|
{
|
|
column = 0;
|
|
order = MySortOrder.Ascending;
|
|
}
|
|
|
|
public LviNameSurnameColumnComparer(int column, MySortOrder order)
|
|
{
|
|
this.column = column;
|
|
this.order = order;
|
|
}
|
|
|
|
public int Compare(object x, object y)
|
|
{
|
|
string nameX = ((ListViewItem)x).SubItems[column].Text;
|
|
string nameY = ((ListViewItem)y).SubItems[column].Text;
|
|
string surnameX;
|
|
string surnameY;
|
|
|
|
switch (order)
|
|
{
|
|
case MySortOrder.Ascending:
|
|
return String.Compare(nameX, nameY);
|
|
|
|
case MySortOrder.Descending:
|
|
return String.Compare(nameY, nameX);
|
|
|
|
case MySortOrder.Ascending2:
|
|
surnameX = (nameX.IndexOf(' ') > 0) ? nameX.Substring(nameX.IndexOf(' ') + 1) : nameX;
|
|
surnameY = (nameX.IndexOf(' ') > 0) ? nameY.Substring(nameY.IndexOf(' ') + 1) : nameY;
|
|
return String.Compare(surnameX, surnameY);
|
|
|
|
case MySortOrder.Descending2:
|
|
surnameX = (nameX.IndexOf(' ') > 0) ? nameX.Substring(nameX.IndexOf(' ') + 1) : nameX;
|
|
surnameY = (nameX.IndexOf(' ') > 0) ? nameY.Substring(nameY.IndexOf(' ') + 1) : nameY;
|
|
return String.Compare(surnameY, surnameX);
|
|
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
}
|