public async Task <ActionResult <PlantLog> > CreatePlantLog(Guid plantId, CreatePlantLogForPlantRequest request) { var command = new CreatePlantLogForPlantCommand { Id = Guid.NewGuid(), PlantId = plantId, PlantLogTypeId = request.PlantLogTypeId, Log = request.Log, DateTime = request.DateTime, }; var response = await mediator.Send(command); if (!response.Success) { return(BadRequest(response.ErrorMessages)); } var createdQuery = new GetPlantLogForPlantByIdQuery { Id = command.Id, PlantId = plantId }; var createdResult = await mediator.Send(createdQuery); var createdObj = PlantLog.FromCore(createdResult.Data); return(CreatedAtRoute(nameof(PlantController) + "/" + nameof(GetPlantLog), new { plantId = command.PlantId, logId = command.Id }, createdObj)); }
public async Task <ActionResult <PlantLog> > GetPlantLog(Guid plantId, Guid logId) { var query = new GetPlantLogForPlantByIdQuery { Id = logId, PlantId = plantId }; var response = await mediator.Send(query); if (!response.Success) { return(BadRequest(response.ErrorMessages)); } return(Ok(PlantLog.FromCore(response.Data))); }
public async Task GetSinglePlantLogForPlantTest() { await using var context = DatabaseHelper.CreateInMemoryDatabaseContext(nameof(GetSinglePlantLogForPlantTest)); var logType = ValidObjectHelper.ValidPlantLogType(); var plantSpecies = ValidObjectHelper.ValidPlantSpecies(); var plant1 = ValidObjectHelper.ValidPlant(plantSpecies); var plant2 = ValidObjectHelper.ValidPlant(plantSpecies); var logPlant1 = ValidObjectHelper.ValidPlantLog(plant1, logType); var logPlant2 = ValidObjectHelper.ValidPlantLog(plant2, logType); await context.AddRangeAsync(logType, plantSpecies, plant1, plant2, logPlant1, logPlant2); await context.SaveChangesAsync(); var querySingle = new GetPlantLogForPlantByIdQuery { Id = logPlant1.Id, PlantId = plant1.Id }; var queryHandler = new GetPlantLogForPlantByIdQueryHandler(context); var result = await queryHandler.Handle(querySingle, CancellationToken.None); Assert.True(result.Success); Assert.Equal(logPlant1.Id, result.Data.Id); Assert.Equal(logPlant1.PlantId, result.Data.PlantId); Assert.Equal(logPlant1.PlantLogTypeId, result.Data.PlantLogTypeId); Assert.Equal(logPlant1.DateTime, result.Data.DateTime); Assert.Equal(logPlant1.Log, result.Data.Log); var querySingleWrongPlant = new GetPlantLogForPlantByIdQuery { Id = logPlant1.Id, PlantId = plant2.Id }; var result2 = await queryHandler.Handle(querySingleWrongPlant, CancellationToken.None); Assert.False(result2.Success); var queryNonExisting = new GetPlantLogForPlantByIdQuery { Id = Guid.NewGuid(), PlantId = plant2.Id }; var resultNonExisting = await queryHandler.Handle(queryNonExisting, CancellationToken.None); Assert.False(resultNonExisting.Success); }