예제 #1
0
        public PagedResult <BaleEntity> GetBales(BalesFilter filter, int pageSize, int pageNo)
        {
            try
            {
                var filteredQuery = GetFilteredQuery(filter);
                var countQuery    = GetFilteredQuery(filter);

                var cResult = new PagedResult <BaleEntity>();

                cResult.Total      = countQuery.Count();
                cResult.TotalPages = cResult.Total / pageSize;
                if (cResult.Total % pageSize > 0)
                {
                    cResult.TotalPages++;
                }
                cResult.LastPageNo = pageNo;
                cResult.ResultData = new List <BaleEntity>();
                if (pageNo <= cResult.TotalPages)
                {
                    cResult.ResultData.AddRange(filteredQuery.Skip(pageSize * (pageNo - 1)).Take(pageSize).ToList());
                }
                return(cResult);
            }
            catch (Exception exc)
            {
                Logging.Logger.Log(exc);
                throw new Exception("Error fetching bales.", exc);
            }
        }
예제 #2
0
        private IOrderedQueryable <BaleEntity> GetFilteredQuery(BalesFilter filter)
        {
            DateTime?start = null;

            if (filter.StartDate.HasValue)
            {
                start = filter.StartDate.Value;
            }

            DateTime?end = null;

            if (filter.EndDate.HasValue)
            {
                end = filter.EndDate.Value;
            }

            var filteredQuery = _context.Bales.AsQueryable();

            if (!string.IsNullOrEmpty(filter.PBINumber))
            {
                filteredQuery = filteredQuery.Where(c => c.PbiNumber == filter.PBINumber);
            }

            if (filter.StartDate.HasValue)
            {
                filteredQuery = filteredQuery.Where(c => c.Created >= start.Value);
            }

            if (filter.EndDate.HasValue)
            {
                filteredQuery = filteredQuery.Where(c => c.Created <= end.Value);
            }

            IOrderedQueryable <BaleEntity> orderable = null;

            if (filter.Sort1Ascending)
            {
                if (filter.SortCol1.ToLower() == "pbi number")
                {
                    orderable = filteredQuery.OrderBy(m => m.PbiNumber);
                }
                else if (filter.SortCol1.ToLower() == "weight from scale")
                {
                    orderable = filteredQuery.OrderBy(m => m.WeightFromScale);
                }
                else if (filter.SortCol1.ToLower() == "tare weight")
                {
                    orderable = filteredQuery.OrderBy(m => m.TareWeight);
                }
                else if (filter.SortCol1.ToLower() == "gin ticket load number")
                {
                    orderable = filteredQuery.OrderBy(m => m.GinTicketLoadNumber);
                }
                else if (filter.SortCol1.ToLower() == "estimated seed weight")
                {
                    orderable = filteredQuery.OrderBy(m => m.Classing_EstimatedSeedWeight);
                }
                else if (filter.SortCol1.ToLower() == "created")
                {
                    orderable = filteredQuery.OrderBy(m => m.Created);
                }
                else if (filter.SortCol1.ToLower() == "updated")
                {
                    orderable = filteredQuery.OrderBy(m => m.Updated);
                }
            }
            else
            {
                if (filter.SortCol1.ToLower() == "pbi number")
                {
                    orderable = filteredQuery.OrderByDescending(m => m.PbiNumber);
                }
                else if (filter.SortCol1.ToLower() == "weight from scale")
                {
                    orderable = filteredQuery.OrderByDescending(m => m.WeightFromScale);
                }
                else if (filter.SortCol1.ToLower() == "tare weight")
                {
                    orderable = filteredQuery.OrderByDescending(m => m.TareWeight);
                }
                else if (filter.SortCol1.ToLower() == "gin ticket load number")
                {
                    orderable = filteredQuery.OrderByDescending(m => m.GinTicketLoadNumber);
                }
                else if (filter.SortCol1.ToLower() == "estimated seed weight")
                {
                    orderable = filteredQuery.OrderByDescending(m => m.Classing_EstimatedSeedWeight);
                }
                else if (filter.SortCol1.ToLower() == "created")
                {
                    orderable = filteredQuery.OrderByDescending(m => m.Created);
                }
                else if (filter.SortCol1.ToLower() == "updated")
                {
                    orderable = filteredQuery.OrderByDescending(m => m.Updated);
                }
            }

            return(orderable);
        }