Example #1
0
        public async Task <IActionResult> PostTecnologiaAsync([FromBody] AvaliarNovaTecnologiaCommand command)
        {
            return(await Task.Run(() =>
            {
                using (var tran = new TransactionScope())
                {
                    _categoriaCommandHandler.Handle(new AdicionarTecnologiaCommand()
                    {
                        IconeUrl = command.IconeUrl,
                        IdCategoria = command.IdCategoria,
                        Tecnologia = command.Tecnologia
                    });

                    _uowCategorias.Commit();

                    var tecnologia = _categoriaCommandHandler.Result.Tecnologias.FirstOrDefault(x => x.Nome == command.Tecnologia);

                    _avaliacaoCommandHandler.Handle(new AtualizarNivelCommand()
                    {
                        Nivel = command.Nivel,
                        IdColaborador = command.IdColaborador,
                        IdTecnologia = tecnologia.Id,
                    });

                    _uowAvaliacoes.Commit();

                    tran.Complete();

                    return Response(_avaliacaoCommandHandler.Notifications);
                }
            }));
        }