public async Task CreatePlant() { await using var context = DatabaseHelper.CreateInMemoryDatabaseContext(nameof(CreatePlant)); // create plant species var plantSpecies1 = ValidObjectHelper.ValidPlantSpecies(); await context.PlantSpecies.AddRangeAsync( plantSpecies1 ); await context.SaveChangesAsync(); var validPlant = ValidObjectHelper.ValidPlant(plantSpecies1); var id = validPlant.Id; var name = validPlant.Name; var cntBefore = await context.Plants.CountAsync(); var createCmd = new CreatePlantCommand { Id = id, Name = name, PlantSpeciesId = plantSpecies1.Id }; var cmdHandler = new CreatePlantCommandHandler(context); var result = await cmdHandler.Handle(createCmd, CancellationToken.None); Assert.True(result.Success); Assert.Equal(cntBefore + 1, await context.Plants.CountAsync()); var obj = await context.Plants.FindAsync(id); Assert.Equal(id, obj.Id); Assert.Equal(name, obj.Name); Assert.Equal(plantSpecies1.Id, obj.PlantSpeciesId); }
public async Task <ActionResult <Plant> > Create(CreatePlantRequest request) { var command = new CreatePlantCommand { Id = Guid.NewGuid(), PlantSpeciesId = request.PlantSpeciesId, Name = request.Name }; var response = await mediator.Send(command); if (!response.Success) { return(BadRequest(response.ErrorMessages)); } var createdQuery = new GetPlantByIdQuery { Id = command.Id }; var createdResult = await mediator.Send(createdQuery); var createdObj = Plant.FromCore(createdResult.Data); return(CreatedAtRoute(nameof(PlantController) + "/" + nameof(Get), new { plantId = command.Id }, createdObj)); }
public async Task <ActionResult <int> > Create([FromBody] CreatePlantCommand command) { return(Ok(await Mediator.Send(command))); }