Beispiel #1
0
        public CswNbtView restoreView(CswNbtViewId NbtViewId)
        {
            CswNbtView     ReturnVal        = null;
            CswTableSelect ViewsTableSelect = _CswNbtResources.makeCswTableSelect("restoreView_select", "node_views");

            if (NbtViewId.isSet())
            {
                Int32 ViewId = NbtViewId.get();
                if (Int32.MinValue != ViewId)
                {
                    DataTable ViewTable = ViewsTableSelect.getTable("nodeviewid", ViewId);
                    if (ViewTable.Rows.Count > 0)
                    {
                        string ViewAsString = ViewTable.Rows[0]["viewxml"].ToString();
                        ReturnVal                  = restoreView(ViewAsString);
                        ReturnVal.ViewId           = NbtViewId;
                        ReturnVal.Visibility       = (CswEnumNbtViewVisibility)ViewTable.Rows[0]["visibility"].ToString();
                        ReturnVal.VisibilityRoleId = new CswPrimaryKey("nodes", CswConvert.ToInt32(ViewTable.Rows[0]["roleid"]));
                        ReturnVal.VisibilityUserId = new CswPrimaryKey("nodes", CswConvert.ToInt32(ViewTable.Rows[0]["userid"]));
                        ReturnVal.Category         = ViewTable.Rows[0]["category"].ToString();
                        ReturnVal.ViewName         = ViewTable.Rows[0]["viewname"].ToString();
                        ReturnVal.IsDemo           = CswConvert.ToBoolean(ViewTable.Rows[0]["isdemo"].ToString());
                        ReturnVal.IsSystem         = CswConvert.ToBoolean(ViewTable.Rows[0]["issystem"].ToString());
                    }
                }
            }
            else
            {
                throw new CswDniException(CswEnumErrorType.Error, "Attempt to restore view failed.", "CswNbtViewSelect was handed an invalid NbtViewId in restoreView().");
            }
            return(ReturnVal);
        }//restoreView()
Beispiel #2
0
        }//ctor

        /// <summary>
        /// Constructor: from String
        /// </summary>
        public CswNbtTreeKey(string KeyString)
        {
            if (CswNbtViewId.isViewIdString(KeyString))
            {
                _KeyString = new CswNbtViewId(KeyString).ToString();
            }
            else if (CswNbtSessionDataId.isSessionDataIdString(KeyString))
            {
                _KeyString = new CswNbtSessionDataId(KeyString).ToString();
            }
        }//ctor
Beispiel #3
0
        } // constructor

        private CswNbtView _getView(string ViewId)
        {
            CswNbtView ReturnVal = null;

            if (CswNbtViewId.isViewIdString(ViewId))
            {
                CswNbtViewId realViewid = new CswNbtViewId(ViewId);
                ReturnVal = _CswNbtResources.ViewSelect.restoreView(realViewid);
            }
            else if (CswNbtSessionDataId.isSessionDataIdString(ViewId))
            {
                CswNbtSessionDataId SessionViewid = new CswNbtSessionDataId(ViewId);
                ReturnVal = _CswNbtResources.ViewSelect.getSessionView(SessionViewid);
            }

            return(ReturnVal);
        } // _getView()
Beispiel #4
0
        /// <summary>
        /// Get all views with visibility set to the current user
        /// </summary>
        public DataTable getUserViews(out Dictionary <CswNbtViewId, CswNbtView> AllEnabledViews)
        {
            DataTable Ret = null;
            Dictionary <CswNbtViewId, CswNbtView> OutEnabledViews = new Dictionary <CswNbtViewId, CswNbtView>();
            CswStaticSelect ViewsSelect = _CswNbtResources.makeCswStaticSelect("getUserViews_select", "getUserViewInfo");

            ViewsSelect.S4Parameters.Add("getuserid", new CswStaticParam("getuserid", _CswNbtResources.CurrentUser.UserId.PrimaryKey.ToString()));
            Ret = ViewsSelect.getTable();

            foreach (DataRow Row in Ret.Rows)
            {
                CswNbtViewId ThisViewId = new CswNbtViewId(CswConvert.ToInt32(Row["nodeviewid"]));
                CswNbtView   ThisView   = restoreView(ThisViewId);
                OutEnabledViews.Add(ThisView.ViewId, ThisView);
            }
            AllEnabledViews = OutEnabledViews;

            return(Ret);
        }
