Example #1
0
        public async Task <Response> Handle(CreatePlantLogForPlantCommand request, CancellationToken cancellationToken)
        {
            var plant = await context.Plants.FindAsync(request.PlantId);

            if (null == plant)
            {
                return(new Response
                {
                    Success = false,
                    ErrorMessages =
                    {
                        { nameof(request.PlantId), new[] { "Plant not found" } }
                    },
                });
            }

            var log = new PlantLog
            {
                Id             = request.Id,
                Plant          = plant,
                PlantLogTypeId = request.PlantLogTypeId,
                DateTime       = request.DateTime,
                Log            = request.Log,
            };
            await context.PlantLogs.AddAsync(log);

            await context.SaveChangesAsync(cancellationToken);

            return(new Response
            {
                Success = true
            });
        }
Example #2
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));
        }
Example #3
0
 private void AssertDaoEqualDto(PlantLog plantLog, PlantLogDto plantLogDto)
 {
     Assert.Equal(plantLog.Id, plantLogDto.Id);
     Assert.Equal(plantLog.Log, plantLogDto.Log);
     Assert.Equal(plantLog.DateTime, plantLogDto.DateTime);
     Assert.Equal(plantLog.PlantLogTypeId, plantLogDto.PlantLogTypeId);
     Assert.Equal(plantLog.PlantId, plantLogDto.PlantId);
 }
Example #4
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)));
        }
Example #5
0
        public PlantLogQueryTests(PlantLogQueryTestsFixture fixture)
        {
            logType1     = fixture.logType1;
            logType2     = fixture.logType2;
            plantSpecies = fixture.plantSpecies;
            plant1       = fixture.plant1;
            plant2       = fixture.plant2;

            plantLog1    = fixture.plantLog1;
            plantLog2    = fixture.plantLog2;
            plantLog3    = fixture.plantLog3;
            plantLog4    = fixture.plantLog4;
            plantLog5    = fixture.plantLog5;
            queryHandler = new GetAllPlantLogsQueryHandler(fixture.context);
        }
Example #6
0
        public PlantLogQueryTestsFixture()
        {
            context      = DatabaseHelper.CreateInMemoryDatabaseContext(nameof(PlantLogQueryTests));
            logType1     = ValidObjectHelper.ValidPlantLogType();
            logType2     = ValidObjectHelper.ValidPlantLogType();
            plantSpecies = ValidObjectHelper.ValidPlantSpecies();
            plant1       = ValidObjectHelper.ValidPlant(plantSpecies);
            plant2       = ValidObjectHelper.ValidPlant(plantSpecies);

            var id1 = Guid.NewGuid();
            var id2 = Guid.NewGuid();
            var id3 = Guid.NewGuid();
            var id4 = Guid.NewGuid();
            var id5 = Guid.NewGuid();

            var log1 = "Hello";
            var log2 = "World";
            var log3 = "ab";
            var log4 = "world Hello abcdefgh";
            var log5 = "Töster";

            var dt1 = new DateTime(2020, 01, 01, 00, 00, 00);
            var dt2 = new DateTime(2020, 01, 01, 18, 00, 00);
            var dt3 = new DateTime(2020, 01, 02, 12, 00, 00);
            var dt4 = new DateTime(2020, 02, 01, 12, 00, 00);
            var dt5 = new DateTime(2019, 01, 01, 12, 00, 00);

            plantLog1 = new PlantLog {
                Id = id1, DateTime = dt1, Log = log1, Plant = plant1, PlantLogType = logType1
            };
            plantLog2 = new PlantLog {
                Id = id2, DateTime = dt2, Log = log2, Plant = plant1, PlantLogType = logType1
            };
            plantLog3 = new PlantLog {
                Id = id3, DateTime = dt3, Log = log3, Plant = plant2, PlantLogType = logType2
            };
            plantLog4 = new PlantLog {
                Id = id4, DateTime = dt4, Log = log4, Plant = plant2, PlantLogType = logType2
            };
            plantLog5 = new PlantLog {
                Id = id5, DateTime = dt5, Log = log5, Plant = plant2, PlantLogType = logType1
            };

            context.AddRange(logType1, logType2, plantSpecies, plant1, plant2, plantLog1, plantLog2, plantLog3, plantLog4, plantLog5);
            context.SaveChanges();
        }
Example #7
0
 internal static PlantLogDto FromDao(PlantLog plantLog)
 {
     return(new PlantLogDto(plantLog.Id, plantLog.PlantId, plantLog.PlantLogTypeId, plantLog.DateTime, plantLog.Log));
 }