QuickImage – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 using QuickImage.Database;
2 using Shipwreck.Phash;
3 using System;
4 using System.Collections;
5 using System.Collections.Generic;
6 using System.IO;
7 using System.Linq;
8 using System.Text;
9 using System.Threading;
10 using System.Threading.Tasks;
11 using System.Windows.Forms;
12  
13 namespace QuickImage.ImageListViewSorters
14 {
15 public class DateImageListViewSorter : IComparer, IComparer<ListViewItem>
16 {
17 private readonly SortOrder _sortOrder;
18 private readonly DateImageListViewSorterType _dateImageListViewSorterType;
19  
20 public DateImageListViewSorter()
21 {
22 _sortOrder = SortOrder.Descending;
23 }
24 public DateImageListViewSorter(SortOrder sortOrder) : this()
25 {
26 _sortOrder = sortOrder;
27 }
28  
29 public DateImageListViewSorter(SortOrder sortOrder, DateImageListViewSorterType dateImageListViewSorterType) : this(sortOrder)
30 {
31 _dateImageListViewSorterType = dateImageListViewSorterType;
32 }
33  
34 public int Compare(ListViewItem x, ListViewItem y)
35 {
36 switch (_sortOrder)
37 {
38 case SortOrder.Ascending:
39 switch (_dateImageListViewSorterType)
40 {
41 case DateImageListViewSorterType.Creation:
42 return new FileInfo(x.Name).CreationTime.CompareTo(new FileInfo(y.Name).CreationTime);
43 case DateImageListViewSorterType.Access:
44 return new FileInfo(x.Name).LastAccessTime.CompareTo(new FileInfo(y.Name).LastAccessTime);
45 case DateImageListViewSorterType.Modification:
46 return new FileInfo(x.Name).LastWriteTime.CompareTo(new FileInfo(y.Name).LastWriteTime);
47 }
48  
49 break;
50 case SortOrder.Descending:
51 switch (_dateImageListViewSorterType)
52 {
53 case DateImageListViewSorterType.Creation:
54 return new FileInfo(y.Name).CreationTime.CompareTo(new FileInfo(x.Name).CreationTime);
55 case DateImageListViewSorterType.Access:
56 return new FileInfo(y.Name).LastAccessTime.CompareTo(new FileInfo(x.Name).LastAccessTime);
57 case DateImageListViewSorterType.Modification:
58 return new FileInfo(y.Name).LastWriteTime.CompareTo(new FileInfo(x.Name).LastWriteTime);
59 }
60  
61 break;
62 }
63  
64 return 0;
65 }
66  
67 public int Compare(object x, object y)
68 {
69 return Compare(x as ListViewItem, y as ListViewItem);
70 }
71 }
72 }