Esempio n. 1
0
        public Top10ListElement(string input)
        {
            var delim_index = input.IndexOf('{');

            if (delim_index != -1)
            {
                StatName = input.Substring(0, delim_index).Trim();
                switch (input[delim_index + 1])
                {
                case 'L':                         // low to high sorting
                    Direction = SortDir.ASC;
                    break;

                case 'H':                         // high to low sorting
                    Direction = SortDir.DEC;
                    break;

                default:
                    throw new InvalidConstraintException("That is not an acceptable sorting direction");
                }
            }
            else
            {
                StatName  = input;
                Direction = SortDir.ASC;
            }
        }
Esempio n. 2
0
 public OrderNode(LambdaExpression expression, SortDir direction, string alias, SqlNode parent) : base(parent)
 {
     LambdaParameter = expression.Parameters[0].Name;
     Alias           = alias;
     Direction       = direction;
     Argument        = For(expression.Body);
 }
 private SqlParameter CreateSortDirParameter(SortDir sortDir)
 {
     return(new SqlParameter("@sortDir", sortDir.ToString())
     {
         SqlDbType = SqlDbType.NVarChar
     });
 }
Esempio n. 4
0
        /// <summary>
        /// 增加排序条件
        /// </summary>
        /// <param name="sortField">排序字段</param>
        public SearchCondition AddSort(string sortField, SortDir dir)
        {
            sortField = sortField.ToLower().Trim();

            if (_sortSql.Trim() == "")
            {
                _sortSql = string.Format("{0} {1}", sortField, dir);
            }
            else
            {
                if (_sortSql.IndexOf(sortField) >= 0)
                {
                    string[] strAry = _sortSql.Split(new char[] { ',' }, StringSplitOptions.None);
                    for (int i = 0; i < strAry.Length; i++)
                    {
                        if (strAry[i].IndexOf(sortField) >= 0)
                        {
                            strAry[i] = string.Format("{0} {1}", sortField, dir.ToString());
                            break;
                        }
                    }
                    _sortSql = string.Join(",", strAry);
                }
                else
                {
                    _sortSql = string.Format("{0},{1} {2}", _sortSql, sortField, dir.ToString());
                }
            }
            return(this);
        }
        private string ResetSortToColumn(string sSortField)
        {
            if (SortField.Length < 1)
            {
                SortField = sSortField;
                SortDir   = string.Empty;
            }
            else
            {
                if (SortField.ToLowerInvariant() != sSortField.ToLowerInvariant())
                {
                    SortDir = string.Empty;                      //previous sort not the same field, force ASC
                }
                SortField = sSortField;
            }

            if (SortDir.Trim().ToUpperInvariant().IndexOf("ASC") < 0)
            {
                SortDir = "ASC";
            }
            else
            {
                SortDir = "DESC";
            }
            sSortField = SortField + "   " + SortDir;
            return(sSortField);
        }
 private void radioButton2_CheckedChanged(object sender, EventArgs e)
 {
     if (radioButton2.Checked)
     {
         radioButton1.Checked = false;
         _dir = SortDir.DEC;
     }
 }
Esempio n. 7
0
 public SortInfo CreateSortInfo(Expression<Func<TModel, object>> pro, SortDir dir)
 {
     SortInfo rv = new SortInfo
     {
         Property = PropertyHelper.GetPropertyName(pro),
         Direction = dir
     };
     return rv;
 }
Esempio n. 8
0
        public List <T> SortDataList <T>(List <T> d)
        {
            List <T>        query         = null;
            IEnumerable <T> myEnumerables = d.AsEnumerable();

            if (SortDir.Trim().IndexOf("ASC") < 0)
            {
                query = (from enu in myEnumerables
                         orderby GetPropertyValue(enu, SortField) descending
                         select enu).ToList <T>();
            }
            else
            {
                query = (from enu in myEnumerables
                         orderby GetPropertyValue(enu, SortField) ascending
                         select enu).ToList <T>();
            }

            return(query.ToList <T>());
        }
        public IList SortDataListType(IList lst)
        {
            IList                query        = null;
            List <object>        d            = lst.Cast <object>().ToList();
            IEnumerable <object> enuQueryable = d.AsQueryable();

            if (lst != null && lst.Count > 0)
            {
                SortField = GetProperties(d[0]).Where(x => x.ToLowerInvariant() == SortField.ToLowerInvariant()).FirstOrDefault();
            }
            else
            {
                SortField = string.Empty;
            }

            if (!string.IsNullOrEmpty(SortField))
            {
                if (SortDir.ToUpperInvariant().Trim().IndexOf("ASC") < 0)
                {
                    query = (from enu in enuQueryable
                             orderby GetPropertyValue(enu, SortField) descending
                             select enu).ToList();
                }
                else
                {
                    query = (from enu in enuQueryable
                             orderby GetPropertyValue(enu, SortField) ascending
                             select enu).ToList();
                }
            }
            else
            {
                query = (from enu in enuQueryable
                         select enu).ToList();
            }

            return(query);
        }
