Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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)));
        }
Exemplo n.º 3
0
        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);
        }