Exemple #1
0
        public async Task <ActionResult <Plant> > Get(Guid plantId)
        {
            var query = new GetPlantByIdQuery {
                Id = plantId
            };
            var response = await mediator.Send(query);

            if (!response.Success)
            {
                return(BadRequest(response.ErrorMessages));
            }

            return(Ok(Plant.FromCore(response.Data)));
        }
Exemple #2
0
        public async Task <ActionResult <Plant> > Update(Guid plantId, UpdatePlantRequest request)
        {
            var command = new UpdatePlantCommand
            {
                Id = plantId, PlantSpeciesId = request.PlantSpeciesId, Name = request.Name, IsActive = request.IsActive
            };
            var response = await mediator.Send(command);

            if (!response.Success)
            {
                return(BadRequest(response.ErrorMessages));
            }

            var updatedQuery = new GetPlantByIdQuery {
                Id = command.Id
            };
            var updatedResult = await mediator.Send(updatedQuery);

            var updatedObj = Plant.FromCore(updatedResult.Data);

            return(Ok(updatedObj));
        }
Exemple #3
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));
        }
        public async Task GetSinglePlant()
        {
            await using var context = DatabaseHelper.CreateInMemoryDatabaseContext(nameof(GetSinglePlant));
            var plantSpecies1 = ValidObjectHelper.ValidPlantSpecies();
            await context.PlantSpecies.AddAsync(
                plantSpecies1
                );

            var validPlant = ValidObjectHelper.ValidPlant(plantSpecies1);
            await context.Plants.AddAsync(validPlant);

            await context.SaveChangesAsync();

            var id        = validPlant.Id;
            var name      = validPlant.Name;
            var active    = validPlant.PlantState == PlantState.Active;
            var speciesId = validPlant.PlantSpeciesId;

            var querySingle = new GetPlantByIdQuery {
                Id = id
            };
            var queryHandler = new GetPlantByIdQueryHandler(context);
            var result       = await queryHandler.Handle(querySingle, CancellationToken.None);

            Assert.True(result.Success);
            Assert.Equal(id, result.Data.Id);
            Assert.Equal(name, result.Data.Name);
            Assert.Equal(active, result.Data.IsActive);
            Assert.Equal(speciesId, result.Data.PlantSpeciesId);

            var queryNonExisting = new GetPlantByIdQuery {
                Id = Guid.NewGuid()
            };
            var resultNonExisting = await queryHandler.Handle(queryNonExisting, CancellationToken.None);

            Assert.False(resultNonExisting.Success);
        }