public void CastPermissions(IList <PermissionBE> permissions, IList <PermissionViewModel> permissionViewModels) { foreach (var per in permissions) { if (typeof(PermissionsGroupBE) == per.GetType()) { PermissionsGroupBE pg = (PermissionsGroupBE)per; //var pergrvm = Mapper.Map<PermissionsGroupBE, PermissionsGroupViewModel>(pg); PermissionsGroupViewModel pergrvm = new PermissionsGroupViewModel() { Id = pg.Id, Name = pg.Name }; permissionViewModels.Add(pergrvm); //permissionViewModels.Remove(permissionViewModels.Where(p=>p.Id == pergrvm.Id).FirstOrDefault()); CastPermissions(pg.Permissions, pergrvm.Permissions); } else if (typeof(PermissionBE) == per.GetType()) { PermissionBE p = (PermissionBE)per; PermissionViewModel pervm = new PermissionViewModel() { Id = p.Id, Name = p.Name }; permissionViewModels.Add(pervm); } } }
private static void AddChildren(List <PermissionBE> permissions, DataSet ds, PermissionsGroupBE node) { try { foreach (var per in permissions) { List <PermissionBE> list = new List <PermissionBE>(); foreach (DataRow dr in ds.Tables[0].Rows) { if (node.Id.ToString() == dr["ParentID"].ToString()) { if (dr["PermissionID"].ToString() == per.Id.ToString()) { if (!node.Permissions.Any(p => p == per)) { node.Permissions.Add(per); } foreach (var child in node.Permissions) { if (typeof(PermissionsGroupBE) == child.GetType()) { AddChildren(permissions, ds, (PermissionsGroupBE)child); } } break; } } } } } catch (Exception ex) { throw new Exception(Messages.Generic_Error); } }
private bool VerifyLoginPermission(IList <PermissionBE> permissions) { bool result = false; foreach (var per in permissions) { if (typeof(PermissionBE) == per.GetType()) { if (per.Check("Login")) { result = true; } } else { PermissionsGroupBE pg = (PermissionsGroupBE)per; result = VerifyLoginPermission(pg.Permissions); } if (result) { break; } } return(result); }
public ClaimsIdentity ListPermissions(IList <PermissionBE> permissions, ClaimsIdentity identity) { foreach (PermissionBE per in permissions) { if (per is PermissionsGroupBE) { PermissionsGroupBE pergr = per as PermissionsGroupBE; ListPermissions(pergr.Permissions, identity); } else { identity.AddClaim(new Claim(ClaimTypes.Role, per.Name)); } } return(identity); }
private IList <PermissionBE> ReturnPermissionsTree(DataSet dataSet) { List <PermissionBE> permissions = new List <PermissionBE>(); List <PermissionBE> roots = new List <PermissionBE>(); foreach (DataRow dr in dataSet.Tables[0].Rows) { Guid parent = dr["ParentID"].ToString() == string.Empty ? Guid.Empty : Guid.Parse(dr["ParentID"].ToString()); PermissionBE permission; bool exists = false; foreach (PermissionBE per in permissions) { if (per.Id == Guid.Parse(dr["PermissionID"].ToString())) { exists = true; } } if (!exists) { if (Convert.ToBoolean(dr["IsGroup"])) { permission = new PermissionsGroupBE() { Id = Guid.Parse(dr["PermissionID"].ToString()), Name = dr["Name"].ToString() }; } else { permission = new PermissionBE() { Id = Guid.Parse(dr["PermissionID"].ToString()), Name = dr["Name"].ToString() }; } if (parent == Guid.Empty) { roots.Add(permission); } else { permissions.Add(permission); } } } if (roots.ToList().Count > 0) { foreach (var root in roots) { if (typeof(PermissionsGroupBE) == root.GetType()) { AddChildren(permissions, dataSet, (PermissionsGroupBE)root); } } } return(roots); }