예제 #1
0
        public void InsertProduct()
        {
            _container = EntityContainer.InsertableContainer <Domain.Models.Product> .ContainerConfig();

            try
            {
                using (var scope = _container.BeginLifetimeScope())
                {
                    var insertableProduct = _container.Resolve <EntityService.Interfaces.IInsertable <Domain.Models.Product> >();

                    var Product = new Domain.Models.Product()
                    {
                        BuyCount         = 0,
                        ImageFileAddress = "insert test",
                        Name             = "test test",
                        ShortDescription = "short test",
                        Status           = true,
                        TextFileAddress  = "test text"
                    };

                    insertableProduct.Insert(Product);
                }
            }
            catch (Exception error)
            {
                Assert.Fail(error.Message);
            }
        }
예제 #2
0
        public async Task GetProductAsync_ProductExists_ReturnsProduct()
        {
            // Arrange
            var productId = Guid.NewGuid();
            var product   = new Domain.Models.Product
            {
                Id            = productId,
                Name          = "Product Name",
                Description   = "Product Description",
                Price         = 100,
                DeliveryPrice = 2
            };

            _mockProductRepository
            .Setup(m => m.GetProductAsync(It.IsAny <Guid>()))
            .ReturnsAsync(product);

            // Act
            var result = await _sut.GetProductAsync(productId);

            // Assert
            Assert.AreEqual(product.Name, result.Name);
            Assert.AreEqual(product.Description, result.Description);
            Assert.AreEqual(product.Price, result.Price);
            Assert.AreEqual(product.DeliveryPrice, result.DeliveryPrice);
        }
예제 #3
0
        public async Task <AddProductOutputDto> AddProductAsync(AddProductInputDto aParams)
        {
            var output = new AddProductOutputDto();

            try
            {
                var item = new Domain.Models.Product
                {
                    Name           = aParams.Name,
                    Price          = aParams.Price,
                    DeliveryPrice  = aParams.DeliveryPrice,
                    Description    = aParams.Description,
                    ProductOptions = Mapper.Map <List <Domain.Models.ProductOption> >(aParams.ProductOptions)
                };
                Domain.Models.Product product = await UnitOfWork.ProductRepository.AddProductAsync(item);

                await UnitOfWork.SaveChanges();

                output = Mapper.Map <AddProductOutputDto>(product);
            }
            catch (Exception e)
            {
                output.ResultErrors.Messages.Add(e.Message);
            }

            return(output);
        }
예제 #4
0
        public async Task DeleteProductAsync_IsSuccessful_ReturnsTrue()
        {
            // Arrange
            var productId = Guid.NewGuid();
            var product   = new Domain.Models.Product()
            {
                Id            = productId,
                Name          = "Product Name",
                Description   = "Product Description",
                Price         = 100,
                DeliveryPrice = 2
            };

            _mockProductRepository
            .Setup(m => m.GetProductAsync(It.IsAny <Guid>()))
            .ReturnsAsync(product);

            _mockProductRepository
            .Setup(m => m.DeleteProductAsync(It.IsAny <Guid>()))
            .ReturnsAsync(true);

            // Act
            var result = await _sut.DeleteProductAsync(productId);

            // Assert
            Assert.That(result, Is.True);
        }
