コード例 #1
0
        public async Task UpdatePlantSpecies()
        {
            await using var context = DatabaseHelper.CreateInMemoryDatabaseContext(nameof(UpdatePlantSpecies));

            var id = Guid.NewGuid();
            await context.PlantSpecies.AddAsync(new PlantSpecies { Id = id, Name = "Something old" });

            await context.SaveChangesAsync();

            var name      = "Species1";
            var cntBefore = await context.PlantSpecies.CountAsync();

            var updateCmd = new UpdatePlantSpeciesCommand {
                Id = id, Name = name
            };
            var cmdHandler = new UpdatePlantSpeciesCommandHandler(context);
            var result     = await cmdHandler.Handle(updateCmd, CancellationToken.None);

            Assert.True(result.Success);
            Assert.Equal(cntBefore, await context.PlantSpecies.CountAsync());
            var obj = await context.PlantSpecies.FindAsync(id);

            Assert.Equal(id, obj.Id);
            Assert.Equal(name, obj.Name);

            var updateInvalidPlantSpecies = new UpdatePlantSpeciesCommand {
                Id = Guid.NewGuid(), Name = "hehe"
            };
            var resultInvalidPlantSpecies = await cmdHandler.Handle(updateInvalidPlantSpecies, CancellationToken.None);

            Assert.False(resultInvalidPlantSpecies.Success);
        }
コード例 #2
0
        public async Task <ActionResult <PlantSpecies> > Update(Guid speciesId, UpdatePlantSpeciesRequest request)
        {
            var command = new UpdatePlantSpeciesCommand {
                Id = speciesId, Name = request.Name
            };
            var response = await mediator.Send(command);

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

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

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

            return(Ok(updatedObj));
        }