Пример #1
0
            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);
            }
Пример #2
0
            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);
                }
            }