Пример #1
0
        /// <summary>
        /// Raises the <see cref="E:System.Windows.Forms.ListView.ColumnClick"/> event.
        /// </summary>
        /// <param name="e">A <see cref="T:System.Windows.Forms.ColumnClickEventArgs"/> that contains the event data.</param>
        protected override void OnColumnClick(ColumnClickEventArgs e)
        {
            //TODO: call Sort(columnIndex);

            base.OnColumnClick(e);
            if (!SortColumnOnClick)
            {
                return;
            }

            UpdateSortInfos();

            bool     asc      = true;
            SortType sortType = SortType.String;

            SortInformation info = sortProperties[e.Column];

            if (info != null)
            {
                asc      = (info.Direction == SortDirection.Ascending);
                sortType = info.Type;
            }

            // On trie
            base.ListViewItemSorter = new ListViewItemComparer(e.Column, asc, sortType);
            base.Sort();

            // Enfin, on inverse l'ordre de tri pour la prochaine fois.
            if (info != null)
            {
                info.Direction = (
                    info.Direction == SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending);
            }
        }
Пример #2
0
        /// <summary>
        /// Cette méthode permet de spécifier un type d'ordre pour une colonne
        /// (Numérique ou Chaîne)
        /// </summary>
        /// <param name="columnIndex">Numéro de la colonne à paramétrer</param>
        /// <param name="sortType">Type of the sort.</param>
        /// <returns></returns>
        /// <remarks>
        /// Si le numéro de colonne est -1, alors, on spécifie les
        /// paramètres de tri pour la propriété Tag.
        /// </remarks>
        public bool SetColumnOrderType(int columnIndex, SortType sortType)
        {
            UpdateSortInfos();

            if (columnIndex == -1)
            {
                sortTag.Type = sortType;
            }
            else
            {
                if (Columns.Count <= columnIndex)
                {
                    return(false);
                }
                else
                {
                    SortInformation info = sortProperties[columnIndex];
                    if (info == null)
                    {
                        return(false);
                    }
                    else
                    {
                        info.Type = sortType;
                    }
                }
            }

            return(true);
        }
 public FilteredRelationshipMLFilterCriterion(Guid role, IEnumerable <Guid> necessaryMIATypeIds, IEnumerable <Guid> optionalMIATypeIds, IFilter filter, SortInformation sortInformation)
 {
     _role = role;
     _necessaryMIATypeIds = necessaryMIATypeIds;
     _optionalMIATypeIds  = optionalMIATypeIds;
     _filter          = filter;
     _sortInformation = sortInformation;
 }
 public RelationshipMLFilterCriterion(Guid role, Guid linkedRole, IEnumerable <Guid> necessaryMIATypeIds, IEnumerable <Guid> optionalMIATypeIds, SortInformation sortInformation)
 {
     _role                = role;
     _linkedRole          = linkedRole;
     _necessaryMIATypeIds = necessaryMIATypeIds;
     _optionalMIATypeIds  = optionalMIATypeIds;
     _sortInformation     = sortInformation;
 }
        public override IQueryable <ExecutorResponse> SetUpSorting(IQueryable <ExecutorResponse> query)
        {
            SortInformation sortInformation = ParseOrderBy(OrderBy, ValidOrderByValues);

            if (sortInformation != null)
            {
                switch (sortInformation.PropertyName)
                {
                case "description":
                    query = ApplyOrdering(query, dtc => dtc.Description, sortInformation.SortDirection);
                    break;
                }
            }

            return(query);
        }
Пример #6
0
        public override IQueryable<PlayerResponse> SetUpSorting(IQueryable<PlayerResponse> query)
        {
            SortInformation sortInformation = ParseOrderBy(OrderBy, ValidOrderByValues);

            if (sortInformation != null)
            {
                switch (sortInformation.PropertyName)
                {
                    case "lastName":
                        query = ApplyOrdering(query, dtc => dtc.LastName, sortInformation.SortDirection);
                        break;
                }
            }

            return query;
        }
