public async Task Do(string[] args) { foreach (var item in await _connection.QueryAsync <CollectionItem>("select * from \"CollectionItems\"")) { var entity = await _entityStore.GetEntity(item.ElementId); var newState = DeliveryService.IsPublic(entity.Data) || entity.Data.Type.Contains("https://www.w3.org/ns/activitystreams#Person"); if (newState != item.IsPublic) { await _connection.ExecuteAsync("update \"CollectionItems\" set \"IsPublic\" = @IsPublic where \"CollectionItemId\" = @Id", new { IsPublic = newState, Id = item.CollectionItemId }); } } }
public async Task <int> Count(string id) { var entity = await _entityStore.GetEntity(id, true); if (entity.IsOwner) { return(await _connection.ExecuteScalarAsync <int>("select count(*) from \"CollectionItems\" where \"CollectionId\" = @Id", new { Id = entity.DbId })); } var data = entity.Data; if (data["totalItems"].Any()) { var prim = data["totalItems"].Single().Primitive; if (prim is string) { return(int.Parse((string)prim)); } return((int)prim); } return(-1); }