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);
            }
        }
Exemple #2
0
        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;
            }
        }