public static IQueryable <T> Sort <T>(this IQueryable <T> entities, SearchEngineDTO filter, string defaultSortColumn, List <string> sortColumns) { try { entities = entities.OrderBy(defaultSortColumn); var isAscSort = true; if (!string.IsNullOrWhiteSpace(filter.Sort) && (filter.Sort.Contains(Constant.AscSort) || filter.Sort.Contains(Constant.DescSort))) { isAscSort = filter.Sort.Contains(Constant.AscSort) ? true : false; foreach (var column in sortColumns) { if (filter.Sort.Contains(column)) { if (isAscSort) { entities = entities.OrderBy(column); } else { entities = entities.OrderBy(column + " descending"); } break; } } } return(entities); } catch (Exception ex) { return(null); } }
public BaseObjectManagementDTO <DealerApplicationConfigurationDTO> GetAll(SearchEngineDTO filter) { try { var dealersContext = CommonContext.DealerApplicationConfiguration.AsQueryable(); if (!string.IsNullOrEmpty(filter.Search)) { filter.Search = filter.Search.ToLower(); dealersContext = dealersContext.Where(x => x.DealerId.ToLower().Contains(filter.Search) || x.Application.Contains(filter.Search) || x.DeviceId.Contains(filter.Search) || x.DeviceDescription.Contains(filter.Search)); } if (filter.FilterEngines.Count > 0) { dealersContext = FilterDealerApplicationConfigs(dealersContext, filter.FilterEngines); } if (!string.IsNullOrEmpty(filter.Sort)) { var isAscSort = filter.Sort.Contains(Constant.AscSort); if (filter.Sort.Contains(DealerApplicationConfigFields.DealerId.ToString())) { dealersContext = dealersContext.Sort(filter, DealerApplicationConfigFields.DealerId.ToString(), Enum.GetNames(typeof(DealerApplicationConfigFields)).ToList()); } else if (filter.Sort.Contains(DealerApplicationConfigFields.Application.ToString().ToLower())) { dealersContext = dealersContext.Sort(filter, DealerApplicationConfigFields.Application.ToString(), Enum.GetNames(typeof(DealerApplicationConfigFields)).ToList()); } else if (filter.Sort.Contains(DealerApplicationConfigFields.DeviceId.ToString().ToLower())) { dealersContext = dealersContext.Sort(filter, DealerApplicationConfigFields.DeviceId.ToString(), Enum.GetNames(typeof(DealerApplicationConfigFields)).ToList()); } else if (filter.Sort.Contains(DealerApplicationConfigFields.DeviceDescription.ToString().ToLower())) { dealersContext = dealersContext.Sort(filter, DealerApplicationConfigFields.DeviceDescription.ToString(), Enum.GetNames(typeof(DealerApplicationConfigFields)).ToList()); } else if (filter.Sort.Contains(DealerApplicationConfigFields.AllowAccess.ToString().ToLower())) { dealersContext = dealersContext.Sort(filter, DealerApplicationConfigFields.AllowAccess.ToString(), Enum.GetNames(typeof(DealerApplicationConfigFields)).ToList()); } else if (filter.Sort.Contains(DealerApplicationConfigFields.ExpiredDateString.ToString().ToLower())) { dealersContext = dealersContext.Sort(filter, DealerApplicationConfigFields.ExpiredDate.ToString(), Enum.GetNames(typeof(DealerApplicationConfigFields)).ToList()); } } else { dealersContext = dealersContext.OrderBy(x => x.DealerId).ThenBy(x => x.Application); } var totalItems = dealersContext.Count(); var dealers = dealersContext.Skip(filter.StartIndex).Take(filter.PageSize).ToList(); var dealersDTO = Mapper.Map <List <DealerApplicationConfiguration>, List <DealerApplicationConfigurationDTO> >(dealers); return(new BaseObjectManagementDTO <DealerApplicationConfigurationDTO> { ObjectList = dealersDTO, TotalItems = totalItems }); } catch (Exception ex) { throw ex; } }