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);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
 public async Task <ActionResult <int> > Create([FromBody] CreatePlantCommand command)
 {
     return(Ok(await Mediator.Send(command)));
 }