예제 #5
0
        public async Task CreateProductAsync_IsSuccessful_ReturnsTrue()
        {
            // Arrange
            var productId = Guid.NewGuid();
            var dto       = new CreateProduct()
            {
                Name          = "Product Name",
                Description   = "Product Description",
                Price         = 100,
                DeliveryPrice = 2
            };
            var product = new Domain.Models.Product()
            {
                Id            = productId,
                Name          = "Product Name",
                Description   = "Product Description",
                Price         = 100,
                DeliveryPrice = 2
            };

            _mockProductRepository
            .Setup(m => m.CreateProductAsync(It.IsAny <Domain.Models.Product>()))
            .ReturnsAsync(product);

            // Act
            var result = await _sut.CreateProductAsync(dto);

            // Assert
            Assert.AreEqual(result.Id, productId);
            Assert.AreEqual(result.Name, "Product Name");
            Assert.AreEqual(result.Description, "Product Description");
            Assert.AreEqual(result.Price, 100);
            Assert.AreEqual(result.DeliveryPrice, 2);
        }
        public async Task <ProductResponse> UpdateAsync(int id, Domain.Models.Product product)
        {
            var existingProduct = await _productRepository.FindByIdAsync(id);

            if (existingProduct == null)
            {
                return(new ProductResponse("Product not found."));
            }

            var existingItem = await _itemRepository.FindByIdAsync(product.ItemId);

            if (existingItem == null)
            {
                return(new ProductResponse("Invalid item."));
            }

            existingProduct.Name = product.Name;
            existingProduct.UnitOfMeasurement = product.UnitOfMeasurement;
            existingProduct.QuantityInPackage = product.QuantityInPackage;
            existingProduct.ItemId            = product.ItemId;

            try
            {
                _productRepository.Update(existingProduct);
                await _unitOfWork.CompleteAsync();

                return(new ProductResponse(existingProduct));
            }
            catch (Exception ex)
            {
                // Do some logging stuff
                return(new ProductResponse($"An error occurred when updating the product: {ex.Message}"));
            }
        }
        public async Task <ProductResponse> SaveAsync(Domain.Models.Product product)
        {
            try
            {
                /*
                 * Notice here we have to check if the item ID is valid before adding the product, to avoid errors.
                 * You can create a method into the ItemService class to return the item and inject the service here if you prefer, but
                 * it doesn't matter given the API scope.
                 */
                var existingItem = await _itemRepository.FindByIdAsync(product.ItemId);

                if (existingItem == null)
                {
                    return(new ProductResponse("Invalid item."));
                }

                await _productRepository.AddAsync(product);

                await _unitOfWork.CompleteAsync();

                return(new ProductResponse(product));
            }
            catch (Exception ex)
            {
                // Do some logging stuff
                return(new ProductResponse($"An error occurred when saving the product: {ex.Message}"));
            }
        }
예제 #8
0
        public async Task <UpdateProductOutputDto> UpdateProductAsync(UpdateProductInputDto aParams)
        {
            var output = new UpdateProductOutputDto();

            try
            {
                var item = new Domain.Models.Product
                {
                    Id             = aParams.Id,
                    Name           = aParams.Name,
                    Price          = aParams.Price,
                    DeliveryPrice  = aParams.DeliveryPrice,
                    Description    = aParams.Description,
                    ProductOptions = Mapper.Map <List <Domain.Models.ProductOption> >(aParams.ProductOptions)
                };

                await UnitOfWork.ProductRepository.UpdateProductAsync(item);

                await UnitOfWork.SaveChanges();

                var updatedRecord = await UnitOfWork.ProductRepository.GetProductAsync(aParams.Id);

                output = Mapper.Map <UpdateProductOutputDto>(updatedRecord);
            }
            catch (Exception e)
            {
                output.ResultErrors.Messages.Add(e.Message);
            }

            return(output);
        }
예제 #9
0
        public async Task <IActionResult> Post([FromBody] Domain.Models.Product product)
        {
            await _productService.AddAsync(product);

            return(Created($"/api/product/{product.Id}", new Domain.Models.Product {
                Id = product.Id
            }));
        }
예제 #10
0
        public int Add(Domain.Models.Product newItem)
        {
            int newId = _productsList[_productsList.Count - 1].Id + 1;

            newItem.Id = newId;
            _productsList.Add(newItem);
            return(newId);
        }
