/// <summary>
 /// Gets node from collection by an identifier
 /// </summary>
 /// <param name="nodeId">Node identifier</param>
 /// <returns>Node object</returns>
 public Node <TIdentifier, TNodeData, TEdgeData> GetNode(TIdentifier nodeId, NodeAccess access)
 {
     rwLock.AcquireReaderLock(-1);
     try
     {
         return((Node <TIdentifier, TNodeData, TEdgeData>)storage.Value(nodeId));
     }
     finally
     {
         rwLock.ReleaseLock();
     }
 }
Example #2
0
        public MenuService()
        {
            var dataTypeService = ApplicationContext.Current.Services.DataTypeService;

            var accessDataType = dataTypeService.GetDataTypeDefinitionByName("Radio Access Availability");
            var accessStatuses = dataTypeService.GetPreValuesCollectionByDataTypeId(accessDataType.Id).PreValuesAsDictionary;
            var accessPublic = accessStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Public").Value.Id;
            var accessMembers = accessStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Members").Value.Id;
            var accessPublicAndMembers = accessStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Public + Members").Value.Id;
            _nodeAccess = new NodeAccess(accessPublic, accessMembers, accessPublicAndMembers);

            var visibilityDataType = dataTypeService.GetDataTypeDefinitionByName("Radio Navigation Visibility");
            var visibilityStatuses = dataTypeService.GetPreValuesCollectionByDataTypeId(visibilityDataType.Id).PreValuesAsDictionary;
            var visibilityNotVisible = visibilityStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Not Visible").Value.Id;
            var visibilityHeader = visibilityStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Top Navigation Only").Value.Id;
            var visibilityFooter = visibilityStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Footer Only").Value.Id;
            var visibilityHeaderAndFooter = visibilityStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Top Navigation + Footer").Value.Id;
            _nodeVisibility = new NodeVisibility(visibilityHeader, visibilityFooter, visibilityHeaderAndFooter, visibilityNotVisible);
        }
Example #3
0
        /// <summary>
        /// Gets node from collection by an identifier
        /// </summary>
        /// <param name="nodeId">Node identifier</param>
        /// <returns>Node object</returns>
        public Node <Guid, object, EdgeData> GetNode(Guid nodeId, NodeAccess access)
        {
            CheckThread();

            if (access == NodeAccess.ReadWrite)
            {
                EnsureNode(nodeId);
                return(isolatedProvider.GetNode(nodeId, access));
            }
            else
            {
                if (isolatedProvider.Contains(nodeId))
                {
                    return(isolatedProvider.GetNode(nodeId, access));
                }
                else
                {
                    return(parentProvider.GetNode(nodeId, access));
                }
            }
        }
Example #4
0
        public MenuService()
        {
            var dataTypeService = ApplicationContext.Current.Services.DataTypeService;

            var accessDataType         = dataTypeService.GetDataTypeDefinitionByName("Radio Access Availability");
            var accessStatuses         = dataTypeService.GetPreValuesCollectionByDataTypeId(accessDataType.Id).PreValuesAsDictionary;
            var accessPublic           = accessStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Public").Value.Id;
            var accessMembers          = accessStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Members").Value.Id;
            var accessPublicAndMembers = accessStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Public + Members").Value.Id;

            _nodeAccess = new NodeAccess(accessPublic, accessMembers, accessPublicAndMembers);

            var visibilityDataType        = dataTypeService.GetDataTypeDefinitionByName("Radio Navigation Visibility");
            var visibilityStatuses        = dataTypeService.GetPreValuesCollectionByDataTypeId(visibilityDataType.Id).PreValuesAsDictionary;
            var visibilityNotVisible      = visibilityStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Not Visible").Value.Id;
            var visibilityHeader          = visibilityStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Top Navigation Only").Value.Id;
            var visibilityFooter          = visibilityStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Footer Only").Value.Id;
            var visibilityHeaderAndFooter = visibilityStatuses.FirstOrDefault(g => g.Value.Value.ToString() == "Top Navigation + Footer").Value.Id;

            _nodeVisibility = new NodeVisibility(visibilityHeader, visibilityFooter, visibilityHeaderAndFooter, visibilityNotVisible);
        }
