コード例 #1
0
 public HttpResponseMessage GetProductStockDtosByWp(int id, ProductStockCommand cmd)
 {
     try
     {
         int pagesCount = 0;
         var data       = new ProductStockBL().GetProductStockDtosByWp(id, cmd, ref pagesCount);
         var result     = Request.CreateResponse(HttpStatusCode.OK, data);
         result.Headers.Add(Consts.PAGES_COUNT, pagesCount.ToString());
         return(result);
     }
     catch (Exception ex)
     {
         LogManager.Instance.Error(ex);
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, false));
     }
 }
コード例 #2
0
        private List <ProductStockDTO> ProductStockDtos(int wpId, ProductStockCommand cmd, out int pagesCount, bool isByWP = true)
        {
            IQueryable <ProductStock> query;

            if (isByWP)
            {
                query = from p in db.ProductStocks where p.IsDeleted == false && p.WorkPlaceId == wpId select p;
            }
            else
            {
                query = from p in db.ProductStocks where p.IsDeleted == false && p.Quantity > 0 select p;
            }

            if (cmd.ProductId > 0)
            {
                query = from p in query where p.ProductId == cmd.ProductId select p;
            }

            if (!string.IsNullOrEmpty(cmd.ProductName))
            {
                query = from p in query where p.Product.Name.Contains(cmd.ProductName) select p;
            }

            if (cmd.CategoryId > 0)
            {
                query = from p in query where p.Product.Category.Id == cmd.CategoryId select p;
            }

            if (cmd.SupplierId > 0)
            {
                query = from p in query where p.Product.Supplier.Id == cmd.SupplierId select p;
            }

            if (cmd.WorkPlaceId > 0)
            {
                query = from p in query where p.WorkPlaceId == cmd.WorkPlaceId select p;
            }

            if (cmd.SortByWorkPlaceId != null)
            {
                query = cmd.SortByWorkPlaceId == true
                    ? (from p in query orderby p.WorkPlaceId select p)
                    : (from p in query orderby p.WorkPlaceId descending select p);
            }

            if (cmd.SortByQuantity != null)
            {
                query = cmd.SortByQuantity == true
                    ? (from p in query orderby p.Quantity select p)
                    : (from p in query orderby p.Quantity descending select p);
            }

            var query2 = from p in query
                         select new ProductStockDTO()
            {
                Id               = p.Id,
                WorkPlaceId      = p.WorkPlaceId,
                ProductId        = p.Product.Id,
                ProductName      = p.Product.Name,
                Quantity         = p.Quantity,
                ProductPrice     = p.Product.Price,
                ProductCurrencId = p.Product.Currency,
                MeasurementUnit  = p.Product.MeasurementUnit,
                ProductCode      = p.Product.Code,
                Category         = p.Product.Category,
                BoxedNumber      = p.Product.BoxedNumber
            };

            pagesCount = (int)Math.Ceiling((double)(from p in query select p).Count() / cmd.PageSize);
            query2     = query2.Page(cmd.PageSize, cmd.Page);
            return(query2.ToList());
        }
コード例 #3
0
        public List <ProductStockDTO> GetProductStocksByWp(int wpId, ProductStockCommand cmd, ref int pagesCount)
        {
            var query2 = ProductStockDtos(wpId, cmd, out pagesCount);

            return(query2.ToList());
        }
コード例 #4
0
        public List <ProductStockDTO> GetProductStocks(ProductStockCommand cmd, ref int pagesCount)
        {
            var query2 = ProductStockDtos(0, cmd, out pagesCount, false);

            return(query2.ToList());
        }
コード例 #5
0
 public List <ProductStockDTO> GetProductStockDtosByWp(int wpId, ProductStockCommand cmd, ref int pagesCount)
 {
     return(new ProductStockDalFacade().GetProductStocksByWp(wpId, cmd, ref pagesCount));
 }
コード例 #6
0
 public List <ProductStockDTO> GetProductStocks(ProductStockCommand cmd, ref int pagesCount)
 {
     return(new ProductStockDalFacade().GetProductStocks(cmd, ref pagesCount));
 }