예제 #11
0
        public void Setup()
        {
            var context = new Domain.DataAccess.MahourContext();

            _gallery = context.GalleryTable.FirstOrDefault();
            _project = context.ProjectTable.FirstOrDefault();
            _product = context.ProductTable.FirstOrDefault();

            if (_project == null)
            {
                var Project = new Domain.Models.Project()
                {
                    ID = DateTime.Now.Ticks.ToString(),
                    ImageFileAddress = "test",
                    Name             = "test",
                    ShortDescription = "test",
                    State            = "0",
                    Status           = true,
                    TextFileAddress  = "test",
                    TimeToFinish     = 150
                };
                context.ProjectTable.Add(Project);
                context.SaveChanges();
                _project = Project;
            }

            if (_product == null)
            {
                var Product = new Domain.Models.Product()
                {
                    ID = DateTime.Now.Ticks.ToString(),
                    ImageFileAddress = "test",
                    Name             = "test",
                    ShortDescription = "test",
                    Status           = true,
                    TextFileAddress  = "test"
                };
                context.ProductTable.Add(Product);
                context.SaveChanges();
                _product = Product;
            }

            if (_gallery == null)
            {
                var Gallery = new Domain.Models.Gallery()
                {
                    ID = DateTime.Now.Ticks.ToString(),
                    ImageFileAddress = "test",
                    Description      = "some test",
                    Project          = _project,
                    Product          = _product
                };

                context.GalleryTable.Add(Gallery);
                context.SaveChanges();
                _gallery = Gallery;
            }
        }
예제 #12
0
 private void Process(Domain.Models.Product sku)
 {
     using (var db = new YintaiHZhouContext()) {
         var p = db.Products.FirstOrDefault(t => t.Id == sku.Id);
         p.IsHasImage  = true;
         p.UpdatedDate = DateTime.Now;
         p.UpdatedUser = SystemDefine.SystemUser;
         db.SaveChanges();
     }
 }
예제 #13
0
        public void Setup()
        {
            var context = new Domain.DataAccess.MahourContext();

            _platform = context.PlatformTable.FirstOrDefault();
            _project  = context.ProjectTable.FirstOrDefault();
            _product  = context.ProductTable.FirstOrDefault();

            if (_project == null)
            {
                var Project = new Domain.Models.Project()
                {
                    ID = DateTime.Now.Ticks.ToString(),
                    ImageFileAddress = "test",
                    Name             = "test",
                    ShortDescription = "test",
                    State            = "0",
                    Status           = true,
                    TextFileAddress  = "test",
                    TimeToFinish     = 150
                };
                context.ProjectTable.Add(Project);
                context.SaveChanges();
                _project = Project;
            }

            if (_product == null)
            {
                var Product = new Domain.Models.Product()
                {
                    ID = DateTime.Now.Ticks.ToString(),
                    ImageFileAddress = "test",
                    Name             = "test",
                    ShortDescription = "test",
                    Status           = true,
                    TextFileAddress  = "test"
                };
                context.ProductTable.Add(Product);
                context.SaveChanges();
                _product = Product;
            }

            if (_platform == null)
            {
                var Platform = new Domain.Models.Platform()
                {
                    ID              = DateTime.Now.Ticks.ToString(),
                    Name            = "test",
                    IconFileAddress = "test Icon"
                };

                context.PlatformTable.Add(Platform);
                _platform = Platform;
            }
        }
예제 #14
0
        public Domain.Models.Product Update(Domain.Models.Product newItem)
        {
            var existing = _productsList.SingleOrDefault(a => a.Id == newItem.Id);

            if (existing != null)
            {
                existing.Name = newItem.Name;
            }

            return(existing);
        }
예제 #15
0
            public async Task <int> Handle(CreateProductCommand command, CancellationToken cancellationToken)
            {
                var product = new Domain.Models.Product();

                product.Barcode     = command.Barcode;
                product.Name        = command.Name;
                product.BuyingPrice = command.BuyingPrice;
                product.Rate        = command.Rate;
                product.Description = command.Description;

                var result = _context.Products.Add(product);

                return(result);
            }
