Ejemplo n.º 1
0
    /// <summary>
    /// Получит коллекцию по типу
    /// </summary>
    /// <param name="tr"></param>
    /// <returns></returns>
    protected RulesCollection RulesCollection(typeRules tr)
    {
        RulesCollection rc = new RulesCollection(tr);

        rc.LoadString(this.stringRules);
        return(rc);
    }
Ejemplo n.º 2
0
    /// <summary>
    /// Изменен доступ
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void ddlAccess_SelectedIndexChanged(object sender, EventArgs e)
    {
        int access = int.Parse(((DropDownList)sender).SelectedValue);

        string[]  type_id = ((DropDownList)sender).ID.Split('_');
        typeRules tr      = (typeRules)Enum.Parse(typeof(typeRules), type_id[0].Trim());
        int       idobj   = int.Parse(type_id[1].Trim());

        if (access < 4)
        {
            this.stringRules = UpdateRules(this.stringRules, tr, idobj, access);
        }
        else
        {
            this.stringRules = DeleteRules(this.stringRules, tr, idobj);
        }
        if (AccessSelectedIndexChanged != null)
        {
            AccessSelectedIndexChanged(this, e);
        }
        if (DateChangeRules != null)
        {
            DateChangeRules(this, new RulesChangeEventArgs(this.stringRules));
        }
    }
Ejemplo n.º 3
0
        /// <summary>
        /// Получить коллекцию правил
        /// </summary>
        /// <param name="Rules"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public RulesCollection GetRules(string rules, typeRules type)
        {
            RulesCollection rc = new RulesCollection(type);

            rc.LoadString(rules);
            return(rc);
        }
