public string GetXmlViewConRoles(int Index) { string Data = "<treenode "; SqlDataReader dr = SqlHelper.ExecuteReader(ESSeguridad.FormarStringConexion(), Queries.WF_JerarquiaPoliticaObtenerTitulo, UniqueID, WorkflowID); if (dr.Read()) { Data += "NodeData='N." + dr.GetInt32(0) + "' "; Data += Index != 2 ? "Text='" + dr.GetString(1) + "'>" : "Text='Sino'>"; SqlServerTreeProvider treeProvider = new SqlServerTreeProvider(); Children = treeProvider.GetChildren(UniqueID, WorkflowID); Data += GetXmlRoles(); int i = 0; foreach (TreeNode tn in Children) { Data += tn.GetXmlViewConRoles(++i); } } Data += "</treenode>"; return(Data); }
public XmlNode GetXmlViewConRoles(int Index, XmlDocument XDoc, SqlServerTreeProvider treeProvider, int parentId) { XmlElement NewNode = null; SqlDataReader dr = SqlHelper.ExecuteReader(ConfigurationSettings.AppSettings[Web.Global.CfgKeyConnString], Queries.WF_JerarquiaPoliticaObtenerTitulo, UniqueID, WorkflowID); if (dr.Read()) { // create an element node to insert // note: Element names may not have spaces so use ID // note: Element names may not start with a digit so add underscore NewNode = XDoc.CreateElement("_" + dr.GetInt32(0)); NewNode.SetAttribute("ID", dr.GetInt32(0).ToString()); NewNode.SetAttribute("ParentID", parentId.ToString()); string Data = Index != 2 ? dr.GetString(1) : "Sino"; NewNode.SetAttribute("FullName", Data); XmlNode NewRole = GetXmlRoles(XDoc, parentId); if (NewRole != null) { NewNode.AppendChild(NewRole); } //SqlServerTreeProvider treeProvider = new SqlServerTreeProvider(); Children = treeProvider.GetChildren(UniqueID, WorkflowID); int i = 0; foreach (TreeNode tn in Children) { NewNode.AppendChild(tn.GetXmlViewConRoles(++i, XDoc, treeProvider, dr.GetInt32(0))); } } return(NewNode); }
public XmlElement GetXmlView(int Index, XmlDocument XDoc, SqlServerTreeProvider treeProvider, int parentId) { XmlElement NewNode = null; SqlDataReader dr = SqlHelper.ExecuteReader(ESSeguridad.FormarStringConexion(), Queries.WF_JerarquiaPoliticaObtenerTitulo, UniqueID, WorkflowID); if (dr.Read()) { // create an element node to insert // note: Element names may not have spaces so use ID // note: Element names may not start with a digit so add underscore NewNode = XDoc.CreateElement("_" + dr.GetInt32(0)); NewNode.SetAttribute("ID", dr.GetInt32(0).ToString()); NewNode.SetAttribute("ParentID", parentId.ToString()); string Data = Index != 2 ? dr.GetString(1) : "Sino"; NewNode.SetAttribute("FullName", Data); //SqlServerTreeProvider treeProvider = new SqlServerTreeProvider(); Children = treeProvider.GetChildren(UniqueID, WorkflowID); int i = 0; foreach (TreeNode tn in Children) { NewNode.AppendChild(tn.GetXmlView(++i, XDoc, treeProvider, dr.GetInt32(0))); } } return(NewNode); }
public ArrayList Evaluate(string politicas, int staffOrigen) { // Ejemplo de "politicas" = "Bs.;500000" // Ejemplo de "staffOrigen" = 10108 ArrayList retVal = null; string ruta = ""; string [] parser = politicas.Split(';'); WFCondicion Cond = WFCondicion.ObtenerCondicionPorID(ConditionID); WFTipoDeDato Tdt = WFTipoDeDato.ObtenerTiposDeDatoPorID(DatatypeID); bool blnCumplioLaPolitica = false; switch (Tdt.strNbrTipoDeDato.Trim()) { case "Monto": { double dblValor = Convert.ToDouble(parser[0]); blnCumplioLaPolitica = Comparar(Cond, Convert.ToDouble(_value), dblValor); } break; case "Cantidad": { int intValor = Convert.ToInt32(parser[0]); blnCumplioLaPolitica = Comparar(Cond, Convert.ToInt32(_value), intValor); } break; case "Fecha": { DateTime dttValor = Convert.ToDateTime(parser[0]); blnCumplioLaPolitica = Comparar(Cond, Convert.ToDateTime(parser[0]), dttValor); } break; case "Moneda": { string strValor = parser[0].Trim(); blnCumplioLaPolitica = Comparar(Cond, _value.Trim(), strValor); } break; case "Nombre": { string strValor = parser[0].Trim(); blnCumplioLaPolitica = Comparar(Cond, _value.Trim(), strValor); } break; } if (blnCumplioLaPolitica) { if (Sino == 1) { SqlServerTreeProvider treeProvider = new SqlServerTreeProvider(); Children = treeProvider.GetChildren(UniqueID, WorkflowID); bool tieneNodosHijos = false; foreach (TreeNode tn in Children) { tieneNodosHijos = true; retVal = tn.Evaluate(politicas, staffOrigen); if (retVal != null) { break; } } if (!tieneNodosHijos) { SqlDataReader dr = SqlHelper.ExecuteReader(ESSeguridad.FormarStringConexion(), Queries.WF_ObtenerCaminos, staffOrigen, WorkflowID, UniqueID); if (dr.Read()) { retVal = new ArrayList(); do { ruta = dr.GetString(0); retVal.Add(ruta); }while(dr.Read()); } else { return(null); // throw new Exception("No se pudo establecer la ruta a través de las políticas y el código de staff #3"); } } } else { if (parser.Length > 1) { string politicasHijas = ""; for (int j = 1; j < parser.Length; j++) { politicasHijas += j + 1 < parser.Length ? parser[j] + ";" : parser[j]; } SqlServerTreeProvider treeProvider = new SqlServerTreeProvider(); Children = treeProvider.GetChildren(UniqueID, WorkflowID); bool tieneNodosHijos = false; foreach (TreeNode tn in Children) { tieneNodosHijos = true; retVal = tn.Evaluate(politicasHijas, staffOrigen); if (retVal != null) { break; } } if (!tieneNodosHijos) { SqlDataReader dr = SqlHelper.ExecuteReader(ESSeguridad.FormarStringConexion(), Queries.WF_ObtenerCaminos, staffOrigen, WorkflowID, UniqueID); if (dr.Read()) { retVal = new ArrayList(); do { ruta = dr.GetString(0); retVal.Add(ruta); }while(dr.Read()); } else { return(null); // throw new Exception("No se pudo establecer la ruta a través de las políticas y el código de staff #1"); } } } else { SqlDataReader dr = SqlHelper.ExecuteReader(ESSeguridad.FormarStringConexion(), Queries.WF_ObtenerCaminos, staffOrigen, WorkflowID, UniqueID); if (dr.Read()) { retVal = new ArrayList(); do { ruta = dr.GetString(0); retVal.Add(ruta); }while(dr.Read()); } else { return(null); // throw new Exception("No se pudo establecer la ruta a través de las políticas y el código de staff #2"); } } } } return(retVal); }