Exemplo n.º 1
0
 /// <summary>
 /// 更新商品信息。
 /// </summary>
 /// <param name="productDataObjects">需要更新的商品信息。</param>
 /// <returns>已更新的商品信息。</returns>
 public ProductDataObjectList UpdateProducts(ProductDataObjectList productDataObjects)
 {
     return(PerformUpdateObjects <ProductDataObjectList, ProductDataObject, Product>(productDataObjects,
                                                                                     productRepository,
                                                                                     pdo => pdo.ID,
                                                                                     (p, pdo) =>
     {
         if (!string.IsNullOrEmpty(pdo.Description))
         {
             p.Description = pdo.Description;
         }
         if (!string.IsNullOrEmpty(pdo.ImageUrl))
         {
             p.ImageUrl = pdo.ImageUrl;
         }
         if (!string.IsNullOrEmpty(pdo.Name))
         {
             p.Name = pdo.Name;
         }
         if (pdo.IsFeatured != null)
         {
             p.IsFeatured = pdo.IsFeatured.Value;
         }
         if (pdo.UnitPrice != null)
         {
             p.UnitPrice = pdo.UnitPrice.Value;
         }
     }));
 }
Exemplo n.º 2
0
        /// <summary>
        /// 根据指定的商品分类ID值,获取该分类下所有的商品信息。
        /// </summary>
        /// <param name="categoryID">商品分类ID值。</param>
        /// <returns>所有的商品信息。</returns>
        public ProductDataObjectList GetProductsForCategory(Guid categoryID)
        {
            var result   = new ProductDataObjectList();
            var category = categoryRepository.GetByKey(categoryID);
            var products = categorizationRepository.GetProductsForCategory(category);

            products.ToList().ForEach(p => result.Add(Mapper.Map <Product, ProductDataObject>(p)));
            return(result);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 获取所有的特色商品信息。
        /// </summary>
        /// <param name="count">需要获取的特色商品信息的个数。</param>
        /// <returns>特色商品信息。</returns>
        public ProductDataObjectList GetFeaturedProducts(int count)
        {
            var featuredProducts = productRepository.GetFeaturedProducts(count);
            var result           = new ProductDataObjectList();

            featuredProducts
            .ToList()
            .ForEach(fp => result.Add(Mapper.Map <Product, ProductDataObject>(fp)));
            return(result);
        }
		public ProductDataObjectList UpdateProducts(ProductDataObjectList productDataObjects)
		{
			try
			{
				return _productServiceImpl.UpdateProducts(productDataObjects);
			}
			catch(Exception ex)
			{
				throw new FaultException<FaultData>(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex));
			}
		}
 public ProductDataObjectList UpdateProducts(ProductDataObjectList productDataObjects)
 {
     try
     {
         return(productServiceImpl.UpdateProducts(productDataObjects));
     }
     catch (Exception ex)
     {
         throw new FaultException <FaultData>(FaultData.CreateFromException(ex), FaultData.CreateFaultReason(ex));
     }
 }
Exemplo n.º 6
0
        /// <summary>
        /// 以分页的方式获取所有商品信息。
        /// </summary>
        /// <param name="pagination">带有分页参数信息的对象。</param>
        /// <returns>经过分页的商品信息。</returns>
        public ProductDataObjectListWithPagination GetProductsWithPagination(Pagination pagination)
        {
            var pagedProducts = productRepository.FindAll(sp => sp.Name, SortOrder.Ascending, pagination.PageNumber, pagination.PageSize);

            pagination.TotalPages = pagedProducts.TotalPages;

            var productDataObjectList = new ProductDataObjectList();

            pagedProducts.Data.ToList().ForEach(p => productDataObjectList.Add(Mapper.Map <Product, ProductDataObject>(p)));
            return(new ProductDataObjectListWithPagination
            {
                Pagination = pagination,
                ProductDataObjectList = productDataObjectList
            });
        }
