Exemplo n.º 1
0
        public async Task <ListModelToClient> List([FromBody] ListModelFromClient request)
        {
            ListModelToClient resp;
            FilterBase        filter = await contextProvider
                                       .BusinessProvider
                                       .GetFilter(contextProvider, request.objectName, request.filterName);

            resp = await filter.ProcessRequestAndCreateResponse(HttpContext, request);

            await contextProvider
            .BusinessProvider
            .StoreFilter(contextProvider, filter, request.objectName, request.filterName);

            return(resp);
        }
Exemplo n.º 2
0
        public virtual async Task <ListModelToClient> ProcessRequestAndCreateResponse(HttpContext context, ListModelFromClient request)
        {
            ListModelToClient resp = new ListModelToClient();

            this.FastSearchActivated = request.dofastsearch;
            this.FastSearch          = request.fastsearch;
            if (!request.first)
            {
                this.Filter     = request.filters;
                this.topRecords = request.topRecords;
            }

            if (this.Filter == null)
            {
                this.Filter = request.filters;
                this.Clear();
            }

            if (request.sortDir != "asc" && request.sortDir != "desc")
            {
                request.sortDir = "asc";
            }

            resp.plural  = this.Decorator.Plural;
            resp.filters = this.Filter;
            var items = await this.Get(request.sortIndex,
                                       (request.sortDir == "asc" ? SortDirection.Ascending : SortDirection.Descending),
                                       request.pageNumber, request.rowsPerPage);

            resp.result      = Lib.ToList(items.Item1);
            resp.fastsearch  = this.FastSearch;
            resp.sortIndex   = request.sortIndex;
            resp.sortDir     = request.sortDir;
            resp.topRecords  = this.topRecords;
            resp.pageNumber  = request.pageNumber;
            resp.rowsPerPage = request.rowsPerPage;
            resp.rowCount    = items.Item2;

            this.SetExtraToClientResponse(resp);

            return(resp);
        }