/// <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; } })); }
/// <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); }
/// <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)); } }
/// <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 }); }
/// <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; }); }
/// <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); }
/// <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 }); }
/// <summary> /// 创建商品信息。 /// </summary> /// <param name="productDataObjects">需要创建的商品信息。</param> /// <returns>已创建的商品信息。</returns> public ProductDataObjectList CreateProducts(ProductDataObjectList productDataObjects) { return(PerformCreateObjects <ProductDataObjectList, ProductDataObject, Product>(productDataObjects, productRepository)); }
/// <summary> /// 创建商品信息。 /// </summary> /// <param name="productDataObjects">需要创建的商品信息。</param> /// <returns>已创建的商品信息。</returns> public ProductDataObjectList CreateProducts(ProductDataObjectList productDataObjects) { return PerformCreateObjects<ProductDataObjectList, ProductDataObject, Product>(productDataObjects, productRepository); }
/// <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; }
/// <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 }; }
/// <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; }
/// <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 }; }
/// <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; }