public IEnumerable <dynamic> GetDynamicPageList <TResult>(PaginationIn p, string sql, List <Dictionary <string, object> > parameters)
        {
            p.WatchStart();
            int totalCount = 0;
            //sql.QueryPage(p.page, p.rows);

            int pageNumber = p.page;
            int pageSize   = p.rows;

            pageNumber = pageNumber < 1 ? 1 : pageNumber;
            pageSize   = pageSize < 1 ? 10 : pageSize;

            Dictionary <string, object> dic = new Dictionary <string, object>();

            foreach (var item in parameters)
            {
                if (item != null && item.Count > 0)
                {
                    foreach (var q in item)
                    {
                        dic.Add(q.Key, q.Value);
                    }
                }
            }
            var reader = client.GetReader(sql, dic, CommandType.StoredProcedure);
            var list   = reader.Read();

            totalCount = reader.Read <int>().FirstOrDefault();
            p.records  = totalCount;
            p.WatchEnd();
            return(list);
        }
Exemple #2
0
        public static void Validate(PaginationIn pagination)
        {
            try
            {
                var limitIsInRange          = pagination.Limit >= LimitMin && pagination.Limit <= LimitMax;
                var offsetIsInRange         = pagination.Offset >= OffsetMin;
                var limitMustBeSetToDefault = pagination.Limit == 0;

                if (!limitIsInRange)
                {
                    throw new ValidationException("Limit", $"Limite de paginação deve estar entre {LimitMin} e {LimitMax}");
                }
                if (!offsetIsInRange)
                {
                    throw new ValidationException("Offset", $"Offset de paginação deve ter valor mínimo de {OffsetMin}");
                }

                if (limitMustBeSetToDefault)
                {
                    pagination.Limit = LimitDefault;
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #3
0
 public SearchSalesRequest()
 {
     Pagination = new PaginationIn()
     {
         Limit = SaleEntity.SaleSearchDefaultLimit
     };
 }
Exemple #4
0
 public static GrpcPagination GetFrom(PaginationIn data)
 {
     return(new GrpcPagination()
     {
         Limit = data.Limit,
         Offset = data.Offset
     });
 }
        public IEnumerable <dynamic> GetDynamicPageList <TResult>(PaginationIn p, SqlLam <TResult> sql)
        {
            p.WatchStart();
            int totalCount = 0;

            sql.QueryPage(p.page, p.rows);

            var reader = client.GetReader(sql.GetSql(), sql.GetParameters());
            var list   = reader.Read();

            totalCount = reader.Read <int>().FirstOrDefault();
            p.records  = totalCount;
            p.WatchEnd();
            return(list);
        }
        public static void ValidateIn(PaginationIn pagination)
        {
            try
            {
                var limitIsInRange = pagination.Limit >= LimitMin && pagination.Limit <= LimitMax;
                var limitIsZero    = pagination.Limit == 0;

                if (!limitIsInRange)
                {
                    throw new ValidationException("Limite da paginação", $"Está fora do alcance de {LimitMin} a {LimitMax}");
                }
                if (limitIsZero)
                {
                    pagination.Limit = DefaultLimit;
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public async Task <ShipmentList> AutoUpdateIsSetTo(bool toggle, PaginationIn pagination)
        {
            try
            {
                var filter = FilterBuilder.Where(shipment => shipment.AutoUpdate == toggle);
                var query  = Collections.Shipments.Find(filter).Limit(pagination.Limit).Skip(pagination.Offset);

                return(new ShipmentList()
                {
                    Data = query.ToList(),
                    Pagination = new PaginationOut()
                    {
                        Limit = pagination.Limit,
                        Offset = pagination.Offset,
                        Total = await ShipmentDAO.Methods.Count.UsingFilter(filter)
                    }
                });
            }
            catch (Exception e)
            {
                throw;
            }
        }
 public IEnumerable <dynamic> GetDynamicPageList(PaginationIn p)
 {
     return(this.GetDynamicPageList <T>(p, sql));
 }
 public IEnumerable <T> GetPageList(PaginationIn p)
 {
     return(this.GetPageList <T>(p));
 }