public async Task <ActionResult> DeleteProduct(int supplierId, int productId) { var command = new DeleteProductForSupplierCommand { SupplierId = supplierId, ProductId = productId }; var result = await mediator.Send(command); return(result.Success ? (ActionResult)Ok(result.Success) : BadRequest(result.ErrorMessages)); }
public async Task DeleteProductForSupplier() { var context = DatabaseHelper.CreateInMemoryDatabaseContext(nameof(DeleteProductForSupplier)); var supplierResp = await context.AddAsync(ValidModelCreator.Supplier()); var supplierId = supplierResp.Entity.Id; var productId1 = (await context.AddAsync(ValidModelCreator.Product(supplierId))).Entity.Id; var productId2 = (await context.AddAsync(ValidModelCreator.Product(supplierId))).Entity.Id; var productId3 = (await context.AddAsync(ValidModelCreator.Product(supplierId))).Entity.Id; var deleteProduct2Cmd = new DeleteProductForSupplierCommand { ProductId = productId2, SupplierId = supplierId }; var deleteProductHandler = new DeleteProductForSupplierCommandHandler(context); var result = await deleteProductHandler.Handle(deleteProduct2Cmd, CancellationToken.None); Assert.True(result.Success); var queryProduct2 = new GetProductForSupplierByIdQuery { ProductId = productId2, SupplierId = supplierId }; var queryOneHandler = new GetProductForSupplierByIdQueryHandler(context); var queryProduct2Result = await queryOneHandler.Handle(queryProduct2, CancellationToken.None); Assert.False(queryProduct2Result.Success); var queryProduct1 = new GetProductForSupplierByIdQuery { ProductId = productId1, SupplierId = supplierId }; var queryProduct3 = new GetProductForSupplierByIdQuery { ProductId = productId3, SupplierId = supplierId }; var queryProduct1Result = await queryOneHandler.Handle(queryProduct1, CancellationToken.None); Assert.True(queryProduct1Result.Success); var queryProduct3Result = await queryOneHandler.Handle(queryProduct3, CancellationToken.None); Assert.True(queryProduct3Result.Success); var result2 = await deleteProductHandler.Handle(deleteProduct2Cmd, CancellationToken.None); Assert.False(result2.Success); }