Beispiel #5
0
        /// <summary>
        /// Get a DataTable of all enabled views in the database
        /// </summary>
        public DataTable getAllEnabledViews(out Dictionary <CswNbtViewId, CswNbtView> AllEnabledViews)
        {
            CswStaticSelect ViewsSelect = _CswNbtResources.makeCswStaticSelect("CswNbtViewSelect.getAllViews_select", "getAllViewInfo");
            Dictionary <CswNbtViewId, CswNbtView> OutEnabledViews = new Dictionary <CswNbtViewId, CswNbtView>();
            CswNbtNode ChemSwAdminUser = _CswNbtResources.Nodes.makeUserNodeFromUsername(CswNbtObjClassUser.ChemSWAdminUsername);
            CswNbtNode ChemSwAdminRole = _CswNbtResources.Nodes.makeRoleNodeFromRoleName(CswNbtObjClassRole.ChemSWAdminRoleName);
            bool       ExcludeCswAdmin = (_CswNbtResources.CurrentNbtUser.Username != CswNbtObjClassUser.ChemSWAdminUsername ||
                                          _CswNbtResources.CurrentNbtUser.Rolename != CswNbtObjClassRole.ChemSWAdminRoleName);

            DataTable            AllViews   = ViewsSelect.getTable();
            Collection <DataRow> DoomedRows = new Collection <DataRow>();

            foreach (DataRow Row in AllViews.Rows)
            {
                CswNbtViewId ViewId = new CswNbtViewId(CswConvert.ToInt32(Row["nodeviewid"]));
                CswNbtView   View   = _CswNbtResources.ViewSelect.restoreView(ViewId);
                if (false == View.IsFullyEnabled() ||
                    (_CswNbtResources.CurrentNbtUser.Username != CswNbtObjClassUser.ChemSWAdminUsername && CswConvert.ToBoolean(Row["issystem"])) ||
                    (ExcludeCswAdmin &&
                     ((View.Visibility == CswEnumNbtViewVisibility.Role &&
                       View.VisibilityRoleId == ChemSwAdminRole.NodeId) ||
                      (View.Visibility == CswEnumNbtViewVisibility.User &&
                       View.VisibilityUserId == ChemSwAdminUser.NodeId))))
                {
                    DoomedRows.Add(Row);
                }
                else
                {
                    OutEnabledViews.Add(ViewId, View);
                }
            }
            foreach (DataRow DoomedRow in DoomedRows)
            {
                DoomedRow.Delete();
            }
            AllEnabledViews = OutEnabledViews;
            AllViews.AcceptChanges();
            return(AllViews);
        }
