public WorkflowVM ConsultarWorkflowCompleto(Guid IdWorkflow)
        {
            WorkflowVM wfvm = new WorkflowVM(ConsultarWorkflow(IdWorkflow));

            var wfsteps = _wfsServ.ConsultarStepsPorWorkflow(IdWorkflow);

            foreach (var _wfstep in wfsteps)
            {
                var wfs = new WorkflowStepVM(_wfstep);
                wfs.Status = _statusServ.ConsultarStatus(_wfstep.IdStatus);
                wfs.Step   = new StepVM(_stepServ.ConsultarStep(_wfstep.IdStep));
                wfs.Step.GrupoAprovador = new GrupoAprovadorVM(_gaServ.ConsultarGrupoAprovador(wfs.Step.IdGrupoAprovador));

                var lstgau = _gauServ.ConsultarGrupoAprovadorUsuarios(wfs.Step.IdGrupoAprovador);

                foreach (var gau in lstgau)
                {
                    wfs.Step.GrupoAprovador.Aprovadores.Add(_usuarioServ.ConsultarUsuario(gau.IdUsuario));
                }

                wfvm.WorkflowSteps.Add(wfs);
            }

            return(wfvm);
        }
Beispiel #2
0
        public ActionResult AprovarWorkflowStep([FromRoute] Guid IdWorkflowStep)
        {
            try
            {
                var idUsuario = Request.ObterIdUsuario();
                var idConta   = Request.ObterIdConta();

                var wfs = _serv.ConsultarWorkflowStep(IdWorkflowStep);

                var proximoWfs = wfs.IdStepProximo.Equals(Guid.Empty) ? null : _serv.ConsultarWorkflowStep(wfs.IdWorkflow, wfs.IdStepProximo);
                var step       = _servStep.ConsultarStep(wfs.IdStep);

                if (!_servGAU.IsUsuarioNoGrupo(step.IdGrupoAprovador, idUsuario))
                {
                    return(StatusCode(401, "Usuário sem permissão para editar esta tarefa"));
                }

                if (!wfs.IsStepCorrente)
                {
                    return(BadRequest("A tarefa que está tentando editar não está ativa"));
                }

                wfs.DataAtualizacao      = DateTime.Now;
                wfs.IdUsuarioAtualizacao = idUsuario;
                wfs.IdStatus             = Guid.Parse("5c35bd71-1348-4d53-8396-b6592048142b");// StatusId Aprovado
                wfs.IsStepCorrente       = false;

                _serv.EditarWorkflowStep(wfs);

                if (proximoWfs != null)
                {
                    proximoWfs.IsStepCorrente = true;
                    _serv.EditarWorkflowStep(proximoWfs);
                }
                //verificar a necessidade de ter um status no workflow
                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest($"Ocorreu um erro ao editar o WorkflowStep {IdWorkflowStep}: {ex.Message}"));
            }
        }
        public ActionResult ConsultarStep([FromRoute] Guid IdStep)
        {
            try
            {
                var response = _serv.ConsultarStep(IdStep);

                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(BadRequest($"Ocorreu um erro ao consultar o Step {IdStep}: {ex.Message}"));
            }
        }