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); }
public void Delete(int id) { var product = _productRepository.FindById(id); _productRepository.Remove(product); _productTagRepository.RemoveMultiple(_productTagRepository.FindAll(x => x.ProductId == product.Id).ToList()); }
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); }
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); }
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)); }
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); }