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 = 1) AND ($BlogComments$.Deleted = 0) AND ($BlogComments$.Approved = 0)"; ISQLTableInfo info = await commentDP.GetDataProvider().GetISQLTableInfoAsync(); 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 = 1)"; ISQLTableInfo info = await commentDP.GetDataProvider().GetISQLTableInfoAsync(); 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 {UrlTableName} FROM {UrlTableName} LEFT JOIN {TableName} ON {UrlTableName}.[SearchDataUrlId] = {TableName}.[SearchDataUrlId] WHERE {TableName}.[SearchDataUrlId] IS NULL"; ISQLTableInfo info = await searchUrlDP.GetDataProvider().GetISQLTableInfoAsync(); sql = sql.Replace("{UrlTableName}", SQLBuilder.WrapIdentifier(info.GetTableName())); await Direct_QueryAsync(sql); } }