public ActionResult Assumir(ItemInbox item) { try { List <Incidente> lista = IncidenteBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(item.UniqueKey)).ToList(); if (lista == null || lista.Count == 0) { throw new Exception("Não foi possível recuperar o incidente através da identificação recebida."); } else { ReiniciarCache(CustomAuthorizationProvider.UsuarioAutenticado.Login); bool first = true; foreach (Incidente obj in lista) { obj.StatusWF = "SO"; obj.DataExclusao = DateTime.Now; obj.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; IncidenteBusiness.Alterar(obj); if (first) { first = false; Incidente obj2 = new Incidente(); PropertyCopy.Copy(obj, obj2); obj2.ID = Guid.NewGuid().ToString(); obj2.StatusWF = "RS"; if (!string.IsNullOrEmpty(item.Comentarios)) { obj2.MensagemPasso = item.Comentarios; } obj2.Responsavel = CustomAuthorizationProvider.UsuarioAutenticado.Login; obj2.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; obj2.UsuarioExclusao = null; obj2.DataExclusao = DateTime.MaxValue; IncidenteBusiness.Inserir(obj2); Severino.GravaCookie("MensagemSucesso", "O incidente " + obj2.Codigo + " foi redirecionado para a sua caixa pessoal.", 10); } } } return(Json(new { sucesso = "O passo do workflow associado ao documento foi aprovado com sucesso." })); } catch (Exception ex) { return(Json(new { erro = ex.Message })); } }
public ActionResult RejeitarIncidente(ItemInbox item) { try { Incidente obj = IncidenteBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(item.UniqueKey) && a.Responsavel.ToUpper().Equals(CustomAuthorizationProvider.UsuarioAutenticado.Login.ToUpper())); if (obj == null) { throw new Exception("Não foi possível recuperar o incidente através da identificação recebida."); } else { ReiniciarCache(CustomAuthorizationProvider.UsuarioAutenticado.Login); obj.StatusWF = "RJ"; obj.DataExclusao = DateTime.Now; obj.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; IncidenteBusiness.Alterar(obj); string novoStatus = OperacaoBusiness.RecuperarStatusAnterior(obj.Status); string sql = "select top 1 Responsavel from objincidente where uniquekey = '" + item.UniqueKey + "' and UsuarioExclusao is not null and Status = '" + novoStatus + "' order by DataExclusao desc"; string Responsavel = IncidenteBusiness.ExecuteQuery(sql); if (string.IsNullOrEmpty(Responsavel)) { List <string> Responsaveis = OperacaoBusiness.RecuperarResponsavelPorStatus(novoStatus); foreach (string resp in Responsaveis) { Incidente obj2 = new Incidente(); PropertyCopy.Copy(obj, obj2); obj2.ID = Guid.NewGuid().ToString(); obj2.StatusWF = "RS"; obj2.MensagemPasso = item.Comentarios; obj2.Status = novoStatus; if (resp.Equals("Submitter")) { string sql2 = "select top 1 UsuarioInclusao from OBJIncidente where Codigo = '" + obj2.Codigo + "' order by DataInclusao"; string submitter = IncidenteBusiness.ExecuteQuery(sql2); if (string.IsNullOrEmpty(submitter)) { throw new Exception("Não foi possível recuperar o usuário que criou o incidente."); } obj2.Responsavel = submitter; } else { obj2.Responsavel = resp; } obj2.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; obj2.UsuarioExclusao = null; obj2.DataExclusao = DateTime.MaxValue; obj2.DataAtualizacao = DateTime.Now; IncidenteBusiness.Inserir(obj2); Severino.GravaCookie("MensagemSucesso", "O incidente " + obj2.Codigo + " foi rejeitado com sucesso.", 10); } } else { Incidente obj2 = new Incidente(); PropertyCopy.Copy(obj, obj2); obj2.ID = Guid.NewGuid().ToString(); obj2.StatusWF = "RS"; obj2.MensagemPasso = item.Comentarios; obj2.Status = novoStatus; obj2.Responsavel = Responsavel; obj2.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; obj2.UsuarioExclusao = null; obj2.DataExclusao = DateTime.MaxValue; obj2.DataAtualizacao = DateTime.Now; IncidenteBusiness.Inserir(obj2); Severino.GravaCookie("MensagemSucesso", "O incidente " + obj2.Codigo + " foi rejeitado com sucesso.", 10); } } return(Json(new { sucesso = "O passo do workflow associado ao documento foi aprovado com sucesso." })); } catch (Exception ex) { return(Json(new { erro = ex.Message })); } }
public ActionResult AprovarIncidente(ItemInbox item) { try { Incidente obj = IncidenteBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(item.UniqueKey) && a.Responsavel.ToUpper().Equals(CustomAuthorizationProvider.UsuarioAutenticado.Login.ToUpper())); if (obj == null) { throw new Exception("Não foi possível recuperar o incidente através da identificação recebida."); } else { ReiniciarCache(CustomAuthorizationProvider.UsuarioAutenticado.Login); obj.StatusWF = "SO"; obj.DataExclusao = DateTime.Now; obj.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; IncidenteBusiness.Alterar(obj); string novoStatus = OperacaoBusiness.RecuperarProximoStatus(obj.Status); List <string> Responsaveis = OperacaoBusiness.RecuperarResponsavelPorStatus(novoStatus); foreach (string resp in Responsaveis) { Incidente obj2 = new Incidente(); PropertyCopy.Copy(obj, obj2); obj2.ID = Guid.NewGuid().ToString(); obj2.UniqueKey = item.UniqueKey; if (novoStatus.Equals("Concluído")) { obj2.StatusWF = "SO"; } else { obj2.StatusWF = "RS"; } obj2.MensagemPasso = item.Comentarios; obj2.Status = novoStatus; obj2.Responsavel = resp; obj2.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; obj2.UsuarioExclusao = null; obj2.DataExclusao = DateTime.MaxValue; obj2.DataAtualizacao = DateTime.Now; IncidenteBusiness.Inserir(obj2); Severino.GravaCookie("MensagemSucesso", "O incidente " + obj2.Codigo + " foi aprovado com sucesso.", 10); } } return(Json(new { sucesso = "O passo do workflow associado ao documento foi aprovado com sucesso." })); } catch (Exception ex) { return(Json(new { erro = ex.Message })); } }