Beispiel #6
0
        public CswNbtViewRoot(CswNbtResources CswNbtResources, CswNbtView View, JObject Node)
            : base(CswNbtResources, View)
        {
            try
            {
                _RootString           = new CswDelimitedString(CswNbtView.delimiter, _PropCount);
                _RootString.OnChange += new CswDelimitedString.DelimitedStringChangeHandler(_RootString_OnChange);

                string _ViewName = CswConvert.ToString(Node["viewname"]);
                if (!string.IsNullOrEmpty(_ViewName))
                {
                    _RootString[1] = _ViewName; // set _RootString[1], not ViewName, because we're not *changing* the name of the view
                }

                if (null != Node["selectable"])
                {
                    bool _Selectable = CswConvert.ToBoolean(Node["selectable"]);
                    Selectable = _Selectable;
                }

                string _Mode = CswConvert.ToString(Node["mode"]);
                if (!string.IsNullOrEmpty(_Mode))
                {
                    ViewMode = _Mode;
                }

                Int32 _Width = CswConvert.ToInt32(Node["width"]);
                if (Int32.MinValue != _Width)
                {
                    Width = _Width;
                }

                Int32 _ViewId = CswConvert.ToInt32(Node["viewid"]);
                if (Int32.MinValue != _ViewId)
                {
                    ViewId = new CswNbtViewId(_ViewId);
                }

                string _Category = CswConvert.ToString(Node["category"]);
                if (!string.IsNullOrEmpty(_Category))
                {
                    Category = _Category;
                }

                string _Visibility = CswConvert.ToString(Node["visibility"]);
                if (!string.IsNullOrEmpty(_Visibility))
                {
                    Visibility = (CswEnumNbtViewVisibility)_Visibility;
                }

                Int32 _VisibilityRoleId = CswConvert.ToInt32(Node["visibilityroleid"]);
                if (Int32.MinValue != _VisibilityRoleId)
                {
                    VisibilityRoleId = new CswPrimaryKey("nodes", _VisibilityRoleId);
                }

                Int32 _VisibilityUserId = CswConvert.ToInt32(Node["visibilityuserid"]);
                if (Int32.MinValue != _VisibilityUserId)
                {
                    VisibilityUserId = new CswPrimaryKey("nodes", _VisibilityUserId);
                }

                if (Node["groupbysiblings"] != null)
                {
                    bool _groupBySiblings = CswConvert.ToBoolean(Node["groupbysiblings"]);
                    GroupBySiblings = _groupBySiblings;
                }

                if (Node["included"] != null)
                {
                    bool _included = CswConvert.ToBoolean(Node["included"]);
                    Included = _included;
                }

                if (Node["isdemo"] != null)
                {
                    bool _isDemo = CswConvert.ToBoolean(Node["isdemo"]);
                    IsDemo = _isDemo;
                }

                if (Node["issystem"] != null)
                {
                    bool _isSystem = CswConvert.ToBoolean(Node["issystem"]);
                    IsSystem = _isSystem;
                }

                if (Node["gridgroupbycol"] != null)
                {
                    GridGroupByCol = Regex.Replace(Node["gridgroupbycol"].ToString(), @"[nN]one", "");
                }
            }
            catch (Exception ex)
            {
                throw new CswDniException(CswEnumErrorType.Error, "Misconfigured CswNbtViewNodeRoot",
                                          "CswNbtViewNodeRoot.constructor(xmlnode) encountered an invalid attribute value",
                                          ex);
            }
            try
            {
                JProperty Children = Node.Property(_ChildRelationshipsName);
                if (null != Children)
                {
                    JObject Relationships = (JObject)Children.Value;
                    foreach (CswNbtViewRelationship ChildRelationship in
                             from Relationship
                             in Relationships.Properties()
                             select(JObject) Relationship.Value
                             into RelationshipObj
                             let NodeName = CswConvert.ToString(RelationshipObj["nodename"])
                                            where NodeName == CswEnumNbtViewXmlNodeName.Relationship.ToString().ToLower()
                                            select new CswNbtViewRelationship(CswNbtResources, _View, RelationshipObj))
                    {
                        this.addChildRelationship(ChildRelationship);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new CswDniException(CswEnumErrorType.Error, "Misconfigured CswNbtViewNodeRoot",
                                          "CswNbtViewNodeRoot.constructor(xmlnode) encountered an invalid child definition",
                                          ex);
            }
        }
Beispiel #7
0
        public CswNbtViewRoot(CswNbtResources CswNbtResources, CswNbtView View, XmlNode Node)
            : base(CswNbtResources, View)
        {
            try
            {
                _RootString           = new CswDelimitedString(CswNbtView.delimiter, _PropCount);
                _RootString.OnChange += new CswDelimitedString.DelimitedStringChangeHandler(_RootString_OnChange);

                if (Node.Attributes["viewname"] != null)
                {
                    _RootString[1] = Node.Attributes["viewname"].Value;    // set _RootString[1], not ViewName, because we're not *changing* the name of the view
                }

                if (Node.Attributes["selectable"] != null)
                {
                    Selectable = CswConvert.ToBoolean(Node.Attributes["selectable"].Value);
                }
                if (Node.Attributes["mode"] != null)
                {
                    ViewMode = Node.Attributes["mode"].Value;
                }
                if (Node.Attributes["width"] != null && Node.Attributes["width"].Value != String.Empty)
                {
                    Width = CswConvert.ToInt32(Node.Attributes["width"].Value);
                }

                if (Node.Attributes["viewid"] != null && Node.Attributes["viewid"].Value != String.Empty)
                {
                    ViewId = new CswNbtViewId(CswConvert.ToInt32(Node.Attributes["viewid"].Value));
                }
                if (Node.Attributes["category"] != null && Node.Attributes["category"].Value != String.Empty)
                {
                    Category = Node.Attributes["category"].Value;
                }
                if (Node.Attributes["visibility"] != null && Node.Attributes["visibility"].Value != String.Empty)
                {
                    Visibility = (CswEnumNbtViewVisibility)Node.Attributes["visibility"].Value;
                }

                if (Node.Attributes["visibilityroleid"] != null &&
                    Node.Attributes["visibilityroleid"].Value != String.Empty)
                {
                    VisibilityRoleId = new CswPrimaryKey("nodes", CswConvert.ToInt32(Node.Attributes["visibilityroleid"].Value));
                }
                if (Node.Attributes["visibilityuserid"] != null &&
                    Node.Attributes["visibilityuserid"].Value != String.Empty)
                {
                    VisibilityUserId = new CswPrimaryKey("nodes", CswConvert.ToInt32(Node.Attributes["visibilityuserid"].Value));
                }
                if (Node.Attributes["groupbysiblings"] != null)
                {
                    GroupBySiblings = CswConvert.ToBoolean(Node.Attributes["groupbysiblings"].Value);
                }
                if (Node.Attributes["included"] != null)
                {
                    Included = CswConvert.ToBoolean(Node.Attributes["included"].Value);
                }
                if (Node.Attributes["isdemo"] != null)
                {
                    IsDemo = CswConvert.ToBoolean(Node.Attributes["isdemo"].Value);
                }
                if (Node.Attributes["issystem"] != null)
                {
                    IsSystem = CswConvert.ToBoolean(Node.Attributes["issystem"].Value);
                }
                if (Node.Attributes["includetempnodes"] != null)
                {
                    IncludeTempNodes = CswConvert.ToBoolean(Node.Attributes["includetempnodes"].Value);
                }
                if (Node.Attributes["gridgroupbycol"] != null)
                {
                    GridGroupByCol = Node.Attributes["gridgroupbycol"].Value;
                }
            }
            catch (Exception ex)
            {
                throw new CswDniException(CswEnumErrorType.Error, "Misconfigured CswNbtViewNodeRoot",
                                          "CswNbtViewNodeRoot.constructor(xmlnode) encountered an invalid attribute value",
                                          ex);
            }
            try
            {
                foreach (XmlNode ChildNode in Node.ChildNodes)
                {
                    if (ChildNode.Name.ToLower() == CswEnumNbtViewXmlNodeName.Relationship.ToString().ToLower())
                    {
                        CswNbtViewRelationship ChildRelationship = new CswNbtViewRelationship(CswNbtResources, _View, ChildNode);
                        this.addChildRelationship(ChildRelationship);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new CswDniException(CswEnumErrorType.Error, "Misconfigured CswNbtViewNodeRoot",
                                          "CswNbtViewNodeRoot.constructor(xmlnode) encountered an invalid child definition",
                                          ex);
            }
        }