예제 #16
0
        public async Task GetAllProductOptionsAsync_ReturnsAllOptionsOnProduct()
        {
            // Arrange
            var productId = Guid.NewGuid();
            var options   = new List <ProductOption>
            {
                new ProductOption
                {
                    ProductId   = productId,
                    Name        = "Product Option Name 1",
                    Description = "Product Option Description 1"
                },
                new ProductOption
                {
                    ProductId   = productId,
                    Name        = "Product Option Name 2",
                    Description = "Product Option Description 2"
                }
            };
            var product = new Domain.Models.Product()
            {
                Id            = productId,
                Name          = "Product Name",
                Description   = "Product Description",
                Price         = 100,
                DeliveryPrice = 2
            };

            _mockProductRepository
            .Setup(m => m.GetProductAsync(It.IsAny <Guid>()))
            .ReturnsAsync(product);

            _mockProductRepository
            .Setup(m => m.GetAllProductOptionsAsync(It.IsAny <Guid>()))
            .ReturnsAsync(options);

            // Act
            var results = await _sut.GetAllProductOptionsAsync(productId);

            // Assert
            Assert.That(results.Count, Is.EqualTo(2));
            Assert.AreEqual(options[0].Name, results[0].Name);
            Assert.AreEqual(options[0].Description, results[0].Description);
            Assert.AreEqual(options[1].Name, results[1].Name);
            Assert.AreEqual(options[1].Description, results[1].Description);
        }
예제 #17
0
            public async Task <long> Handle(CreateProductCommand request, CancellationToken cancellationToken)
            {
                var product = new Domain.Models.Product
                {
                    UserId        = request.UserId,
                    DatePurchased = request.DatePurchased,
                    Description   = request.Description.Trim(),
                    Price         = request.Price,
                    Paid          = request.Paid,
                    CategoryId    = request.CategoryId
                };

                _context.Product.Add(product);
                await _context.SaveChangesAsync(cancellationToken);

                return(product.Id);
            }
예제 #18
0
        public async Task <CreateProductCommandDto> Handle(CreateProductCommand request, CancellationToken cancellationToken)
        {
            var input   = request.data.attributes;
            var product = new Domain.Models.Product
            {
                name  = input.name,
                price = input.price
            };

            //_context.products.Add(product);
            //await _context.SaveChangesAsync(cancellationToken);

            return(new CreateProductCommandDto
            {
                Message = "Success add product data",
                Success = true,
                Data = product
            });
        }
예제 #19
0
        public void Setup()
        {
            var context = new Domain.DataAccess.MahourContext();

            if (_product == null)
            {
                var Product = new Domain.Models.Product()
                {
                    ID = DateTime.Now.Ticks.ToString(),
                    ImageFileAddress = "test",
                    Name             = "test",
                    ShortDescription = "test",
                    Status           = true,
                    TextFileAddress  = "test"
                };
                context.ProductTable.Add(Product);
                context.SaveChanges();
                _product = Product;
            }
        }
        public async Task <ProductDto> AddProductAsync(AddProductDto model)
        {
            Domain.Models.Product product = new Domain.Models.Product()
            {
                Name        = model.Name,
                Description = model.Description,
                Price       = model.Price,
                Category    = model.Category
            };

            await _productRepository.AddAsync(product);

            return(new ProductDto()
            {
                Id = product.Id,
                Name = product.Name,
                Description = product.Description,
                Price = product.Price,
                Category = product.Category
            });
        }
예제 #21
0
 public Domain.Models.Product GetProduct(int productId)
 {
     Domain.Models.Product result = null;
     try
     {
         _logger.LogInformation("BEGIN GetProduct");
         result = LactafarmaService.GetProduct(productId);
         _logger.LogInformation("END GetProduct");
     }
     catch (Exception ex)
     {
         _logger.LogError($"Exception on JsonResult called GetProduct(productId={productId}) with message {ex.Message}");
     }
     finally
     {
         if (result == null)
         {
             _logger.LogWarning("No results for current request!!!");
         }
     }
     return(result);
 }