Example #5
0
    void btn_Templete_Click(object sender, EventArgs e)
    {
        NodeAccesss nrs = new NodeAccesss();

        nrs.Retrieve(NodeAccessAttr.FK_Node, this.FK_Node, NodeAccessAttr.FK_Prj, this.FK_Prj);

        string root = BP.SystemConfig.PathOfDataUser + "\\PrjData\\Templete\\" + this.FK_Prj;

        this.Pub3.AddTable();
        this.Pub3.AddCaptionLeft("节点与资料树访问权限");
        string[] dirs = System.IO.Directory.GetDirectories(root);
        int      idx  = 0;

        foreach (string dir in dirs)
        {
            idx++;
            DirectoryInfo dirInfo = new DirectoryInfo(dir);
            FileInfo[]    fls     = dirInfo.GetFiles();
            foreach (FileInfo fl in fls)
            {
                idx++;
                NodeAccess rl = new NodeAccess();
                rl = new NodeAccess();
                rl.FileFullName = fl.FullName;
                rl.FileName     = fl.Name;
                rl.FK_Node      = this.FK_Node;
                rl.FK_Prj       = this.FK_Prj;

                rl.IsView   = this.Pub3.GetCBByID("CB_" + NodeAccessAttr.IsView + "_" + idx).Checked;
                rl.IsDown   = this.Pub3.GetCBByID("CB_" + NodeAccessAttr.IsDown + "_" + idx).Checked;
                rl.IsUpload = this.Pub3.GetCBByID("CB_" + NodeAccessAttr.IsUpload + "_" + idx).Checked;
                rl.IsDelete = this.Pub3.GetCBByID("CB_" + NodeAccessAttr.IsDelete + "_" + idx).Checked;
                rl.MyPK     = DataType.ParseStringToPinyin(rl.FileName) + "_" + this.FK_Node + "_" + this.FK_Prj;
                rl.Save();
            }
        }
        this.WinCloseWithMsg("Save OK.");
    }