Exemplo n.º 7
0
 /// <summary>
 /// 更新商品信息。
 /// </summary>
 /// <param name="productDataObjects">需要更新的商品信息。</param>
 /// <returns>已更新的商品信息。</returns>
 public ProductDataObjectList UpdateProducts(ProductDataObjectList productDataObjects)
 {
     return PerformUpdateObjects<ProductDataObjectList, ProductDataObject, Product>(productDataObjects,
         productRepository,
         pdo => pdo.ID,
         (p, pdo) =>
         {
             if (!string.IsNullOrEmpty(pdo.Description))
                 p.Description = pdo.Description;
             if (!string.IsNullOrEmpty(pdo.ImageUrl))
                 p.ImageUrl = pdo.ImageUrl;
             if (!string.IsNullOrEmpty(pdo.Name))
                 p.Name = pdo.Name;
             if (pdo.IsFeatured != null)
                 p.IsFeatured = pdo.IsFeatured.Value;
             if (pdo.UnitPrice != null)
                 p.UnitPrice = pdo.UnitPrice.Value;
         });
 }
Exemplo n.º 8
0
        /// <summary>
        /// 获取所有的商品信息。
        /// </summary>
        /// <param name="spec">查询方式。</param>
        /// <returns>商品信息。</returns>
        public ProductDataObjectList GetProducts(QuerySpec spec)
        {
            var result = new ProductDataObjectList();

            productRepository
            .FindAll()
            .ToList()
            .ForEach(p =>
            {
                var dataObject = Mapper.Map <Product, ProductDataObject>(p);
                if (spec != null && spec.IsVerbose())
                {
                    var category = categorizationRepository.GetCategoryForProduct(p);
                    if (category != null)
                    {
                        dataObject.Category = Mapper.Map <Category, CategoryDataObject>(category);
                    }
                }
                result.Add(dataObject);
            });
            return(result);
        }
Exemplo n.º 9
0
        /// <summary>
        /// 根据指定的商品分类ID值,以分页的方式获取该分类下所有的商品信息。
        /// </summary>
        /// <param name="categoryID">商品分类ID值。</param>
        /// <param name="pagination">带有分页参数信息的对象。</param>
        /// <returns>所有的商品信息。</returns>
        public ProductDataObjectListWithPagination GetProductsForCategoryWithPagination(Guid categoryID, Pagination pagination)
        {
            var category      = categoryRepository.GetByKey(categoryID);
            var pagedProducts = categorizationRepository.GetProductsForCategoryWithPagination(category, pagination.PageNumber, pagination.PageSize);

            if (pagedProducts == null)
            {
                pagination.TotalPages = 0;
                return(new ProductDataObjectListWithPagination
                {
                    Pagination = pagination,
                    ProductDataObjectList = new ProductDataObjectList()
                });
            }
            pagination.TotalPages = pagedProducts.TotalPages;
            var productDataObjectList = new ProductDataObjectList();

            pagedProducts.Data.ToList().ForEach(p => productDataObjectList.Add(Mapper.Map <Product, ProductDataObject>(p)));
            return(new ProductDataObjectListWithPagination
            {
                Pagination = pagination,
                ProductDataObjectList = productDataObjectList
            });
        }
Exemplo n.º 10
0
 /// <summary>
 /// 创建商品信息。
 /// </summary>
 /// <param name="productDataObjects">需要创建的商品信息。</param>
 /// <returns>已创建的商品信息。</returns>
 public ProductDataObjectList CreateProducts(ProductDataObjectList productDataObjects)
 {
     return(PerformCreateObjects <ProductDataObjectList, ProductDataObject, Product>(productDataObjects, productRepository));
 }
Exemplo n.º 11
0
 /// <summary>
 /// 创建商品信息。
 /// </summary>
 /// <param name="productDataObjects">需要创建的商品信息。</param>
 /// <returns>已创建的商品信息。</returns>
 public ProductDataObjectList CreateProducts(ProductDataObjectList productDataObjects)
 {
     return PerformCreateObjects<ProductDataObjectList, ProductDataObject, Product>(productDataObjects, productRepository);
 }