Пример #7
0
        /// <summary>
        /// Sorts the list according to the specified column index.
        /// </summary>
        /// <param name="columnIndex">Index of the column.</param>
        public void Sort(int columnIndex)
        {
            SortInformation info = null;

            UpdateSortInfos();

            bool ok = true;

            if (columnIndex == -1)
            {
                base.ListViewItemSorter = new ListViewItemComparer(-1, sortTag);
                info = sortTag;
            }
            else
            {
                if (columnIndex < 0)
                {
                    ok = false;
                }
                if (Columns.Count <= columnIndex)
                {
                    ok = false;
                }

                info = sortProperties[columnIndex];
                if (info == null)
                {
                    ok = false;
                }

                if (ok)
                {
                    base.ListViewItemSorter = new ListViewItemComparer(columnIndex, info);
                }
            }

            if (ok)
            {
                base.Sort();
                // Enfin, on inverse l'ordre de tri pour la prochaine fois.
                if (info != null)
                {
                    info.Direction = (
                        info.Direction == SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending);
                }
            }
        }
Пример #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ListViewItemComparer"/> class.
 /// </summary>
 /// <param name="colIndex">The column index.</param>
 /// <param name="sortInformation">The sort information.</param>
 public ListViewItemComparer(int colIndex, SortInformation sortInformation) : this(colIndex, sortInformation.Direction, sortInformation.Type) { }
Пример #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ListViewItemComparer"/> class.
 /// </summary>
 /// <param name="colIndex">The column index.</param>
 /// <param name="sortInformation">The sort information.</param>
 public ListViewItemComparer(int colIndex, SortInformation sortInformation) : this(colIndex, sortInformation.Direction, sortInformation.Type)
 {
 }
Пример #10
0
        public async Task <DataGridResult <WeatherForecast> > GetItemsAsync(
            int pageNumber,
            int pageSize,
            SortInformation <WeatherForecast> sortInfo = null,
            string searchQuery = null,
            object parameters  = null)
        {
            var query = Data.AsQueryable();

            if (!(sortInfo is null))
            {
                if (sortInfo.Type == SortType.Ascending)
                {
                    switch (sortInfo.Key)
                    {
                    case nameof(WeatherForecast.Date):
                    default:
                        query = query.OrderBy(f => f.Date);
                        break;

                    case nameof(WeatherForecast.TemperatureC):
                        query = query.OrderBy(f => f.TemperatureC);
                        break;

                    case nameof(WeatherForecast.TemperatureF):
                        query = query.OrderBy(f => f.TemperatureF);
                        break;

                    case nameof(WeatherForecast.Summary):
                        query = query.OrderBy(f => f.Summary);
                        break;
                    }
                }
                else
                {
                    switch (sortInfo.Key)
                    {
                    case nameof(WeatherForecast.Date):
                    default:
                        query = query.OrderByDescending(f => f.Date);
                        break;

                    case nameof(WeatherForecast.TemperatureC):
                        query = query.OrderByDescending(f => f.TemperatureC);
                        break;

                    case nameof(WeatherForecast.TemperatureF):
                        query = query.OrderByDescending(f => f.TemperatureF);
                        break;

                    case nameof(WeatherForecast.Summary):
                        query = query.OrderByDescending(f => f.Summary);
                        break;
                    }
                }
            }

            if (!(searchQuery is null))
            {
                var searchQueryLowercase = searchQuery.ToLower();
                query = query.Where(f => f.Date.ToString().ToLower().Contains(searchQueryLowercase) ||
                                    f.TemperatureC.ToString().Contains(searchQuery) ||
                                    f.TemperatureF.ToString().Contains(searchQuery) ||
                                    f.Summary.ToLower().Contains(searchQueryLowercase));
            }

            if (!(parameters is null))
            {
                var type = parameters.GetType();
                if (!(type.GetProperty(nameof(WeatherForecast.Summary)) is null))
                {
                    query = query.Where(f => f.Summary == type.GetProperty(nameof(WeatherForecast.Summary)).GetValue(parameters) as string);
                }
            }

            var totalItems = (uint)query.Count();

            var items = query.Skip((pageNumber - 1) * pageSize)
                        .Take(pageSize)
                        .ToList();

            return(new DataGridResult <WeatherForecast>(items, totalItems));
        }