protected void createTabXML() { bool isDefault = false; Tabs allTabs = new Tabs(); DataTable tabsDataTable = TabDataTable; DataTable permissionDataTable = TabPermissionDataTable; DataTable permissionConditionDataTable = PermissionConditionDataTable; foreach (DataRow drTab in tabsDataTable.Rows) { ushort index = Convert.ToUInt16(drTab[Constants.TabField.Index]); string title = drTab[Constants.TabField.Title].ToString(); string desc = drTab[Constants.TabField.Description].ToString(); bool isTabDefault = Helper.ConvertToBool(drTab[Constants.TabField.IsDefault].ToString()); int tabID = Convert.ToInt32(drTab[Constants.RowID]); Tab t1 = new Tab(index, title, desc); t1.CommaSeperatedFields = drTab[Constants.TabField.FieldToString].ToString(); t1.IsSelected = isTabDefault; DataTable permissionOfSelectedTab = Helper.GetViewFromDataTable(permissionDataTable, tabID, Constants.PermissionField.TabRowID).ToTable(); if (permissionOfSelectedTab != null && permissionOfSelectedTab.Rows.Count > 0) { foreach (DataRow drPermission in permissionOfSelectedTab.Rows) { bool IsDefault = Helper.ConvertToBool(drPermission[Constants.PermissionField.IsDefault].ToString()); Enums.PermissionLevel permissionLevel = (Enums.PermissionLevel)(Convert.ToInt32(drPermission[Constants.PermissionField.PermissionID].ToString())); string OnForms = drPermission[Constants.PermissionField.OnFormIDs].ToString(); string ForSPPrinciples = drPermission[Constants.PermissionField.SPPrinciples].ToString(); Enums.Operator BySPPrinciplesOperator = (Enums.Operator)(Convert.ToInt32(drPermission[Constants.PermissionField.SPPrinciplesOperatorID].ToString())); int permissionID = Convert.ToInt32(drPermission[Constants.RowID]); TabPermission perm1 = new TabPermission(isDefault, permissionLevel, TabPermission.ParseForms(OnForms), ForSPPrinciples, BySPPrinciplesOperator); DataTable conditionOfSelectedPermission = Helper.GetViewFromDataTable(permissionConditionDataTable, permissionID, Constants.ConditionField.PermissionRowID).ToTable(); if (conditionOfSelectedPermission != null && conditionOfSelectedPermission.Rows.Count > 0) { foreach (DataRow drCondition in conditionOfSelectedPermission.Rows) { string OnField = drCondition[Constants.ConditionField.SPFieldName].ToString(); Enums.Operator ByFieldOperator = (Enums.Operator)Convert.ToInt32(drCondition[Constants.ConditionField.SPFieldOperatorID].ToString()); object Value = drCondition[Constants.ConditionField.Value].ToString(); perm1.Conditions.Add(new Condition(new Field(OnField), ByFieldOperator, Value)); } } t1.Permissions.Add(perm1); } } allTabs.Add(t1); } SPSecurity.RunWithElevatedPrivileges(delegate { using (SPSite objSite = new SPSite(SPContext.Current.Web.Url.ToString())) { using (SPWeb objWeb = objSite.OpenWeb()) { SPList list = objWeb.Lists[new Guid(Request.QueryString["List"])]; objWeb.AllowUnsafeUpdates = true; string xml = allTabs.ToString(); if (allTabs.Count > 0 && Helper.IsValidXml(xml)) { Helper.CreateConfigFile(list, Constants.ConfigFile.TabSettingFile, xml); } else { Helper.DeleteConfigFile(list, Constants.ConfigFile.TabSettingFile, xml); } objWeb.AllowUnsafeUpdates = false; } } }); }
protected void createTabXML() { bool isDefault = false; Tabs allTabs = new Tabs(); DataTable tabsDataTable = TabDataTable; DataTable permissionDataTable = TabPermissionDataTable; DataTable permissionConditionDataTable = PermissionConditionDataTable; foreach (DataRow drTab in tabsDataTable.Rows) { ushort index = Convert.ToUInt16(drTab[Constants.TabField.Index]); string title = drTab[Constants.TabField.Title].ToString(); string desc = drTab[Constants.TabField.Description].ToString(); bool isTabDefault = Helper.ConvertToBool( drTab[Constants.TabField.IsDefault].ToString()); int tabID = Convert.ToInt32(drTab[Constants.RowID]); Tab t1 = new Tab(index, title, desc); t1.CommaSeperatedFields = drTab[Constants.TabField.FieldToString].ToString(); t1.IsSelected = isTabDefault; DataTable permissionOfSelectedTab = Helper.GetViewFromDataTable(permissionDataTable, tabID, Constants.PermissionField.TabRowID).ToTable(); if (permissionOfSelectedTab != null && permissionOfSelectedTab.Rows.Count > 0) { foreach (DataRow drPermission in permissionOfSelectedTab.Rows) { bool IsDefault = Helper.ConvertToBool(drPermission[Constants.PermissionField.IsDefault].ToString()); Enums.PermissionLevel permissionLevel = (Enums.PermissionLevel)(Convert.ToInt32(drPermission[Constants.PermissionField.PermissionID].ToString())); string OnForms = drPermission[Constants.PermissionField.OnFormIDs].ToString(); string ForSPPrinciples = drPermission[Constants.PermissionField.SPPrinciples].ToString(); Enums.Operator BySPPrinciplesOperator = (Enums.Operator)(Convert.ToInt32(drPermission[Constants.PermissionField.SPPrinciplesOperatorID].ToString())); int permissionID = Convert.ToInt32(drPermission[Constants.RowID]); TabPermission perm1 = new TabPermission(isDefault, permissionLevel, TabPermission.ParseForms(OnForms), ForSPPrinciples, BySPPrinciplesOperator); DataTable conditionOfSelectedPermission = Helper.GetViewFromDataTable(permissionConditionDataTable, permissionID, Constants.ConditionField.PermissionRowID).ToTable(); if (conditionOfSelectedPermission != null && conditionOfSelectedPermission.Rows.Count > 0) { foreach (DataRow drCondition in conditionOfSelectedPermission.Rows) { string OnField = drCondition[Constants.ConditionField.SPFieldName].ToString(); Enums.Operator ByFieldOperator = (Enums.Operator)Convert.ToInt32(drCondition[Constants.ConditionField.SPFieldOperatorID].ToString()); object Value = drCondition[Constants.ConditionField.Value].ToString(); perm1.Conditions.Add(new Condition(new Field(OnField), ByFieldOperator, Value)); } } t1.Permissions.Add(perm1); } } allTabs.Add(t1); } SPSecurity.RunWithElevatedPrivileges(delegate { using (SPSite objSite = new SPSite(SPContext.Current.Web.Url.ToString())) { using (SPWeb objWeb = objSite.OpenWeb()) { SPList list = objWeb.Lists[new Guid(Request.QueryString["List"])]; objWeb.AllowUnsafeUpdates = true; string xml = allTabs.ToString(); if (allTabs.Count > 0 && Helper.IsValidXml(xml)) { Helper.CreateConfigFile(list, Constants.ConfigFile.TabSettingFile, xml); } else { Helper.DeleteConfigFile(list, Constants.ConfigFile.TabSettingFile, xml); } objWeb.AllowUnsafeUpdates = false; } } }); }