Exemplo n.º 1
0
        public XmlNode GetXmlViewConRoles(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);
                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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }