private async Task <string> GetCalculatedPropertyAsync(string name) { string sql = null; if (name == "CommentsUnapproved") { using (DataProvider.BlogCommentDataProvider commentDP = new DataProvider.BlogCommentDataProvider(-1)) {// we don't know the entry, but it's not needed sql = "SELECT COUNT(*) FROM $BlogComments$ WHERE ($BlogComments$.\"EntryIdentity\" = $ThisTable$.\"Identity\") AND ($ThisTable$.\"Published\" = True) AND ($BlogComments$.\"Deleted\" = False) AND ($BlogComments$.\"Approved\" = False)"; IPostgreSQLTableInfo info = await commentDP.GetDataProvider().GetIPostgreSQLTableInfoAsync(); sql = info.ReplaceWithTableName(sql, "$BlogComments$"); sql = ReplaceWithTableName(sql, "$ThisTable$"); } } else if (name == "Comments") { using (DataProvider.BlogCommentDataProvider commentDP = new DataProvider.BlogCommentDataProvider(-1)) {// we don't know the entry, but it's not needed sql = "SELECT COUNT(*) FROM $BlogComments$ WHERE ($BlogComments$.\"EntryIdentity\" = $ThisTable$.\"Identity\") AND ($ThisTable$.\"Published\" = True)"; IPostgreSQLTableInfo info = await commentDP.GetDataProvider().GetIPostgreSQLTableInfoAsync(); sql = info.ReplaceWithTableName(sql, "$BlogComments$"); sql = ReplaceWithTableName(sql, "$ThisTable$"); } } else { throw new InternalError("Unexpected property {0}", name); } return(sql); }
public async Task RemoveUnusedUrlsAsync(DataProvider.SearchDataProvider searchDP) //$$$$ { using (DataProvider.SearchDataUrlDataProvider searchUrlDP = new DataProvider.SearchDataUrlDataProvider()) { string sql = @" DELETE FROM {UrlTableName} USING {TableName} WHERE {UrlTableName}.""SearchDataUrlId"" = {TableName}.""SearchDataUrlId"" AND {TableName}.""SearchDataUrlId"" IS NULL"; IPostgreSQLTableInfo info = await searchUrlDP.GetDataProvider().GetIPostgreSQLTableInfoAsync(); sql = sql.Replace("{UrlTableName}", SQLBuilder.WrapIdentifier(info.GetTableName())); await Direct_QueryAsync(sql); } }