public async Task <IEnumerable <EntityPermissionSet> > GetEntityPermissionsForRole(IUnitOfWork uofw, string roleID) { var rolePermissions = await uofw.GetRepository <AccessLevel>().All() .Where(x => !x.Hidden && x.RoleID == roleID) .Select(x => new { x.Entity.TypeName, x.AccessModifier }) .ToListAsync(); var allEntities = await _mappedBaseEntityService.GetEntitiesAsync(); var ret = new List <EntityPermissionSet>(); foreach (var item in allEntities) { var inRoleForType = rolePermissions.Where(x => x.TypeName == item.TypeName); var el = new EntityPermissionSet() { EntityType = item.TypeName, Create = inRoleForType.Any(x => x.AccessModifier == Base.Enums.AccessModifier.Create), Read = inRoleForType.Any(x => x.AccessModifier == Base.Enums.AccessModifier.Read), Update = inRoleForType.Any(x => x.AccessModifier == Base.Enums.AccessModifier.Update), Delete = inRoleForType.Any(x => x.AccessModifier == Base.Enums.AccessModifier.Delete), }; ret.Add(el); } return(ret); }
public async Task <IHttpActionResult> Test() { using (var uofw = CreateUnitOfWork) { var a = await _mappedBaseEntityService.GetEntitiesAsync(); var obj = _testObjectService.Create(uofw, new TestObject() { Title = "Old title", Number = 5 }); //var dto = new { Title = "DTO Text", Number = -7 }; //uofw.GetRepository<TestObject>().SetFromObject(obj.ID, dto); //obj.ChangeProperty(uofw, x => x.Number, 10) // .ChangeProperty(uofw, x => x.Title, "Eureka!"); obj.Number = 15; obj.Title = "jopa"; _testObjectService.Update(uofw, obj); await uofw.SaveChangesAsync(); return(Ok(new { obj })); } }