public async Task <Concept> GetAsync(Guid id) { log.LogInformation("Getting Concept. Id:{Id}", id); using (var cn = new SqlConnection(opts.ConnectionString)) { await cn.OpenAsync(); try { var grid = await cn.QueryMultipleAsync( querySingle, new { id, user = user.UUID, groups = GroupMembership.From(user), admin = user.IsAdmin }, commandTimeout : opts.DefaultTimeout, commandType : CommandType.StoredProcedure ); return(HydratedConceptReader.Read(grid).FirstOrDefault()); } catch (SqlException se) { log.LogError("Could not get concept by Id. Id:{Id} Error:{Error}", id, se.Message); se.MapThrow(); throw; } } }
public async Task <ConceptTree> GetTreetopAsync() { log.LogInformation("Getting root Concepts and PanelFilters"); using (var cn = new SqlConnection(opts.ConnectionString)) { await cn.OpenAsync(); var grid = await cn.QueryMultipleAsync( queryRootsPanelFilters, new { user = user.UUID, groups = GroupMembership.From(user), admin = user.IsAdmin }, commandTimeout : opts.DefaultTimeout, commandType : CommandType.StoredProcedure ); var roots = HydratedConceptReader.Read(grid); var filterRecords = grid.Read <PanelFilterRecord>(); var filters = filterRecords.Select(f => f.ToPanelFilter()); return(new ConceptTree { PanelFilters = filters, Concepts = roots }); } }
public async Task <IEnumerable <Concept> > GetWithParentsAsync(HashSet <Guid> ids) { log.LogInformation("Getting parent concepts for Ids:{Ids}", ids); using (var cn = new SqlConnection(opts.ConnectionString)) { await cn.OpenAsync(); try { var grid = await cn.QueryMultipleAsync( queryParents, new { ids = ResourceIdTable.From(ids), user = user.UUID, groups = GroupMembership.From(user), admin = user.IsAdmin }, commandTimeout : opts.DefaultTimeout, commandType : CommandType.StoredProcedure ); return(HydratedConceptReader.Read(grid)); } catch (SqlException se) { log.LogError("Could not get rooted concepts of children ids {Ids}. Error:{Error}", ids, se.Message); se.MapThrow(); throw; } } }
public async Task <IEnumerable <Concept> > GetChildrenAsync(Guid parentId) { log.LogInformation("Getting child concepts. ParentId:{ParentId}", parentId); using (var cn = new SqlConnection(opts.ConnectionString)) { await cn.OpenAsync(); try { var grid = await cn.QueryMultipleAsync( queryChildren, new { parentId, user = user.UUID, groups = GroupMembership.From(user), admin = user.IsAdmin }, commandTimeout : opts.DefaultTimeout, commandType : CommandType.StoredProcedure ); return(HydratedConceptReader.Read(grid)); } catch (SqlException se) { log.LogError("Could not get child concepts. ParentId:{ParentId} Error:{Error}", parentId, se.Message); se.MapThrow(); throw; } } }
public static PreflightConcepts ReadConcepts(SqlMapper.GridReader grid) { var preflight = grid.Read <ConceptPreflightCheckResultRecord>(); var concepts = HydratedConceptReader.Read(grid); return(new PreflightConcepts { PreflightCheck = new ConceptPreflightCheck { Results = preflight.Select(p => p.ConceptPreflightCheckResult()) }, Concepts = concepts?.ToArray() }); }
public async Task <IEnumerable <Concept> > GetRootsAsync() { log.LogInformation("Getting root Concepts"); using (var cn = new SqlConnection(opts.ConnectionString)) { await cn.OpenAsync(); var grid = await cn.QueryMultipleAsync( queryRoots, new { user = user.UUID, groups = GroupMembership.From(user), admin = user.IsAdmin }, commandTimeout : opts.DefaultTimeout, commandType : CommandType.StoredProcedure ); return(HydratedConceptReader.Read(grid)); } }
public async Task <IEnumerable <Concept> > GetAsync(HashSet <Guid> ids) { log.LogInformation("Getting Concepts. Ids:{Ids}", ids); using (var cn = new SqlConnection(opts.ConnectionString)) { await cn.OpenAsync(); var grid = await cn.QueryMultipleAsync( queryMany, new { ids = ResourceIdTable.From(ids), user = user.UUID, groups = GroupMembership.From(user), admin = user.IsAdmin }, commandTimeout : opts.DefaultTimeout, commandType : CommandType.StoredProcedure ); return(HydratedConceptReader.Read(grid)); } }
public async Task <IEnumerable <Concept> > GetWithParentsBySearchTermAsync(Guid?rootId, string[] terms) { log.LogInformation("Getting parent concepts by Search Terms:{terms}", terms); using (var cn = new SqlConnection(opts.ConnectionString)) { await cn.OpenAsync(); var grid = await cn.QueryMultipleAsync( queryParentsBySearchTerm, new { terms = SearchTermTable.From(terms), rootId, user = user.UUID, groups = GroupMembership.From(user), admin = user.IsAdmin }, commandTimeout : opts.DefaultTimeout, commandType : CommandType.StoredProcedure ); return(HydratedConceptReader.Read(grid)); } }