예제 #22
0
        public async Task <Response> Do(Request request)
        {
            var product = new Domain.Models.Product

            {
                Name        = request.Name,
                Description = request.Description,
                Value       = request.Value
            };

            _context.Products.Add(product);

            await _context.SaveChangesAsync();

            return(new Response
            {
                Id = product.Id,
                Name = product.Name,
                Description = product.Description,
                Value = product.Value
            });
        }
예제 #23
0
        public void RemoveProduct()
        {
            _container = EntityContainer.RemoveableContainer.ContainerConfig <EntityService.Entities.Product.ModifiableProduct>(_product.ID);

            try
            {
                using (var scope = _container.BeginLifetimeScope())
                {
                    var removeableProduct = _container.Resolve <EntityService.Interfaces.IRemoveable>();

                    removeableProduct.Remove();
                }
            }
            catch (Exception error)
            {
                Assert.Fail(error.Message);
            }
            finally
            {
                _product = new Domain.DataAccess.MahourContext().ProductTable.FirstOrDefault();
            }
        }
예제 #24
0
        public async Task CreateProductOptionAsync_IsSuccessful_ReturnsTrue()
        {
            // Arrange
            var productId = Guid.NewGuid();
            var dto       = new CreateProductOption()
            {
                Name        = "Product Option Name",
                Description = "Product Option Description"
            };
            var product = new Domain.Models.Product
            {
                Name          = "Product Name 1",
                Description   = "Product Description 1",
                Price         = 100,
                DeliveryPrice = 2
            };
            var option = new ProductOption
            {
                Name        = "Product Option Name 1",
                Description = "Product Option Description 1",
            };

            _mockProductRepository
            .Setup(m => m.GetProductAsync(It.IsAny <Guid>()))
            .ReturnsAsync(product);

            _mockProductRepository
            .Setup(m => m.CreateProductOptionAsync(It.IsAny <ProductOption>()))
            .ReturnsAsync(option);

            // Act
            var result = await _sut.CreateProductOptionAsync(productId, dto);

            // Assert
            Assert.AreEqual(option.Name, result.Name);
            Assert.AreEqual(option.Description, result.Description);
        }
