示例#1
0
        public async Task <PreflightResources> GetResourcesByUniversalIdsAsync(ResourceRefs refs)
        {
            using (var cn = new SqlConnection(opts.ConnectionString))
            {
                await cn.OpenAsync();

                var quids = refs.Queries.Select(q => q.UniversalId.ToString()).ToHashSet();
                var cuids = refs.Concepts.Select(q => q.UniversalId.ToString()).ToHashSet();
                var grid  = await cn.QueryMultipleAsync(
                    ResourcePreflightSql.byUIds,
                    new {
                    quids       = ResourceUniversalIdTable.From(quids),
                    cuids       = ResourceUniversalIdTable.From(cuids),
                    user        = user.UUID,
                    groups      = GroupMembership.From(user),
                    sessionType = user.SessionType,
                    admin       = user.IsAdmin
                },
                    commandTimeout : opts.DefaultTimeout,
                    commandType : CommandType.StoredProcedure
                    );

                return(PreflightReader.ReadResourcesByUId(grid, refs.Queries));
            }
        }
示例#2
0
        async Task <PreflightConcepts> GetByUIdsAsync(SqlConnection cn, HashSet <string> conceptUids)
        {
            var grid = await cn.QueryMultipleAsync(
                ConceptPreflightSql.manyUIds,
                new { uids = ResourceUniversalIdTable.From(conceptUids), user = user.UUID, groups = GroupMembership.From(user), admin = user.IsAdmin },
                commandTimeout : opts.DefaultTimeout,
                commandType : CommandType.StoredProcedure
                );

            return(PreflightReader.ReadConcepts(grid));
        }
示例#3
0
        public async Task <IEnumerable <Concept> > GetAsync(HashSet <string> universalIds)
        {
            using (var cn = new SqlConnection(opts.ConnectionString))
            {
                await cn.OpenAsync();

                var grid = await cn.QueryMultipleAsync(
                    queryManyUniversal,
                    new
                {
                    uids   = ResourceUniversalIdTable.From(universalIds),
                    user   = user.UUID,
                    groups = GroupMembership.From(user),
                    admin  = user.IsAdmin
                },
                    commandTimeout : opts.DefaultTimeout,
                    commandType : CommandType.StoredProcedure
                    );

                return(HydratedConceptReader.Read(grid));
            }
        }
示例#4
0
        public async Task <PreflightConcepts> GetConceptsByUniversalIdsAsync(HashSet <string> conceptUids)
        {
            using (var cn = new SqlConnection(opts.ConnectionString))
            {
                await cn.OpenAsync();

                var grid = await cn.QueryMultipleAsync(
                    ConceptPreflightSql.manyUIds,
                    new {
                    uids        = ResourceUniversalIdTable.From(conceptUids),
                    user        = user.UUID,
                    groups      = GroupMembership.From(user),
                    admin       = user.IsAdmin,
                    sessionType = user.SessionType
                },
                    commandTimeout : opts.DefaultTimeout,
                    commandType : CommandType.StoredProcedure
                    );

                return(PreflightReader.ReadConcepts(grid));
            }
        }