コード例 #1
0
        public async Task <Guid> Handle(CreateEntity request, CancellationToken cancellationToken)
        {
            var solution = await _solutionRepository.GetEntities()
                           .Where(e => e.Id == request.SolutionId)
                           .FirstOrDefaultAsync();

            var solutionAccessor = new SolutionAccessor(solution.Path);
            var entity           = _mapper.Map <CreateEntity, Generator.Models.Entity>(request);

            entity.Id = Guid.NewGuid();
            await solutionAccessor.CreateEntityAsync(entity);

            // reload Entity from Solution
            entity = (await solutionAccessor.GetEntitiesAsync())
                     .First(e => e.Id == entity.Id);
            await _codeGenerator.GenerateEntityAsync(solutionAccessor, entity);

            await _codeGenerator.GenerateViewAsync(solutionAccessor, new Generator.Models.View(), entity);

            return(entity.Id);
        }