コード例 #1
0
        private IQueryable <Rota> ObterBase(RotaSort sort, bool ascending, string nome)
        {
            IQueryable <Rota> query = dataContext.Rota.AsNoTracking();

            switch (sort)
            {
            case RotaSort.Cod_Rota:
                if (ascending)
                {
                    query = query.OrderBy(a => a.Cod_Rota == null ? 0 : 1).ThenBy(a => a.Cod_Rota);
                }
                else
                {
                    query = query.OrderByDescending(a => a.Cod_Rota == null ? 0 : 1).ThenByDescending(a => a.Cod_Rota);
                }
                break;

            case RotaSort.Composicao_Rota:
                if (ascending)
                {
                    query = query.OrderBy(a => a.Composicao_Rota == null ? 0 : 1).ThenBy(a => a.Composicao_Rota);
                }
                else
                {
                    query = query.OrderByDescending(a => a.Composicao_Rota == null ? 0 : 1).ThenByDescending(a => a.Composicao_Rota);
                }
                break;

            case RotaSort.Flag_Ativo:
                if (ascending)
                {
                    query = query.OrderBy(a => a.Flag_Ativo == null ? 0 : 1).ThenBy(a => a.Flag_Ativo);
                }
                else
                {
                    query = query.OrderByDescending(a => a.Flag_Ativo == null ? 0 : 1).ThenByDescending(a => a.Flag_Ativo);
                }
                break;

            case RotaSort.Observacao:
                if (ascending)
                {
                    query = query.OrderBy(a => a.Observacao == null ? 0 : 1).ThenBy(a => a.Observacao);
                }
                else
                {
                    query = query.OrderByDescending(a => a.Observacao == null ? 0 : 1).ThenByDescending(a => a.Observacao);
                }
                break;

            case RotaSort.Nome:
            default:
                query = query.SortBy(x => x.Nome, ascending);
                break;
            }

            return(query.WhereIfNotNull(x => x.Nome.ToUpper().Contains(x.Nome.ToString()), nome));
        }
コード例 #2
0
        public CommandResult <PaginatedQueryResult <Rota> > ObterPaginado(int pagina, int quantidade, RotaSort sort, bool ascending, string nome)
        {
            var listaBase = ObterBase(sort, ascending, nome);
            var total     = listaBase.Count();
            var skip      = Pagination.PagesToSkip(quantidade, total, pagina);

            var resultado = new PaginatedQueryResult <Rota>()
            {
                Total = total,
                Data  = listaBase.Skip(skip).Take(quantidade).ToArray()
            };

            return(CommandResult <PaginatedQueryResult <Rota> > .Valid(resultado));
        }
コード例 #3
0
        public CommandResult <IReadOnlyCollection <Rota> > Obter(RotaSort sort, bool ascending, string nome)
        {
            var resultado = ObterBase(sort, ascending, nome).ToArray();

            return(CommandResult <IReadOnlyCollection <Rota> > .Valid(resultado));
        }