示例#1
0
        public async Task Handle(ProductUnpublishedFromCategory message)
        {
            var prod = _productsRepository
                       .SearchFor(p => p.Id == message.Id)
                       .FirstOrDefault();

            _productsRepository.Delete(prod);
        }
        // Garder le compte des produits publiés
        // Mettre à jour le nombre de produits dans la hiérarchie de catégories parentes
        public async Task Handle(ProductUnpublishedFromCategory message)
        {
            var cat = _categoryRepository.GetById(message.Id);

            cat.VisibleProducts      -= 1;
            cat.TotalVisibleProducts -= 1;

            _categoryRepository.Update(cat);

            Guid?parentId = cat.ParentId;

            while (parentId != null)
            {
                var parentCat = _categoryRepository.GetById(parentId.Value);
                parentCat.TotalVisibleProducts -= 1;
                _categoryRepository.Update(parentCat);
                parentId = parentCat.ParentId;
            }
        }