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))); }
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)); }
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); }