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)); }
public async Task <IHttpActionResult> Delete([FromUri] CategoryRemoveRequest request) { var response = await _categoryService.Remove(request); return(new CreateResult(response)); }