Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }