private static PermissionContract GetPermissionContract(UM_Resource resource, Guid groupID, Guid projectID) { var session = Hb8Factory.InitSession(); var permission = (from n in session.Query <UM_Permission>() where n.DateDeleted == null && n.GroupID == groupID && n.ResourceID == resource.ID orderby n.RuleValue descending select n).FirstOrDefault(); if (permission != null) { return(permission.ToContract(projectID)); } if (resource.Parent == null) { var newPemission = new UM_Permission { ID = Guid.NewGuid(), GroupID = groupID, ResourceID = resource.ID, RuleValue = (int)RulePermissionsEnum.View, DateCreated = DateTime.Now }; session.SubmitInsert(newPemission); return(newPemission.ToContract(projectID)); } return(GetPermissionContract(resource.Parent, groupID, projectID)); }
private static PermissionContract GetPermissionContract(UM_Resource resource, Guid groupID, Guid projectID) { using (var db = DcFactory.Create <UserManagementDataContext>()) { var permission = (from n in db.UM_Permissions where n.DateDeleted == null && n.GroupID == groupID && n.ResourceID == resource.ID orderby n.RuleValue descending select n).FirstOrDefault(); if (permission != null) { return(permission.ToContract(projectID)); } if (resource.Parent == null) { var newPemission = new UM_Permission(); newPemission.ID = Guid.NewGuid(); newPemission.GroupID = groupID; newPemission.ResourceID = resource.ID; newPemission.RuleValue = (int)RulePermissionsEnum.View; newPemission.DateCreated = DateTime.Now; db.UM_Permissions.InsertOnSubmit(newPemission); db.SubmitChanges(); return(newPemission.ToContract(projectID)); } return(GetPermissionContract(resource.Parent, groupID, projectID)); } }