コード例 #1
0
        public ProductViewModel Update(ProductViewModel productViewModel)
        {
            var tags        = productViewModel.Tags.Split(",");
            var productTags = new List <ProductTag>();

            foreach (var t in tags)
            {
                var tagId = TextHelper.ToUnsignString(t);
                if (_tagRepository.FindById(tagId) == null)
                {
                    _tagRepository.Add(new Tag()
                    {
                        Id   = tagId,
                        Name = t,
                        Type = CommonConstants.productTag
                    });
                }
                productTags.Add(new ProductTag()
                {
                    ProductId = productViewModel.Id,
                    TagId     = tagId
                });
            }
            var model = Mapper.Map <ProductViewModel, Product>(productViewModel);

            _productTagRepository.RemoveMultiple(_productTagRepository.FindAll(x => x.ProductId == model.Id).ToList());
            foreach (var pt in productTags)
            {
                model.ProductTags.Add(pt);
            }

            _productRepository.Update(model);
            return(productViewModel);
        }
コード例 #2
0
        public void Delete(int id)
        {
            var product = _productRepository.FindById(id);

            _productRepository.Remove(product);
            _productTagRepository.RemoveMultiple(_productTagRepository.FindAll(x => x.ProductId == product.Id).ToList());
        }
コード例 #3
0
        public void Update(ProductViewModel productVm)
        {
            List <ProductTag> productTags = new List <ProductTag>();

            if (!string.IsNullOrEmpty(productVm.Tags))
            {
                string[] tags = productVm.Tags.Split(',');
                foreach (string t in tags)
                {
                    var tagId = TextHelper.ToUnsignString(t);
                    if (!_tagRepository.FindAll(x => x.Id == tagId).Any())
                    {
                        Tag tag = new Tag();
                        tag.Id   = tagId;
                        tag.Name = t;
                        tag.Type = CommonConstants.ProductTag;
                        _tagRepository.Add(tag);
                    }
                    _productTagRepository.RemoveMultiple(_productTagRepository.FindAll(x => x.Id == productVm.Id).ToList());
                    ProductTag productTag = new ProductTag
                    {
                        TagId = tagId
                    };
                    productTags.Add(productTag);
                }
            }

            var product = Mapper.Map <ProductViewModel, Product>(productVm);

            foreach (var productTag in productTags)
            {
                product.ProductTags.Add(productTag);
            }
            _productRepository.Update(product.Id, product);
        }
コード例 #4
0
        public void Update(ProductViewModel productViewModel)
        {
            var product = Mapper.Map <ProductViewModel, Product>(productViewModel);

            productTagRepository.RemoveMultiple(productTagRepository.FindAll(x => x.ProductId == productViewModel.Id).ToList());
            if (!string.IsNullOrEmpty(productViewModel.Tags))
            {
                string[] tags = productViewModel.Tags.Split(',');
                foreach (string t in tags)
                {
                    var tagId = TextHelper.ToUnsignString(t);
                    // Add tags
                    if (!tagRepository.FindAll(tag => tag.Id == tagId).Any())
                    {
                        Tag tag = new Tag
                        {
                            Id   = tagId,
                            Name = t,
                            Type = CommonConstants.ProductTag
                        };
                        tagRepository.Add(tag);
                    }
                    // Add product tags
                    ProductTag productTag = new ProductTag
                    {
                        TagId = tagId
                    };
                    product.ProductTags.Add(productTag);
                }
            }
            product.SeoAlias = TextHelper.ToUnsignString(productViewModel.Name);
            productRepository.Update(product);
        }
コード例 #5
0
        public ProductViewModel GetById(int id)
        {
            var product     = _productRepository.FindById(id);
            var productTags = _productTagRepository
                              .FindAll(prTag => prTag.ProductId == id)
                              .Select(x => x.Tag != null ? x.Tag.Name : string.Empty);

            if (productTags.Any())
            {
                product.Tags = string.Join(",", productTags.ToList());
            }
            return(Mapper.Map <Product, ProductViewModel>(product));
        }
コード例 #6
0
        public async Task Update(ProductViewModel productVm)
        {
            List <ProductTag> productTags = new List <ProductTag>();

            if (!string.IsNullOrEmpty(productVm.Tags))
            {
                string[] tags = productVm.Tags.Split(',');
                foreach (string t in tags)
                {
                    var tagId       = TextHelper.ToUnsignString(t);
                    var tagEntities = await _tagRepository.FindAll(x => x.Id == tagId);

                    var canCreated = !tagEntities.AsNoTracking().Any();
                    if (canCreated)
                    {
                        Tag tag = new Tag {
                            Id = tagId, Name = t, Type = CommonConstants.ProductTag
                        };
                        await _tagRepository.Add(tag);
                    }

                    var productTagEntities = await _productTagRepository.FindAll(x => x.Id == productVm.Id);

                    await _productTagRepository.RemoveMultiple(productTagEntities.AsNoTracking().ToList());

                    ProductTag productTag = new ProductTag
                    {
                        TagId = tagId
                    };
                    productTags.Add(productTag);
                }
            }

            var product = new ProductViewModel().Map(productVm);

            foreach (var productTag in productTags)
            {
                product.ProductTags.Add(productTag);
            }
            await _productRepository.Update(product);
        }