private void ColumnsNameDropDownList(EContactColumnsName selected) { IEnumerable <EContactColumnsName> values = Enum.GetValues(typeof(EContactColumnsName)).Cast <EContactColumnsName>(); var items = from value in values select new SelectListItem { Text = value.ToString(), Value = value.ToString(), Selected = value == selected }; ViewBag.ColumnName = items; }
public ActionResult Index(string sortOrder, string currentKey, string key, EContactColumnsName columnName = EContactColumnsName.All) { ViewBag.CurrentSort = sortOrder; ViewBag.NameParam = string.IsNullOrEmpty(sortOrder) ? "name_desc" : null; ViewBag.StatusSortParam = sortOrder == "status" ? "status_desc" : "status"; ViewBag.DateSortParam = sortOrder == "date" ? "date_desc" : "date"; if (key == null) { key = currentKey; } ViewBag.CurrentKey = key; ViewBag.CurrentColumnName = columnName; ColumnsNameDropDownList(columnName); return(View(_unitOfWork._ContactRepo.GetListByFilterAndSort(sortOrder, key, columnName))); }
public IEnumerable <Contact> GetListByFilterAndSort(string sortOrder, string key, EContactColumnsName columnName) { var contacts = from c in this.Select() select c; if (!string.IsNullOrEmpty(key)) { key = key.ToUpper(); contacts = columnName == EContactColumnsName.Name ? contacts.Where(c => c.Name.ToUpper().Contains(key)) : columnName == EContactColumnsName.Email ? contacts.Where(c => c.Email.ToUpper().Contains(key)) : columnName == EContactColumnsName.Phone ? contacts.Where(c => c.Phone.ToUpper().Contains(key)) : contacts.Where(c => c.Name.ToUpper().Contains(key) || c.Email.ToUpper().Contains(key) || c.Phone.ToUpper().Contains(key)); } contacts = sortOrder == "name_desc" ? contacts.OrderByDescending(c => c.Name) : sortOrder == "status_desc" ? contacts.OrderByDescending(c => c.Status) : sortOrder == "status" ? contacts.OrderBy(c => c.Status) : sortOrder == "date" ? contacts.OrderBy(c => c.CreatedDate) : contacts.OrderBy(c => c.Name); return(contacts.ToList()); }