91 |
#region IDataSourceSortable members |
#region IDataSourceSortable members |
92 |
public void Sort(ref object source, params string[] args) |
public void Sort(ref object source, params string[] args) |
93 |
{ |
{ |
94 |
ProgramDefinitionList list = null; |
List<IProgramDefinition> list = null; |
95 |
|
IOrderedEnumerable<IProgramDefinition> ordered = null; |
96 |
try |
try |
97 |
{ |
{ |
98 |
list = (ProgramDefinitionList)source; |
list = (ProgramDefinitionList)source; |
99 |
|
ordered = list.OrderBy(s => s); |
100 |
|
|
101 |
var col = args[0].ToLower(); |
foreach (object arg in args) |
|
switch (col) |
|
102 |
{ |
{ |
103 |
case "channelname": list =new ProgramDefinitionList( list.OrderBy(s => s.ChannelName).ToList()); break; |
var col = arg.ToString().ToLower(); |
104 |
case "start": list = new ProgramDefinitionList( list.OrderBy(s => s.Start).ToList()); break; |
switch (col) |
105 |
case "stop": list = new ProgramDefinitionList( list.OrderBy(s => s.Stop).ToList()); break; |
{ |
106 |
case "description": list = new ProgramDefinitionList( list.OrderBy(s => s.Description).ToList()); break; |
case "channelname": ordered = ordered.ThenBy(s => s.ChannelName); break; |
107 |
case "title": list = new ProgramDefinitionList( list.OrderBy(s => s.Title).ToList()); break; |
case "start": ordered = ordered.ThenBy(s => s.Start); break; |
108 |
case "subtitle": list = new ProgramDefinitionList(list.OrderBy(s => s.SubTitle).ToList()); break; |
case "stop": ordered = ordered.ThenBy(s => s.Stop); break; |
109 |
|
case "description": ordered = ordered.ThenBy(s => s.Description); break; |
110 |
|
case "title": ordered = ordered.ThenBy(s => s.Title); break; |
111 |
|
case "subtitle": ordered = ordered.ThenBy(s => s.SubTitle); break; |
112 |
|
} |
113 |
} |
} |
114 |
|
|
115 |
|
var k = ordered.ToList(); |
116 |
|
|
117 |
|
//list = new ProgramDefinitionList(ordered.ToList()).ToList(); |
118 |
|
//var col = args[0].ToLower(); |
119 |
|
//switch (col) |
120 |
|
//{ |
121 |
|
// case "channelname": list =new ProgramDefinitionList( list.OrderBy(s => s.ChannelName).ToList()); break; |
122 |
|
// case "start": list = new ProgramDefinitionList( list.OrderBy(s => s.Start).ToList()); break; |
123 |
|
// case "stop": list = new ProgramDefinitionList( list.OrderBy(s => s.Stop).ToList()); break; |
124 |
|
// case "description": list = new ProgramDefinitionList( list.OrderBy(s => s.Description).ToList()); break; |
125 |
|
// case "title": list = new ProgramDefinitionList( list.OrderBy(s => s.Title).ToList()); break; |
126 |
|
// case "subtitle": list = new ProgramDefinitionList(list.OrderBy(s => s.SubTitle).ToList()); break; |
127 |
|
//} |
128 |
|
|
129 |
} |
} |
130 |
catch (Exception ex) { throw ex; } |
catch (Exception ex) { throw ex; } |
131 |
if (list != null) { source = list; } |
if (list != null) { source = list; } |