Exemplo n.º 1
0
        public async Task <QuerySaveResult> InitialSaveAsync(QuerySave query)
        {
            var urn        = QueryUrn.Create(query.QueryId);
            var conceptids = query.Resources.Concepts.Select(c => c.Id.Value).Where(c => c != Guid.Empty);
            var queryids   = query.Resources.Queries.Select(q => q.Id.Value);

            using (var cn = new SqlConnection(dbOpts.ConnectionString))
            {
                await cn.OpenAsync();

                var qsr = await cn.QueryFirstOrDefaultAsync <QuerySaveResultRecord>(
                    initialQuerySave,
                    new
                {
                    queryid    = query.QueryId,
                    urn        = urn.ToString(),
                    name       = query.Name,
                    category   = query.Category,
                    conceptids = ResourceIdTable.From(conceptids),
                    queryids   = ResourceIdTable.From(queryids),
                    definition = query.Definition,
                    user       = user.UUID
                },
                    commandType : CommandType.StoredProcedure,
                    commandTimeout : dbOpts.DefaultTimeout
                    );

                if (qsr == null)
                {
                    return(null);
                }

                return(new QuerySaveResult(query.QueryId, QueryUrn.From(qsr.UniversalId), qsr.Ver));
            }
        }
Exemplo n.º 2
0
        public void QueryUrn_Create_Ok()
        {
            var id = Guid.NewGuid();

            var urn = QueryUrn.Create(id);

            Assert.Contains(id.ToString(), urn.ToString());
        }
Exemplo n.º 3
0
        async Task <QuerySaveResult> InitialSave(QuerySave query)
        {
            var urn        = QueryUrn.Create(query.QueryId);
            var conceptids = query.Resources.Concepts.Select(c => c.Id.Value);
            var queryids   = query.Resources.Queries.Select(q => q.Id.Value);

            try
            {
                using (var cn = new SqlConnection(dbOpts.ConnectionString))
                {
                    await cn.OpenAsync();

                    var qsr = await cn.QueryFirstOrDefaultAsync <QuerySaveResultRecord>(
                        initialQuerySave,
                        new
                    {
                        queryid    = query.QueryId,
                        urn        = urn.ToString(),
                        name       = query.Name,
                        category   = query.Category,
                        conceptids = ResourceIdTable.From(conceptids),
                        queryids   = ResourceIdTable.From(queryids),
                        definition = query.Definition,
                        user       = user.UUID
                    },
                        commandType : CommandType.StoredProcedure,
                        commandTimeout : dbOpts.DefaultTimeout
                        );

                    if (qsr == null)
                    {
                        return(null);
                    }

                    return(new QuerySaveResult(query.QueryId, QueryUrn.From(qsr.UniversalId), qsr.Ver));
                }
            }
            catch (SqlException se)
            {
                logger.LogError("Could not save query. Query:{@Query} Code:{Code} Error:{Error}", query, se.ErrorCode, se.Message);
                se.MapThrow();
                throw;
            }
        }