init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
59
Kreta.BusinessLogic/Extensions/DataSetExtensions.cs
Normal file
59
Kreta.BusinessLogic/Extensions/DataSetExtensions.cs
Normal file
|
@ -0,0 +1,59 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace Kreta.Web.Helpers.Extension
|
||||
{
|
||||
public static class DataSetExtensions
|
||||
{
|
||||
public static List<SelectListItem> CreateMvcGroupedSelectListItem(this DataSet ds, string keyColumn, string valueColumn, string groupNamesColumn, string groupOrderColumn = null)
|
||||
{
|
||||
DataTable dt = ds.Tables.Count > 0 ? ds.Tables[0] : null;
|
||||
if (dt == null)
|
||||
{
|
||||
return new List<SelectListItem>();
|
||||
}
|
||||
EnumerableRowCollection<DataRow> dataRowList = dt.AsEnumerable();
|
||||
if (!string.IsNullOrWhiteSpace(groupOrderColumn))
|
||||
{
|
||||
dataRowList = dataRowList.OrderBy(x => x.Field<int>(groupOrderColumn));
|
||||
}
|
||||
var groups = dataRowList
|
||||
.GroupBy(x => x.Field<string>(groupNamesColumn))
|
||||
.Select(group => new KeyValuePair<string, SelectListGroup>(group.Key, new SelectListGroup { Name = group.Key }))
|
||||
.ToDictionary(item => item.Key, item => item.Value);
|
||||
|
||||
var result = dt.Rows
|
||||
.Cast<DataRow>()
|
||||
.Select(item => new SelectListItem
|
||||
{
|
||||
Group = groups[item.Field<string>(groupNamesColumn)],
|
||||
Text = item.Field<string>(valueColumn),
|
||||
Value = item.Field<int>(keyColumn).ToString()
|
||||
})
|
||||
.ToList();
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<SelectListItem> CreateMvcSelectListItem(this DataSet ds, string keyColumn, string valueColumn)
|
||||
{
|
||||
DataTable dt = ds.Tables.Count > 0 ? ds.Tables[0] : null;
|
||||
if (dt == null)
|
||||
{
|
||||
return new List<SelectListItem>();
|
||||
}
|
||||
EnumerableRowCollection<DataRow> dataRowList = dt.AsEnumerable();
|
||||
|
||||
var result = dt.Rows
|
||||
.Cast<DataRow>()
|
||||
.Select(item => new SelectListItem
|
||||
{
|
||||
Text = item.Field<string>(valueColumn),
|
||||
Value = item.Field<int>(keyColumn).ToString()
|
||||
})
|
||||
.ToList();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue