private RoleComponentVM BuildOneTreeViewItem(string nodeName, LayoutComponentType type, List <RoleComponentVM> childList) { RoleComponentVM item1 = new RoleComponentVM(); item1.RoleComponentChildVMList = childList; if (childList == null) { Component realCompt = GetRealComponent(type); RoleComponentPermission roleComptPermission = GetRoleComponentPermission(type); item1.Name = realCompt.Name; item1.RoleId = this.RoleId; item1.ComponentId = (int)type; if (roleComptPermission != null) { item1.RoleComponentPermissionId = roleComptPermission.RoleComponentPermissionId; item1.HasAccess = true; item1.HasWriteRight = roleComptPermission.WriteRight == true; } } else { item1.Name = nodeName; } item1.IsEnabled = !this.IsReadonly; _flatTreeViewItemSource.Add(item1); return(item1); }
public List <RoleComponentPermission> GetSaveList() { List <RoleComponentPermission> saveList = new List <RoleComponentPermission>(); if (_flatTreeViewItemSource != null && _flatTreeViewItemSource.Count > 0) { foreach (RoleComponentVM treeItem in _flatTreeViewItemSource) { if (treeItem.RoleComponentPermissionId > 0) { RoleComponentPermission originalItem = this.RoleComponentItemSource.FirstOrDefault(i => i.RoleComponentPermissionId == treeItem.RoleComponentPermissionId); if (originalItem != null) { if (treeItem.HasAccess) { if (treeItem.HasWriteRight == false && originalItem.WriteRight == true || treeItem.HasWriteRight == true && (!originalItem.WriteRight.HasValue || originalItem.WriteRight == false)) { originalItem.WriteRight = treeItem.HasWriteRight; originalItem.IsChanged = true; originalItem.UpdatedBy = Globals.UserLogin.UserName; saveList.Add(originalItem); } } else { originalItem.IsDeleted = true; saveList.Add(originalItem); } } } else { if (treeItem.HasAccess && treeItem.RoleId != Guid.Empty && treeItem.ComponentId > 0) { RoleComponentPermission newItem = new RoleComponentPermission(); newItem.ComponentId = treeItem.ComponentId; newItem.RoleId = treeItem.RoleId; newItem.WriteRight = treeItem.HasWriteRight; newItem.IsChanged = true; newItem.CreatedBy = Globals.UserLogin.UserName; saveList.Add(newItem); } } } } return(saveList); }
private RoleComponentPermission GetRoleComponentPermission(LayoutComponentType type) { RoleComponentPermission result = null; if (RoleComponentItemSource != null) { var list = RoleComponentItemSource.Where(i => i.ComponentId == (int)type); foreach (RoleComponentPermission item in list) { if (item.WriteRight == true) { result = item; break; } } if (result == null && list.Count() > 0) { result = list.FirstOrDefault(); } } return(result); }