示例#1
0
        public IActionResult AtualizarStatus([FromRoute] Guid guid, [FromBody] PassoViewModel passo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                _app.AtualizarPasso(guid, passo);
                return(Ok());
            }
            catch (Domain.Validations.ExcecaoDeDominio ex)
            {
                return(BadRequest(new { Mensagem = ex.Mensagens }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new { Mensagens = ex.Message }));
            }
        }
示例#2
0
        public void AtualizarPasso(Guid guidSalvado, PassoViewModel passoVM)
        {
            var passoAtual = _passo.SelecionarPorId(passoVM.IdPasso);
            var salvado    = _service.SelecionarPorId(guidSalvado);

            salvado.PassoEtapa = _passo.SelecionarPorId((int)salvado.PassoEtapa.Id);

            if (passoAtual.Ordem <= salvado.PassoEtapa.Ordem)
            {
                return;
            }

            var historico = new SalvadoHistorico();

            historico.DescricaoEvento  = $"[Atualização][De {salvado.PassoEtapa.Descricao} para {passoAtual.Descricao} - {DateTime.Now}] ";
            historico.DescricaoEvento += passoVM.Observacao;
            historico.IdSalvado        = (int)salvado.Id;
            historico.IdUsuario        = passoVM.IdUsuario ?? (int)_usuario.SelecionarPorId((Guid)passoVM.GuidUsuario).Id;
            historico.DataEvento       = DateTime.Now;

            salvado.PassoEtapa = passoAtual;

            //pegar o proximo passo
            var passoFuturo = _passo.SelecionarProximoPasso(++passoAtual.Ordem, (int)passoAtual.Workflow.Id);

            if (passoFuturo != null)
            {
                int idEmpresa = _service.SelecionarIdDependendoTipoEmpresa(passoFuturo.TipoEmpresaResponsavel, salvado.Guid);
                (string header, string body, int status)retorno = EnviaEmailAcordoEmpresa(passoFuturo.TipoEmpresaResponsavel, idEmpresa, (int)passoFuturo.Id, passoFuturo.DescricaoParaFazer, salvado.Guid);
            }
            else
            {
                var html       = EmailSendGrid.LayoutProcessoFinalizado(salvado);
                var seguradora = _seguradora.SelecionarPorId((int)salvado.Seguradora.Id);
                _email.Envia(seguradora.Email, "Nenhuma ação necessária", html);
            }

            _service.IncluirHistorico(historico);
            _service.Atualizar(salvado);
        }