Esempio n. 1
0
        public async Task <Response> Remove(CategoryRemoveRequest request)
        {
            await _uow.Categories.DeleteAsync(new Guid(request.Id));

            // remove category from products, disable visibility of products
            var products = await _uow.Products.FindManyAsync(p => p.CategoryId == request.Id);

            if (products != null)
            {
                var productTasks = new List <Task>();
                foreach (var product in products)
                {
                    product.CategoryId = null;
                    product.IsActive   = false;
                    var productTask = _uow.Products.FindAndReplaceAsync(product.Id, product);
                    productTasks.Add(productTask);
                }
                await Task.WhenAll(productTasks);
            }
            return(new Response(ResponseStatus.Ok));
        }
Esempio n. 2
0
        public async Task <IHttpActionResult> Delete([FromUri] CategoryRemoveRequest request)
        {
            var response = await _categoryService.Remove(request);

            return(new CreateResult(response));
        }