예제 #25
0
        public Domain.Models.Product Sync(ProductDto channelProduct)
        {
            /**
             * 首先同步相关信息
             * 1. 同步品牌
             * 2. 同步分类
             * 3. 同步专柜及门店
             * 4. 同步商品基本信息
             */

            /**
             * 检查并同步专柜, 同步专柜信息时同时会同步门店信息,在此无需再同步门店
             */
            var section = _sectionSyncProcessor.Sync(channelProduct.SectionId, channelProduct.StoreNo);

            if (section == null)
            {
                Log.ErrorFormat("同步商品对应专柜失败:productId:[{0}],sectionId:[1],stroeNo:[{2}]", channelProduct.ProductId, channelProduct.SectionId, channelProduct.StoreNo);
                return(null);
            }

            /**
             * 检查并同步品牌,目前集团的商品只有品牌名称,所以同步商品不成功,只是提供警告
             */
            var brand = _brandSyncProcessor.SyncBrand(channelProduct.BrandId, channelProduct.BrandName);

            if (brand == null)
            {
                var channelMap = _channelMapper.GetMapByChannelValue(channelProduct.BrandName, ChannelMapType.Brand);
                if (channelMap == null)
                {
                    //品牌没有的,按所属专柜在查找,如果没有的,如果有则关联此品牌;如果没有,则依据专柜创建品牌并关联
                    using (var db = new YintaiHZhouContext())
                    {
                        brand =
                            db.Brands.Where(
                                b =>
                                b.Name.Trim().ToUpper() == section.Name.Trim().ToUpper() ||
                                b.EnglishName.Trim().ToUpper() == section.Name.Trim().ToUpper() && b.Status == 1)
                            .OrderByDescending(x => x.Id)
                            .FirstOrDefault();
                        if (brand == null)
                        {
                            /**
                             * 品牌映射关系不存在,
                             *
                             * 1. 创建新品牌
                             * 2. 保存映射关系
                             */

                            var newBrand = new Brand()
                            {
                                //ChannelBrandId = brandSource.BrandId,
                                Name        = section.Name,
                                EnglishName = string.Empty,
                                Logo        = string.Empty,
                                Status      = 1,
                                Description = string.Empty,
                                Group       = string.Empty,
                                WebSite     = string.Empty,
                                CreatedDate = DateTime.Now,
                                CreatedUser = SystemDefine.SystemUser,
                                UpdatedDate = DateTime.Now,
                                UpdatedUser = SystemDefine.SystemUser,
                            };

                            // 添加品牌并保持
                            brand = db.Brands.Add(newBrand);
                            db.SaveChanges();
                        }
                        else
                        {
                            if (brand.Status != 1)
                            {
                                brand.Status      = 1;
                                brand.UpdatedDate = DateTime.Now;
                                db.SaveChanges();
                            }
                        }

                        // 添加映射关系
                        var newChannelMap = new ChannelMap()
                        {
                            LocalId       = brand.Id,
                            ChannnelValue = section.Name.Trim().ToUpper(),
                            MapType       = ChannelMapType.Brand
                        };

                        _channelMapper.CreateMap(newChannelMap);
                    }
                }
                else
                {
                    using (var db = new YintaiHZhouContext())
                    {
                        brand = db.Brands.FirstOrDefault(x => x.Id == channelMap.LocalId);
                    }
                }

                Log.WarnFormat("同步商品对应品牌失败:ProductId:[{0}],brandId:[{1}],brandName:[{2}]", channelProduct.ProductId, channelProduct.BrandId, channelProduct.BrandName);
            }


            using (var db = new YintaiHZhouContext())
            {
                if (!db.IMS_SectionBrand.Any(x => x.BrandId == brand.Id && x.SectionId == section.Id))
                {
                    var sb = new IMS_SectionBrand()
                    {
                        BrandId   = brand.Id,
                        SectionId = section.Id
                    };
                    db.IMS_SectionBrand.Add(sb);
                    db.SaveChanges();
                }
            }

            /**
             * 检查并同步分类,目前集团分类信息为空,所以同步商品不成功,只是提供警告
             */
            var category = _categorySyncProcessor.Sync(channelProduct.CategoryId4, channelProduct.Category4);

            if (category == null)
            {
                //如果分类为空,设置一个默认值
                Log.WarnFormat("同步商品对应分类失败:[{0}],categoryId:[{1}],category:[{2}]", channelProduct.ProductId, channelProduct.CategoryId4, channelProduct.Category4);
            }

            var tagId = FetchTagId(channelProduct);
            int catid;

            if (!string.IsNullOrEmpty(channelProduct.CategoryId4))
            {
                int.TryParse(channelProduct.CategoryId4, out catid);
            }
            else
            {
                catid = 0;
            }

            using (var db = new YintaiHZhouContext())
            {
                /**
                 * 同步商品基本信息,
                 * 说明 productId为商品唯一标识
                 *      productCode为商品的款编号
                 *      商品款号加上品牌id唯一标识
                 */
                var mapKey         = string.Format("{1}-{0}", channelProduct.ProductCode, brand.Id);
                var productCodeMap = _channelMapper.GetMapByChannelValue(mapKey, ChannelMapType.ProductCode);

                if (productCodeMap == null)
                {
                    var newProduct = new Domain.Models.Product()
                    {
                        ProductType       = 1,
                        Brand_Id          = brand.Id,
                        Name              = string.IsNullOrEmpty(channelProduct.ProductName) ? string.Format("{0}-{1}", brand.Name, channelProduct.ProductCode) : channelProduct.ProductName,
                        UnitPrice         = channelProduct.LabelPrice,
                        Store_Id          = section.StoreId ?? 0,
                        Price             = channelProduct.CurrentPrice,
                        Description       = string.Empty,
                        SkuCode           = channelProduct.ProductCode,
                        Is4Sale           = false, //商品属性同步完成了,设置为true
                        RecommendedReason = string.Empty,
                        RecommendUser     = DEFAULT_OWNER_ID,
                        SortOrder         = 0,
                        Status            = 1,
                        Tag_Id            = tagId,
                        BarCode           = string.Empty,
                        Favorable         = "1",
                        UpdatedDate       = DateTime.Now,
                        UpdatedUser       = DEFAULT_OWNER_ID,
                        CreatedDate       = DateTime.Now,
                        CreatedUser       = DEFAULT_OWNER_ID,
                    };

                    newProduct = db.Products.Add(newProduct);
                    db.SaveChanges();

                    // 保存映射关系
                    _channelMapper.CreateMap(new ChannelMap()
                    {
                        LocalId       = newProduct.Id,
                        ChannnelValue = mapKey,
                        MapType       = ChannelMapType.ProductCode
                    });

                    // 保存本地商品Id和渠道的对应的关系,用于如更新图片等功能的使用
                    _channelMapper.CreateMap(new ChannelMap()
                    {
                        LocalId       = newProduct.Id,
                        ChannnelValue = channelProduct.ProductId,
                        MapType       = ChannelMapType.ProductId
                    });

                    if (catid > 0)
                    {
                        CreateProductMap(channelProduct, newProduct.Id, catid);
                    }
                    return(newProduct);
                }

                var proudctExt = db.Products.FirstOrDefault(p => p.Id == productCodeMap.LocalId);

                if (proudctExt == null)
                {
                    Log.ErrorFormat("商品productId:[{0}],productcode:[{1}],存在映射关系,商品数据不存在", channelProduct.ProductId, channelProduct.ProductCode);
                    return(null);
                }

                var productMap = _channelMapper.GetMapByChannelValue(channelProduct.ProductId, ChannelMapType.ProductId);
                if (productMap == null)
                {
                    // 保存本地商品Id和渠道的对应的关系,用于如更新图片等功能的使用
                    _channelMapper.CreateMap(new ChannelMap()
                    {
                        LocalId       = proudctExt.Id,
                        ChannnelValue = channelProduct.ProductId,
                        MapType       = ChannelMapType.ProductId
                    });
                }

                //proudctExt.BarCode = string.Empty;
                proudctExt.Store_Id  = section.StoreId ?? 0;
                proudctExt.Brand_Id  = brand == null ? 0 : brand.Id;
                proudctExt.Tag_Id    = tagId;
                proudctExt.SkuCode   = channelProduct.ProductCode;
                proudctExt.Name      = string.IsNullOrEmpty(channelProduct.ProductName) ? string.Format("{0}-{1}", brand.Name, channelProduct.ProductCode) : channelProduct.ProductName;
                proudctExt.UnitPrice = channelProduct.LabelPrice;
                proudctExt.Price     = channelProduct.CurrentPrice;
                //proudctExt.Description = string.Empty;
                //proudctExt.RecommendedReason = string.Empty;
                proudctExt.UpdatedDate = DateTime.Now;
                proudctExt.UpdatedUser = DEFAULT_OWNER_ID;

                if (catid > 0 && !db.ProductMaps.Any(x => x.Channel == SystemDefine.IntimeChannel && x.ProductId == proudctExt.Id))
                {
                    CreateProductMap(channelProduct, proudctExt.Id, catid);
                }


                db.SaveChanges();
                return(proudctExt);
            }
        }
예제 #26
0
 public async Task <int> AddAsync(Domain.Models.Product product)
 {
     _unit.ProductRepository.Add(product);
     return(await _unit.CommitChangesAsync());
 }
예제 #27
0
 public async Task <int> UpdateAsync(Domain.Models.Product product)
 {
     _unit.ProductRepository.Update(product.Id, product);
     return(await _unit.CommitChangesAsync());
 }
 public async Task AddAsync(Domain.Models.Product product)
 {
     await _context.Products.AddAsync(product);
 }
 public void Update(Domain.Models.Product product)
 {
     _context.Products.Update(product);
 }
 public void Remove(Domain.Models.Product product)
 {
     _context.Products.Remove(product);
 }