Example #6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        switch (this.DoType)
        {
        case "Upload":
            this.BindUpload();
            return;

        case "DoDown":
            this.DoDown();
            return;

        case "DoDelete":
            this.DoDelete();
            return;

        default:
            break;
        }

        NodeAccesss nrs = new NodeAccesss();

        nrs.Retrieve(NodeAccessAttr.FK_Node, this.FK_Node, NodeAccessAttr.FK_Prj, this.FK_Prj);

        string root     = BP.SystemConfig.PathOfDataUser + "\\PrjData\\Templete\\" + this.FK_Prj;
        string rootData = BP.SystemConfig.PathOfDataUser + "\\PrjData\\Data\\" + this.FK_Prj;
        Prj    prj      = new Prj(this.FK_Prj);

        this.Pub1.AddTable();
        this.Pub1.AddCaptionLeft("项目目录树:" + prj.Name);
        this.Pub1.AddTR();
        this.Pub1.AddTDTitle("IDX");
        this.Pub1.AddTDTitle("目录");
        this.Pub1.AddTDTitle("文件");
        this.Pub1.AddTDTitle("操作");
        this.Pub1.AddTREnd();

        string MyFiles = "";
        int    idx     = 1;

        string[] strs = System.IO.Directory.GetDirectories(root);
        foreach (string str in strs)
        {
            DirectoryInfo dir  = new DirectoryInfo(str);
            FileInfo[]    fils = dir.GetFiles();
            this.Pub1.AddTR();
            this.Pub1.AddTDIdx(idx++);
            this.Pub1.AddTD("<img src='./../Images/Btn/open.gif'>" + dir.Name);
            this.Pub1.AddTD("文件:" + fils.Length);
            this.Pub1.AddTD();
            this.Pub1.AddTREnd();
            foreach (FileInfo info in fils)
            {
                NodeAccess nr = nrs.GetEntityByKey(NodeAccessAttr.FileFullName, info.FullName) as NodeAccess;
                if (nr == null)
                {
                    nr = new NodeAccess();
                }

                if (nr.IsView == false)
                {
                    idx++;
                    continue;
                }


                this.Pub1.AddTR();
                this.Pub1.AddTDIdx(idx++);
                this.Pub1.AddTD();
                this.Pub1.AddTDB("<img src='./../Images/FileType/" + info.Extension.Replace(".", "") + ".gif'>" + info.Name);

                string relFile = rootData + "\\" + dir.Name + "\\" + info.Name;
                MyFiles += "@" + idx + "=" + relFile;

                if (File.Exists(relFile) == true)
                {
                    string msg = "";
                    if (nr.IsDown)
                    {
                        msg += "[<a href=\"javascript:DoDown('" + this.FK_Prj + "','" + idx + "');\" ><img src='../Images/Btn/Save.gif' border=0/>下载</a>]";
                    }

                    if (nr.IsDelete)
                    {
                        msg += "[<a href=\"javascript:DoDelete('" + this.FK_Prj + "','" + idx + "');\" ><img src='../Images/Btn/Delete.gif' border=0/>删除</a>]";
                    }

                    if (nr.IsUpload)
                    {
                        msg += "[<a href=\"javascript:Upload('" + this.FK_Prj + "','" + idx + "');\" ><img src='../Images/Btn/ApplyTask.gif' border=0/>重新上传</a>]";
                    }
                    this.Pub1.AddTD(msg);
                }
                else
                {
                    if (nr.IsUpload)
                    {
                        this.Pub1.AddTD("<a href=\"javascript:Upload('" + this.FK_Prj + "','" + idx + "')\"><img src='../Images/Btn/ApplyTask.gif' border=0/>上传</a>");
                    }
                    else
                    {
                        this.Pub1.AddTD();
                    }
                }
                this.Pub1.AddTREnd();
            }
        }
        this.Pub1.AddTableEnd();

        prj.Files = MyFiles;
        prj.Update();
    }
        /// <summary>
        /// Gets node from collection by an identifier. First attempt to read from cache.
        /// </summary>
        /// <param name="nodeId">Node identifier</param>
        /// <returns>Node object</returns>
        public Node <TIdentifier, TNodeData, TEdgeData> GetNode(TIdentifier identifier, NodeAccess access)
        {
            if (cacheProvider.Contains(identifier))
            {
                return(cacheProvider.GetNode(identifier, access));
            }

            // Read from parent -> move to cache
            Node <TIdentifier, TNodeData, TEdgeData> node = parentProvider.GetNode(identifier, access);

            parentProvider.Remove(identifier);
            cacheProvider.SetNode(identifier, node);
            return(node);
        }
 /// <summary>
 /// Gets node from collection by an identifier
 /// </summary>
 /// <param name="nodeId">Node identifier</param>
 /// <returns>Node object</returns>
 public Node <TIdentifier, TNodeData, TEdgeData> GetNode(TIdentifier nodeId, NodeAccess access)
 {
     return((Node <TIdentifier, TNodeData, TEdgeData>)storage.Value(nodeId));
 }
Example #9
0
        /// <summary>
        /// Gets node from collection by an identifier. First attempt to read from cache.
        /// </summary>
        /// <param name="nodeId">Node identifier</param>
        /// <returns>Node object</returns>
        public Node <TIdentifier, TNodeData, TEdgeData> GetNode(TIdentifier identifier, NodeAccess access)
        {
            rwLock.AcquireReaderLock(-1);
            try
            {
                // Read from cache
                var node = cacheProvider.GetNode(identifier, access);

                if (node != null)
                {
                    return(node);
                }
                else
                {
                    // Read from parent
                    node = parentProvider.GetNode(identifier, access);
                    cacheProvider.SetNode(identifier, node);
                    return(node);
                }
            }
            finally
            {
                rwLock.ReleaseLock();
            }
        }
