public async Task <IActionResult> Handle(AlterarAssuntoCommand request, CancellationToken cancellationToken)
        {
            ApplicationResult <Guid> result = new ApplicationResult <Guid>(request);

            //Recupera o objeto assunto
            var assunto = await AssuntoRepository.ObterAsync(request.AssuntoId);

            var alterouPai = assunto.AssuntoPaiId != request.AssuntoPaiId;

            //Monta o objeto com os dados do assunto
            assunto.Alterar(request.Valor, request.AssuntoPaiId, request.Ativo);

            try
            {
                await validarAssunto(assunto, alterouPai);
            }
            catch (SISRHDomainException e)
            {
                result.SetHttpStatusToBadRequest(e.Message);
                return(result);
            }

            //Altera o assunto no banco de dados
            AssuntoRepository.Atualizar(assunto);
            UnitOfWork.Commit(false);

            result.Result = assunto.AssuntoId;
            result.SetHttpStatusToOk("Assunto alterado com sucesso.");
            return(result);
        }
        public ActionResult Editar(Assunto assunto)
        {
            using (var repo = new AssuntoRepository())
            {
                assunto = repo.Atualizar(assunto);

                return(RedirectToAction("Index"));
            }
        }
예제 #3
0
        private AssuntoCursoUsuario AtualizarAssunto(AssuntoCursoUsuario assunto)
        {
            using (AssuntoRepository repo = new AssuntoRepository())
            {
                assunto.Nome = "Nome Atualizado";
                repo.Atualizar(assunto);

                var assuntoAtualizado = repo.Obter(assunto.IdAssunto);

                Assert.AreEqual("Nome Atualizado", assuntoAtualizado.NomeAssunto);

                return(assuntoAtualizado);
            }
        }