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

            var solutionAccessor = new SolutionAccessor(solution.Path);
            var newEnum          = _mapper.Map <UpdateEnum, Generator.Models.Enum>(request);
            var oldEnum          = (await solutionAccessor.GetEnumsAsync()).FirstOrDefault(e => e.Id == request.Id);
            await solutionAccessor.UpdateEnumAsync(newEnum);

            // reload Enum from Solution
            newEnum = (await solutionAccessor.GetEnumsAsync())
                      .FirstOrDefault(e => e.Id == request.Id);
            await _codeGenerator.UpgradeEnumAsync(solutionAccessor, oldEnum, newEnum);

            await _codeGenerator.UpgradeEnumViewAsync(solutionAccessor, new Generator.Models.View(), oldEnum, newEnum);

            return(Unit.Value);
        }