Esempio n. 10
0
 /// <summary>
 /// The IsAscending
 /// </summary>
 /// <returns>The <see cref="bool"/></returns>
 public bool IsAscending()
 {
     return(SortDir == null || !SortDir.Equals(Descending, StringComparison.InvariantCultureIgnoreCase));
 }
Esempio n. 11
0
        private void ColumnHeaderMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            var header = ((FrameworkElement)sender).Tag as DataGridColumnHeader;
            if (header != null)
            {
                // 通过HeaderName找到对应的Column
                string headerName = header.Content.ToString();
                var column = RecordsGrid.Columns.Where(col => col.Header.ToString() == headerName).Single();

                // 只对可以排序的Column进行处理
                if (column.CanUserSort)
                {
                    var newSortName = string.IsNullOrWhiteSpace(column.SortMemberPath) ? headerName : column.SortMemberPath.Trim();
                    if (newSortName == _sortName)
                    {
                        _sortDir = _sortDir == SortDir.ASC ? SortDir.DESC : SortDir.ASC;
                    }
                    else
                    {
                        _sortName = newSortName;
                        _sortDir = SortDir.ASC;
                    }

                    // 设置箭头状态
                    string sortState = _sortDir == SortDir.ASC ? "SortAsc" : "SortDesc";
                    VisualStateManager.GoToState(header, sortState, true);
                    if (_currSortColumnHeader != null && _currSortColumnHeader != header)
                    {
                        VisualStateManager.GoToState(_currSortColumnHeader, "Unsort", false);
                    }
                    _currSortColumnHeader = header;

                    // 查询
                    QueryRecords();
                }
            }

            e.Handled = true;
        }
Esempio n. 12
0
        /// <summary>
        /// creates the sorting expression with the property name and applies it to the queryable
        /// </summary>
        /// <param name="q"></param>
        /// <param name="propertyName"></param>
        /// <param name="dir"></param>
        /// <returns></returns>
        public IQueryable <T> SortWith(IQueryable <T> q, string propertyName, SortDir dir)
        {
            PropertyInfo prop = typeof(T).GetProperty(propertyName);

            if (prop == null)
            {
                throw new Exception("no such property " + propertyName + " in class " + typeof(T).Name);
            }

            if (prop.PropertyType == typeof(string))
            {
                var exp = Expressions.PropertyString <T>(propertyName);
                if (dir == SortDir.ASC)
                {
                    q = q.OrderBy(exp);
                }
                else
                {
                    q = q.OrderByDescending(exp);
                }
            }
            else if (prop.PropertyType == typeof(double))
            {
                var exp = Expressions.PropertyDouble <T>(propertyName);
                if (dir == SortDir.ASC)
                {
                    q = q.OrderBy(exp);
                }
                else
                {
                    q = q.OrderByDescending(exp);
                }
            }
            else if (prop.PropertyType.IsDecimalType())
            {
                var exp = Expressions.PropertyDecimal <T>(propertyName);
                if (dir == SortDir.ASC)
                {
                    q = q.OrderBy(exp);
                }
                else
                {
                    q = q.OrderByDescending(exp);
                }
            }
            else if (prop.PropertyType.IsIntgerType())
            {
                var exp = Expressions.PropertyInt <T>(propertyName);
                if (dir == SortDir.ASC)
                {
                    q = q.OrderBy(exp);
                }
                else
                {
                    q = q.OrderByDescending(exp);
                }
            }
            else if (prop.PropertyType == typeof(DateTime))
            {
                var exp = Expressions.PropertyDate <T>(propertyName);
                if (dir == SortDir.ASC)
                {
                    q = q.OrderBy(exp);
                }
                else
                {
                    q = q.OrderByDescending(exp);
                }
            }
            else if (prop.PropertyType == typeof(Nullable <DateTime>))
            {
                var exp = Expressions.PropertyDate <T>(propertyName);
                if (dir == SortDir.ASC)
                {
                    q = q.OrderBy(exp);
                }
                else
                {
                    q = q.OrderByDescending(exp);
                }
            }
            else
            {
                var exp = Expressions.Property <T>(propertyName);
                if (dir == SortDir.ASC)
                {
                    q = q.OrderBy(exp);
                }
                else
                {
                    q = q.OrderByDescending(exp);
                }
            }
            return(q);
        }
Esempio n. 13
0
 public void OrderBy(Expression expression, SortDir direction)
 {
     OrderNodes.Add(new OrderNode(expression.GetLambda(), direction, FromNode.Alias, this));
 }
