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()
}//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
} // 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()
/// <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); }
/// <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); }
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); } }
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); } }