public async Task <DataProviderGetRecords <Authorization> > GetItemsAsync(int skip, int take, List <DataProviderSortInfo> sort, List <DataProviderFilterInfo> filters) { // get all defined authorizations DataProviderGetRecords <Authorization> list = await DataProvider.GetRecordsAsync(0, 0, null, filters); foreach (Authorization l in list.Data) { l.CanDelete = true; } // get all AuthorizationResource items using (RoleDefinitionDataProvider roleDP = new RoleDefinitionDataProvider(SiteIdentity)) { AuthorizationResourceDataProvider authResDP = new AuthorizationResourceDataProvider(); DataProviderGetRecords <ResourceAttribute> resAttrs = authResDP.GetItems(); // merge in AuthorizationResource items foreach (ResourceAttribute resAttr in resAttrs.Data) { Authorization auth = (from l in list.Data where l.ResourceName == resAttr.Name select l).FirstOrDefault(); if (auth == null) { auth = GetFromAuthorizationResource(roleDP, resAttr); list.Data.Add(auth); } } } return(DataProviderImpl <Authorization> .GetRecords(list.Data, skip, take, sort, filters)); }
// API // API // API public async Task <Authorization> GetItemAsync(string resourceName) { Authorization data = await DataProvider.GetAsync(resourceName); if (data != null) { data.CanDelete = true; return(data); } AuthorizationResourceDataProvider authResDP = new AuthorizationResourceDataProvider(); using (RoleDefinitionDataProvider roleDP = new RoleDefinitionDataProvider(SiteIdentity)) { return(GetFromAuthorizationResource(roleDP, authResDP.GetItem(resourceName))); } }