Esempio n. 14
0
 public static IQueryable <T> SortWith <T, TVal>(this IQueryable <T> q, Expression <Func <T, TVal> > exp, SortDir dir) where T : class
 {
     return((dir == SortDir.ASC) ? q.OrderBy(exp) : q.OrderByDescending(exp));
 }
Esempio n. 15
0
 public static string ToStr(this SortDir dir)
 => dir == SortDir.Asc ? "asc" : "desc";
        public IQueryable <T> SortWith(IQueryable <T> q, string propertyName, SortDir dir)
        {
            PropertyInfo prop = typeof(T).GetProperty(propertyName);

            if (prop == null)
            {
                return(q);
            }

            if (prop.PropertyType == typeof(string))
            {
                var exp = Expressions.PropertyExpression <T, string>(propertyName);
                q = q.SortWith(exp, dir);
            }
            else if (prop.PropertyType == typeof(double))
            {
                var exp = Expressions.PropertyExpression <T, double>(propertyName);
                q = q.SortWith(exp, dir);
            }
            else if (prop.PropertyType == typeof(double?))
            {
                var exp = Expressions.PropertyExpression <T, double?>(propertyName);
                q = q.SortWith(exp, dir);
            }
            else if (prop.PropertyType.IsDecimalType())
            {
                var exp = Expressions.PropertyExpression <T, decimal>(propertyName);
                q = q.SortWith(exp, dir);
            }
            else if (prop.PropertyType.IsDecimalType(true))
            {
                var exp = Expressions.PropertyExpression <T, decimal?>(propertyName);
                q = q.SortWith(exp, dir);
            }
            else if (prop.PropertyType.IsIntgerType())
            {
                var exp = Expressions.PropertyExpression <T, long>(propertyName);
                q = q.SortWith(exp, dir);
            }
            else if (prop.PropertyType.IsIntgerType(true))
            {
                var exp = Expressions.PropertyExpression <T, long?>(propertyName);
                q = q.SortWith(exp, dir);
            }
            else if (prop.PropertyType == typeof(DateTime))
            {
                var exp = Expressions.PropertyExpression <T, DateTime>(propertyName);
                q = q.SortWith(exp, dir);
            }
            else if (prop.PropertyType == typeof(DateTime?))
            {
                var exp = Expressions.PropertyExpression <T, DateTime?>(propertyName);
                q = q.SortWith(exp, dir);
            }
            else
            {
                var exp = Expressions.Property <T>(propertyName);
                q = q.SortWith(exp, dir);
            }
            return(q);
        }
Esempio n. 17
0
 public LoadResult FindAsSorted <TR, TV>(Expression <Func <T, TR> > exp, Expression <Func <T, TV> > sort, SortDir dir, ListOptions <TR> opts) where TR : class
 {
     throw new NotImplementedException();
 }
Esempio n. 18
0
 public BoundColumnBuilder <T> Order(int value, SortDir sortDirection)
 {
     this.Column.SortOrder     = value;
     this.Column.SortDirection = sortDirection;
     return(this);
 }
Esempio n. 19
0
        public IEnumerable <IImage> SortBy <TKey>(Func <IImage, TKey> sortProperty, IEnumerable <IImage> collectionToSort, SortDir dir)
        {
            switch (dir)
            {
            case SortDir.ASC:
                return(collectionToSort.OrderBy(sortProperty).ToArray());

            case SortDir.DESC:
                return(collectionToSort.OrderByDescending(sortProperty).ToArray());
            }
            return(collectionToSort.ToArray());
        }
Esempio n. 20
0
 public virtual LoadResult FindAsSorted <TR, TV>(Expression <Func <T, TR> > exp, Expression <Func <T, TV> > sort, SortDir dir, ListOptions <TR> opts) where TR : class
 {
     if (dir == SortDir.ASC)
     {
         return(Loader.OrderBy(sort).Select(exp).LoadWith(opts));
     }
     else
     {
         return(Loader.OrderByDescending(sort).Select(exp).LoadWith(opts));
     }
 }
Esempio n. 21
0
 public BetfairServerResponse<CurrentOrderSummaryReport> ListCurrentOrders(
     ISet<string> betIds = null,
     ISet<string> marketIds = null,
     OrderProjection? orderProjection = null,
     TimeRange placedDateRange = null,
     TimeRange dateRange = null,
     OrderBy? orderBy = null,
     SortDir? sortDir = null,
     int? fromRecord = null,
     int? recordCount = null)
 {
     return client.ListCurrentOrders(
         betIds,
         marketIds,
         orderProjection,
         placedDateRange,
         dateRange,
         orderBy,
         sortDir,
         fromRecord,
         recordCount).Result;
 }
Esempio n. 22
0
 public BoundColumnBuilder <T> Order(SortDir sortDirection)
 {
     this.Column.SortOrder     = 1;
     this.Column.SortDirection = sortDirection;
     return(this);
 }