Ejemplo n.º 4
0
 // Преобразовать строку в тип
 private void SetRules(string rules, typeRules type)
 {
     if (rules == null)
     {
         return;
     }
     this._ListRules.Clear();
     string[] array_type = rules.Split(',');
     foreach (string st in array_type)
     {
         string[] array_section = st.Split(':');
         if (array_section[0] == type.ToString())
         {
             string[] array_param = array_section[1].Split(';');
             foreach (string param in array_param)
             {
                 string[] array_value = param.Split('-');
                 if (array_value[0].ToString() != "")
                 {
                     int id     = int.Parse(array_value[0].ToString());
                     int access = int.Parse(array_value[1].ToString());
                     this._ListRules.Add(new RulesDetali(id, (Access)access, GetName(id)));
                 }
             }
         }
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Добавлен объект
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void ddlObject_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (((DropDownList)sender).SelectedIndex > 0)
     {
         typeRules type = (typeRules)Enum.Parse(typeof(typeRules), ((DropDownList)sender).ID.Remove(0, 3));
         this.stringRules = AddRules(this.stringRules, type, int.Parse(((DropDownList)sender).SelectedValue));
     }
     ((DropDownList)sender).SelectedIndex = -1;
     if (ObjectSelectedIndexChanged != null)
     {
         ObjectSelectedIndexChanged(this, e);
     }
     if (DateChangeRules != null)
     {
         DateChangeRules(this, new RulesChangeEventArgs(this.stringRules));
     }
 }
Ejemplo n.º 6
0
    /// <summary>
    /// Добавить правило в секцию
    /// </summary>
    /// <param name="rules"></param>
    /// <param name="type"></param>
    /// <param name="section"></param>
    /// <returns></returns>
    protected string AddRules(string rules, typeRules type, int idobject)
    {
        string result = null;

        foreach (typeRules tr in Enum.GetValues(typeof(typeRules)))
        {
            RulesCollection rcol = new RulesCollection(tr);
            rcol.LoadString(rules);
            if (tr == type)
            {
                rcol.AddRules(new RulesDetali(idobject, Access.Not));
            }
            if (rcol.Count > 0)
            {
                result += rcol.ToString() + ",";
            }
        }
        return(result);
    }
Ejemplo n.º 7
0
    /// <summary>
    /// Изменить правило в секции
    /// </summary>
    /// <param name="rules"></param>
    /// <param name="type"></param>
    /// <param name="idobject"></param>
    /// <param name="access"></param>
    /// <returns></returns>
    protected string UpdateRules(string rules, typeRules type, int idobject, int access)
    {
        if (rules == null)
        {
            return(null);
        }
        string result = null;

        foreach (typeRules tr in Enum.GetValues(typeof(typeRules)))
        {
            RulesCollection rcol = new RulesCollection(tr);
            rcol.LoadString(rules);
            if (tr == type)
            {
                rcol.ChangeRules(idobject, (Access)access);
            }
            if (rcol.Count > 0)
            {
                result += rcol.ToString() + ",";
            }
        }
        return(result);
    }
Ejemplo n.º 8
0
        public List <RulesCollection> SelectAccessRules(string rules)
        {
            List <RulesCollection> listAllRules = new List <RulesCollection>();

            if ((rules == null) | (rules.Trim() == ""))
            {
                return(null);
            }
            string[] array_type = rules.Split(',');
            foreach (string st in array_type)
            {
                string[] array_section = st.Split(':');

                if (array_section[0] != "")
                {
                    typeRules       tr = (typeRules)Enum.Parse(typeof(typeRules), array_section[0].Trim());
                    RulesCollection rc = new RulesCollection(tr);
                    rc.LoadString(rules);
                    listAllRules.Add(rc);
                }
            }
            return(listAllRules);
        }
Ejemplo n.º 9
0
    /// <summary>
    /// Вывести панель PlaceHolder с элементами указанного типа
    /// </summary>
    /// <param name="type"></param>
    protected void OutPlaceHolder(typeRules type)
    {
        if (this.FindControl("ph" + type.ToString()) == null)
        {
            return;
        }
        PlaceHolder ph = (PlaceHolder)this.FindControl("ph" + type.ToString());

        if (ph == null)
        {
            return;
        }
        RulesCollection rcol = RulesCollection(type);

        ph.Controls.Clear();
        ph.Controls.Add(new LiteralControl("<table class='tabRules'>"));
        ph.Controls.Add(new LiteralControl("<tr><td class='nametype' colspan ='2'>"));
        ph.Controls.Add(new LiteralControl(type.ToString() + ": "));
        DropDownList ddlObject = new DropDownList();
        List <IObj>  li        = rcol.GetNotObject();

        if (li != null)
        {
            li.Insert(0, new ListSection(0, base.GetStringBaseResource("ddlSelect")));
            ddlObject.Enabled = true;
            ddlObject.ID      = "ddl" + type.ToString();
            ddlObject.Items.Clear();
            ddlObject.DataTextField  = "NameObject";
            ddlObject.DataValueField = "IDObject";
            ddlObject.DataSource     = li;
            //ddlObject.SelectedIndex = -1;
            ddlObject.AutoPostBack          = true;
            ddlObject.SelectedIndexChanged += ddlObject_SelectedIndexChanged;
            ddlObject.DataBind();
        }
        else
        {
            ddlObject.Enabled = false;
        }
        ph.Controls.Add(ddlObject);
        ph.Controls.Add(new LiteralControl("</td></tr>"));
        foreach (RulesDetali rd in RulesCollection(type))
        {
            ph.Controls.Add(new LiteralControl("<tr><td class='object'>"));
            ph.Controls.Add(new LiteralControl(rd.nameObject + ":"));
            ph.Controls.Add(new LiteralControl("</td><td class='access'>"));
            DropDownList ddlAccess = new DropDownList();

            ddlAccess.Items.Clear();
            foreach (Access tr in Enum.GetValues(typeof(Access)))
            {
                ddlAccess.Items.Add(new ListItem(tr.ToString(), ((int)tr).ToString()));
            }
            ddlAccess.Items.Add(new ListItem("Clear", "4"));
            ddlAccess.ID                    = type.ToString() + "_" + rd.IDObject.ToString();
            ddlAccess.AutoPostBack          = true;
            ddlAccess.SelectedIndexChanged += ddlAccess_SelectedIndexChanged;
            ddlAccess.SelectedValue         = ((int)rd.Access).ToString();
            ddlAccess.DataBind();
            ph.Controls.Add(ddlAccess);
        }
        ph.Controls.Add(new LiteralControl("</table>"));
    }
Ejemplo n.º 10
0
 // Конструктор
 public RulesCollection(typeRules type)
 {
     this._TypeRules = (int)type;
 }
Ejemplo n.º 11
0
 // Загрузить строку нового типа
 public void LoadString(string rules, typeRules type)
 {
     this._TypeRules = (int)type;
     this.SetRules(rules, (typeRules)this._TypeRules);
 }