Beispiel #1
0
        private PowerTablesData ProduceData(IQueryable <TSourceData> source, PowerTableRequest request)
        {
            try
            {
                //gather data
                var  filtered = _queryHandler.ApplyFiltering(source, request.Query);
                var  ordered  = _queryHandler.ApplyOrdering(filtered, request.Query);
                long count    = 0;
                int  page     = 0;


                var paged        = _queryHandler.ApplyPaging(ordered, request.Query, out count, out page);
                var mapped       = new Lazy <TTableData[]>(() => _queryHandler.ApplyMapping(paged, request.Query));
                var mappedObject =
                    new Lazy <object[]>(() => _queryHandler.ApplyMapping(paged, request.Query).Cast <object>().ToArray());

                var data = new PowerTablesData(source, filtered, ordered, paged, mappedObject, _configuration, request,
                                               count,
                                               page);
                data._OriginalLazy = mapped;
                return(data);
            }
            catch (InvalidOperationException ex)
            {
                throw new Exception(
                          String.Format(@"InvalidOperationException thrown.
We recommend to re-check filters configuration against filtering/mapping on nullable columns. 
Lattice does not throw InvalidOperationException itself, but we not always handle filtering of nullable columns 
because it is highly dependent on query provider.
Consider usage of null-coalescing operator (??) within your nullables.
Btw, original message was: {0}", ex.Message),
                          ex);
            }
        }