Exemplo n.º 12
0
 /// <summary>
 /// 获取所有的特色商品信息。
 /// </summary>
 /// <param name="count">需要获取的特色商品信息的个数。</param>
 /// <returns>特色商品信息。</returns>
 public ProductDataObjectList GetFeaturedProducts(int count)
 {
     var featuredProducts = productRepository.GetFeaturedProducts(count);
     var result = new ProductDataObjectList();
     featuredProducts
         .ToList()
         .ForEach(fp => result.Add(Mapper.Map<Product, ProductDataObject>(fp)));
     return result;
 }
Exemplo n.º 13
0
 /// <summary>
 /// 根据指定的商品分类ID值,以分页的方式获取该分类下所有的商品信息。
 /// </summary>
 /// <param name="categoryID">商品分类ID值。</param>
 /// <param name="pagination">带有分页参数信息的对象。</param>
 /// <returns>所有的商品信息。</returns>
 public ProductDataObjectListWithPagination GetProductsForCategoryWithPagination(Guid categoryID, Pagination pagination)
 {
     var category = categoryRepository.GetByKey(categoryID);
     var pagedProducts = categorizationRepository.GetProductsForCategoryWithPagination(category, pagination.PageNumber, pagination.PageSize);
     if (pagedProducts == null)
     {
         pagination.TotalPages = 0;
         return new ProductDataObjectListWithPagination
         {
             Pagination = pagination,
             ProductDataObjectList = new ProductDataObjectList()
         };
     }
     pagination.TotalPages = pagedProducts.TotalPages;
     var productDataObjectList = new ProductDataObjectList();
     pagedProducts.Data.ToList().ForEach(p => productDataObjectList.Add(Mapper.Map<Product, ProductDataObject>(p)));
     return new ProductDataObjectListWithPagination
     {
         Pagination = pagination,
         ProductDataObjectList = productDataObjectList
     };
 }
Exemplo n.º 14
0
 /// <summary>
 /// 根据指定的商品分类ID值,获取该分类下所有的商品信息。
 /// </summary>
 /// <param name="categoryID">商品分类ID值。</param>
 /// <returns>所有的商品信息。</returns>
 public ProductDataObjectList GetProductsForCategory(Guid categoryID)
 {
     var result = new ProductDataObjectList();
     var category = categoryRepository.GetByKey(categoryID);
     var products = categorizationRepository.GetProductsForCategory(category);
     products.ToList().ForEach(p => result.Add(Mapper.Map<Product, ProductDataObject>(p)));
     return result;
 }
Exemplo n.º 15
0
        /// <summary>
        /// 以分页的方式获取所有商品信息。
        /// </summary>
        /// <param name="pagination">带有分页参数信息的对象。</param>
        /// <returns>经过分页的商品信息。</returns>
        public ProductDataObjectListWithPagination GetProductsWithPagination(Pagination pagination)
        {
            var pagedProducts = productRepository.FindAll(sp => sp.Name, SortOrder.Ascending, pagination.PageNumber, pagination.PageSize);
            pagination.TotalPages = pagedProducts.TotalPages;

            var productDataObjectList = new ProductDataObjectList();
            pagedProducts.Data.ToList().ForEach(p => productDataObjectList.Add(Mapper.Map<Product, ProductDataObject>(p)));
            return new ProductDataObjectListWithPagination
            {
                Pagination = pagination,
                ProductDataObjectList = productDataObjectList
            };
        }
Exemplo n.º 16
0
 /// <summary>
 /// 获取所有的商品信息。
 /// </summary>
 /// <param name="spec">查询方式。</param>
 /// <returns>商品信息。</returns>
 public ProductDataObjectList GetProducts(QuerySpec spec)
 {
     var result = new ProductDataObjectList();
     productRepository
         .FindAll()
         .ToList()
         .ForEach(p =>
             {
                 var dataObject = Mapper.Map<Product, ProductDataObject>(p);
                 if (spec != null && spec.IsVerbose())
                 {
                     var category = categorizationRepository.GetCategoryForProduct(p);
                     if (category != null)
                     {
                         dataObject.Category = Mapper.Map<Category, CategoryDataObject>(category);
                     }
                 }
                 result.Add(dataObject);
             });
     return result;
 }