public async Task <ActionResult <SupplierDto> > Get(int supplierId) { var query = new GetSupplierByIdQuery { Id = supplierId }; var result = await mediator.Send(query); return(result.Success ? (ActionResult <SupplierDto>)Ok(SupplierDto.FromCoreSupplierDTO(result.Data)) : NotFound(result.ErrorMessages)); }
public async Task DeleteSupplier() { await using var context = DatabaseHelper.CreateInMemoryDatabaseContext(nameof(DeleteSupplier)); var supplierId1Task = context.AddAsync(ValidModelCreator.Supplier()); var supplierId2Task = context.AddAsync(ValidModelCreator.Supplier()); var supplierId3Task = context.AddAsync(ValidModelCreator.Supplier()); var supplier1Id = (await supplierId1Task).Entity.Id; var supplier2Id = (await supplierId2Task).Entity.Id; var supplier3Id = (await supplierId3Task).Entity.Id; var deleteSupplier2Cmd = new DeleteSupplierCommand { Id = supplier2Id, }; var deleteHandler = new DeleteSupplierCommandHandler(context); var deleteResult1 = await deleteHandler.Handle(deleteSupplier2Cmd, CancellationToken.None); Assert.True(deleteResult1.Success); var querySupplier2 = new GetSupplierByIdQuery { Id = supplier2Id }; var queryOneHandler = new GetSupplierByIdQueryHandler(context); var querySupplier2Res = await queryOneHandler.Handle(querySupplier2, CancellationToken.None); Assert.False(querySupplier2Res.Success); var deleteResult2 = await deleteHandler.Handle(deleteSupplier2Cmd, CancellationToken.None); Assert.False(deleteResult2.Success); var querySupplier1 = new GetSupplierByIdQuery { Id = supplier1Id }; var query1Result = await queryOneHandler.Handle(querySupplier1, CancellationToken.None); Assert.True(query1Result.Success); var querySupplier3 = new GetSupplierByIdQuery { Id = supplier3Id }; var query3Result = await queryOneHandler.Handle(querySupplier3, CancellationToken.None); Assert.True(query3Result.Success); }
public async Task <ActionResult <SupplierDto> > Create(CreateSupplierViewModel createSupplierViewModel) { var command = new CreateSupplierCommand { Name = createSupplierViewModel.Name, Email = createSupplierViewModel.Email, Phone = createSupplierViewModel.Phone }; var result = await mediator.Send(command); if (!result.Success) { return(BadRequest(result.ErrorMessages)); } var query = new GetSupplierByIdQuery { Id = result.Data }; var resultData = await mediator.Send(query); return(CreatedAtAction(nameof(Get), new { supplierId = result.Data }, SupplierDto.FromCoreSupplierDTO(resultData.Data))); }
public async Task TestCreateSuccess() { var cmd = new CreateSupplierCommand { Email = "*****@*****.**", Name = "Pascal", Phone = "+41 79 456 45 45" }; await using var context = DatabaseHelper.CreateInMemoryDatabaseContext(nameof(TestCreateSuccess)); var cmdHandler = new CreateSupplierCommandHandler(context); var cmdResponse = await cmdHandler.Handle(cmd, CancellationToken.None); var supplierId = cmdResponse.Data; Assert.True(cmdResponse.Success); var queryOneHandler = new GetSupplierByIdQueryHandler(context); var queryOne = new GetSupplierByIdQuery { Id = supplierId }; var queryOneResponse = await queryOneHandler.Handle(queryOne, CancellationToken.None); Assert.True(queryOneResponse.Success); Assert.Equal(supplierId, queryOneResponse.Data.Id); Assert.Equal(cmd.Email, queryOneResponse.Data.Email); Assert.Equal(cmd.Name, queryOneResponse.Data.Name); Assert.Equal(cmd.Phone, queryOneResponse.Data.Phone); var queryAll = new GetAllSuppliersQuery(); var queryAllHandler = new GetAllSuppliersQueryHandler(context); var queryAllResponse = await queryAllHandler.Handle(queryAll, CancellationToken.None); Assert.True(queryAllResponse.Success); Assert.NotEmpty(queryAllResponse.Data); Assert.Contains(queryAllResponse.Data, s => s.Id.Equals(supplierId)); }