Esempio n. 1
0
        public async Task <TOutput> Find(long id, QueryBag queryBag)
        {
            Expression <Func <TEntity, bool> > expression = x => true;

            expression = expression.And(x => x.Id == id);
            expression = PreFilter(expression, queryBag);
            expression = PostFilter(expression, queryBag);
            var result = await Query().Where(expression).FirstOrDefaultAsync();

            return(result != null?Map(result) : default);
Esempio n. 2
0
        public async Task OnExecute()
        {
            _commandUtil.PrintTitle("Lista de Usuarios");

            var search = _commandUtil.PromptString("Búsqueda (q! para salir): ");

            while (search != "q!")
            {
                var page = _commandUtil.PromptInt("Página", defaultAnswer: 1);

                var queryString = $"sort=-updatedAt&search=pattern:{search}";
                var userData    = new UserData();
                var request     = new PaginationRequest()
                {
                    Limit = DefaultLimit, Page = page
                };
                var queryBag  = QueryBag.Of(queryString, userData);
                var paginated = await _userQuery.Paginated(request, queryBag);

                PrintUsersDataTable(paginated);

                search = _commandUtil.PromptString("Búsqueda (q! para salir): ");
            }
        }
Esempio n. 3
0
 protected override Expression <Func <User, bool> > PostFilter(Expression <Func <User, bool> > expression, QueryBag queryBag)
 {
     return(expression.And(x => x.DeletedAt == null));
 }
Esempio n. 4
0
 protected override Expression <Func <User, bool> > PreFilter(Expression <Func <User, bool> > expression, QueryBag queryBag)
 {
     return(expression);
 }
Esempio n. 5
0
        public async Task <PaginationResponse <TOutput> > Paginated(PaginationRequest request, QueryBag queryBag)
        {
            Expression <Func <TEntity, bool> > expression = x => true;

            expression = PreFilter(expression, queryBag);
            expression = ApplyFilters(expression, queryBag);
            expression = PostFilter(expression, queryBag);

            var query      = Query();
            var queryCount = Query();

            query      = query.Where(expression);
            queryCount = queryCount.Where(expression);
            if (queryBag.SortBag.Params.Count > 0)
            {
                query = ApplySorts(query, queryBag);
            }
            return(await PaginationBuilder.Paginate(request, query, queryCount, Map));
        }
Esempio n. 6
0
 protected abstract Expression <Func <TEntity, bool> > PostFilter(Expression <Func <TEntity, bool> > expression, QueryBag queryBag);