Example #1
0
        async Task <AdminDatasetQuery> UpdateDynamicDatasetQueryAsync(AdminDatasetQuery query)
        {
            using (var cn = new SqlConnection(opts.ConnectionString))
            {
                await cn.OpenAsync();

                var grid = await cn.QueryMultipleAsync(
                    Sql.UpdateDynamic,
                    new
                {
                    id           = query.Id,
                    name         = query.Name,
                    catid        = query.CategoryId,
                    desc         = query.Description,
                    sql          = query.SqlStatement,
                    isEnc        = query.IsEncounterBased,
                    schema       = DynamicDatasetSchemaFieldSerde.Serialize(query.Schema),
                    sqlDate      = query.SqlFieldDate,
                    sqlValString = query.SqlFieldValueString,
                    sqlValNum    = query.SqlFieldValueNumeric,
                    tags         = DatasetQueryTagTable.From(query.Tags),
                    constraints  = ResourceConstraintTable.From(query),
                    user         = user.UUID
                },
                    commandType : CommandType.StoredProcedure,
                    commandTimeout : opts.DefaultTimeout);

                var updated = DbReader.Read(grid);
                return(updated);
            }
        }
Example #2
0
            public static AdminDatasetQuery Read(SqlMapper.GridReader grid)
            {
                var query = grid.ReadFirstOrDefault <DatasetQueryRecord>();

                if (query == null)
                {
                    return(null);
                }
                var tags = grid.Read <DatasetQueryTag>();
                var cons = grid.Read <DatasetQueryConstraintRecord>();

                return(new AdminDatasetQuery
                {
                    Id = query.Id,
                    UniversalId = DatasetQueryUrn.From(query.UniversalId),
                    Shape = (Shape)query.Shape,
                    Name = query.Name,
                    CategoryId = query.CategoryId,
                    Description = query.Description,
                    IsEncounterBased = query.IsEncounterBased,
                    SqlStatement = query.SqlStatement,
                    SqlFieldDate = query.SqlFieldDate,
                    SqlFieldValueString = query.SqlFieldValueString,
                    SqlFieldValueNumeric = query.SqlFieldValueNumeric,
                    Schema = DynamicDatasetSchemaFieldSerde.Deserialize(query.Schema),
                    Created = query.Created,
                    CreatedBy = query.CreatedBy,
                    Updated = query.Updated,
                    UpdatedBy = query.UpdatedBy,
                    Tags = tags.Select(t => t.Tag),
                    Constraints = cons.Select(c => c.Constraint())
                });
            }