Example #10
0
    public void BindNodeRule()
    {
        NodeAccesss nrs = new NodeAccesss();

        nrs.Retrieve(NodeAccessAttr.FK_Node, this.FK_Node, NodeAccessAttr.FK_Prj, this.FK_Prj);

        string root = BP.SystemConfig.PathOfDataUser + "\\PrjData\\Templete\\" + this.FK_Prj;

        this.Pub3.AddTable("width=100%");
        this.Pub3.AddCaptionLeft("节点与资料树访问权限 - <a href=\"javascript:AddDir('" + this.FK_Flow + "','" + this.FK_Node + "')\" >增加文件夹</a>");
        string[] dirs = System.IO.Directory.GetDirectories(root);
        int      idx  = 0;

        foreach (string dir in dirs)
        {
            idx++;
            DirectoryInfo dirInfo = new DirectoryInfo(dir);
            this.Pub3.AddTR();
            this.Pub3.AddTDIdx(idx);
            this.Pub3.AddTD("colspan=5", "<img src='./../Images/Btn/open.gif'>" + dirInfo.Name);
            this.Pub3.AddTD("<a href=\"javascript:AddFile('" + idx + "','" + this.FK_Flow + "','" + this.FK_Node + "')\" >增加模板</a>");
            this.Pub3.AddTREnd();
            FileInfo[] fls = dirInfo.GetFiles();
            foreach (FileInfo fl in fls)
            {
                idx++;
                this.Pub3.AddTR();
                this.Pub3.AddTDIdx(idx);
                this.Pub3.AddTD("<img src='./../Images/FileType/" + fl.Extension.Replace(".", "") + ".gif'>" + fl.Name);
                NodeAccess rl = nrs.GetEntityByKey(NodeAccessAttr.FileFullName, fl.FullName) as NodeAccess;
                if (rl == null)
                {
                    rl = new NodeAccess();
                    rl.FileFullName = fl.FullName;
                    rl.FileName     = fl.Name;
                    rl.FK_Node      = this.FK_Node;
                }

                CheckBox cb = new CheckBox();
                cb.ID      = "CB_" + NodeAccessAttr.IsView + "_" + idx;
                cb.Text    = "可见";
                cb.Checked = rl.IsView;
                this.Pub3.AddTD(cb);

                cb         = new CheckBox();
                cb.ID      = "CB_" + NodeAccessAttr.IsDown + "_" + idx;
                cb.Text    = "可下载";
                cb.Checked = rl.IsDown;
                this.Pub3.AddTD(cb);

                cb         = new CheckBox();
                cb.ID      = "CB_" + NodeAccessAttr.IsUpload + "_" + idx;
                cb.Text    = "可上传";
                cb.Checked = rl.IsUpload;
                this.Pub3.AddTD(cb);

                cb         = new CheckBox();
                cb.ID      = "CB_" + NodeAccessAttr.IsDelete + "_" + idx;
                cb.Text    = "可删除";
                cb.Checked = rl.IsDelete;
                this.Pub3.AddTD(cb);

                this.Pub3.AddTD("<a href=\"javascript:DelFile('" + idx + "','" + this.FK_Flow + "','" + this.FK_Node + "')\" >删除</a>");
                this.Pub3.AddTREnd();
            }
        }
        this.Pub3.AddTableEnd();

        this.Pub3.AddHR();
        Button btn = new Button();

        btn.Text   = " Save  ";
        btn.ID     = "Btn_Save";
        btn.Click += new EventHandler(btn_Templete_Click);
        this.Pub3.Add(btn);
    }