From a89fb9a74ee6004d3c4a708b0000f6a1ef0f1027 Mon Sep 17 00:00:00 2001 From: Sami Kuhmonen Date: Wed, 21 Jun 2017 23:05:42 +0300 Subject: [PATCH] PostgreSQL support --- .../Providers/DbProvider/DbBlogProvider.cs | 344 +++++------ .../DbProvider/DbMembershipProvider.cs | 18 +- .../Providers/DbProvider/DbRoleProvider.cs | 28 +- .../BlogEngine.NET/BlogEngine.NET.csproj | 9 +- BlogEngine/BlogEngine.NET/Web.Config | 22 +- BlogEngine/BlogEngine.NET/packages.config | 1 + .../BlogEngine.NET/setup/PostgreSQL/Setup.sql | 552 ++++++++++++++++++ README.md | 20 +- 8 files changed, 792 insertions(+), 202 deletions(-) create mode 100644 BlogEngine/BlogEngine.NET/setup/PostgreSQL/Setup.sql diff --git a/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbBlogProvider.cs b/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbBlogProvider.cs index dcdc7ee73..91e9573f1 100644 --- a/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbBlogProvider.cs +++ b/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbBlogProvider.cs @@ -236,7 +236,7 @@ public override void DeleteBlog(Blog blog) var sqlQuery = $"DELETE FROM {tablePrefix}Blogs WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } @@ -275,133 +275,133 @@ public override bool DeleteBlogStorageContainer(Blog blog) var sqlQuery = $"DELETE FROM {tablePrefix}PostTag WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}PostNotify WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}PostComment WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}PostCategory WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}Posts WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}RightRoles WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}Profiles WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}UserRoles WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}Roles WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}Rights WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}Users WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}Pages WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}StopWords WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}Settings WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}Referrers WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}PingService WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}DataStoreSettings WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}BlogRollItems WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } sqlQuery = $"DELETE FROM {tablePrefix}Categories WHERE BlogId = {parmPrefix}BlogId"; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); cmd.ExecuteNonQuery(); } } @@ -454,8 +454,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}BlogRollItems " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -466,8 +466,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}Categories " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -478,8 +478,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}DataStoreSettings " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -490,8 +490,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}Pages " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -502,8 +502,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}PingService " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -514,8 +514,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}Profiles " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -526,8 +526,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}Referrers " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -538,8 +538,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}Rights " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -550,8 +550,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}RightRoles " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -562,8 +562,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}Settings " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -574,8 +574,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}StopWords " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -586,8 +586,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}Posts " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -598,8 +598,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}PostCategory " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -610,8 +610,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}PostComment " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -622,8 +622,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}PostNotify " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -634,8 +634,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}PostTag " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -651,8 +651,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}Users " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -663,8 +663,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}Roles " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -675,8 +675,8 @@ public override bool SetupBlogFromExistingBlog(Blog existingBlog, Blog newBlog) " FROM {0}UserRoles " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } } @@ -719,8 +719,8 @@ public override bool SetupNewBlog(Blog newBlog, string userName, string email, s " FROM {0}PingService " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -731,8 +731,8 @@ public override bool SetupNewBlog(Blog newBlog, string userName, string email, s " FROM {0}Rights " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } @@ -743,15 +743,15 @@ public override bool SetupNewBlog(Blog newBlog, string userName, string email, s " FROM {0}RightRoles " + " WHERE BlogID = {1}existingblogid ", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id.ToString(), System.Data.DbType.String)); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("newblogid"), newBlog.Id, System.Data.DbType.Guid)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("existingblogid"), existingBlog.Id)); cmd.ExecuteNonQuery(); } // be_Settings using (var cmd = conn.CreateTextCommand($"DELETE FROM {tablePrefix}Settings WHERE BlogId = {parmPrefix}blogid")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id)); cmd.ExecuteNonQuery(); var settings = BlogGeneratorConfig.NewBlogSettings; var setValue = ""; @@ -765,7 +765,7 @@ public override bool SetupNewBlog(Blog newBlog, string userName, string email, s if (setValue == "[BlogName]") setValue = newBlog.Name; if (setValue == "[Description]") setValue = BlogGeneratorConfig.BlogDescription; - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), key)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("value"), setValue)); cmd.ExecuteNonQuery(); @@ -779,7 +779,7 @@ public override bool SetupNewBlog(Blog newBlog, string userName, string email, s using (var cmd = conn.CreateTextCommand(sqlQuery)) { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id)); parms.Add(conn.CreateParameter(FormatParamName("catid"), catId)); parms.Add(conn.CreateParameter(FormatParamName("catname"), "General")); parms.Add(conn.CreateParameter(FormatParamName("description"), "General topics")); @@ -804,8 +804,8 @@ public override bool SetupNewBlog(Blog newBlog, string userName, string email, s // be_posttags using (var cmd = conn.CreateTextCommand(string.Format("INSERT INTO {0}PostTag (BlogID, PostID, Tag) VALUES ({1}blogid, {1}id, {1}tag)", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("tag"), "welcome")); cmd.ExecuteNonQuery(); } @@ -813,8 +813,8 @@ public override bool SetupNewBlog(Blog newBlog, string userName, string email, s // be_postcategories using (var cmd = conn.CreateTextCommand(string.Format("INSERT INTO {0}PostCategory (BlogID, PostID, CategoryID) VALUES ({1}blogid, {1}id, {1}cat)", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("cat"), catId)); cmd.ExecuteNonQuery(); } @@ -823,7 +823,7 @@ public override bool SetupNewBlog(Blog newBlog, string userName, string email, s string widgetZone = BlogGeneratorConfig.WidgetZone; using (var cmd = conn.CreateTextCommand(string.Format("INSERT INTO {0}DataStoreSettings (BlogId, ExtensionType, ExtensionId, Settings) VALUES ({1}blogid, {1}type, {1}id, {1}file)", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("type"), 1)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), "be_WIDGET_ZONE")); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("file"), widgetZone)); @@ -835,7 +835,7 @@ public override bool SetupNewBlog(Blog newBlog, string userName, string email, s using (var cmd = conn.CreateTextCommand(sqlQuery)) { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id)); parms.Add(conn.CreateParameter(FormatParamName("name"), userName)); parms.Add(conn.CreateParameter(FormatParamName("pwd"), Utils.HashPassword(password))); parms.Add(conn.CreateParameter(FormatParamName("email"), email)); @@ -846,13 +846,13 @@ public override bool SetupNewBlog(Blog newBlog, string userName, string email, s // be_Roles using (var cmd = conn.CreateTextCommand(string.Format("INSERT INTO {0}Roles (BlogID, role) VALUES ({1}blogid, {1}role)", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("role"), "Administrators")); cmd.ExecuteNonQuery(); } using (var cmd = conn.CreateTextCommand(string.Format("INSERT INTO {0}Roles (BlogID, role) VALUES ({1}blogid, {1}role)", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("role"), "Anonymous")); cmd.ExecuteNonQuery(); } @@ -860,7 +860,7 @@ public override bool SetupNewBlog(Blog newBlog, string userName, string email, s // be_UserRoles using (var cmd = conn.CreateTextCommand(string.Format("INSERT INTO {0}UserRoles (BlogID, UserName, Role) VALUES ({1}blogID, {1}username, {1}role)", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogID"), newBlog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), newBlog.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("username"), userName.Trim())); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("role"), "Administrators")); cmd.ExecuteNonQuery(); @@ -891,7 +891,7 @@ public override List FillPosts() { using (var cmd = conn.CreateTextCommand($"SELECT PostID FROM {tablePrefix}Posts WHERE BlogID = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -930,8 +930,8 @@ public override Post SelectPost(Guid id) var sqlQuery = string.Format("SELECT PostID, Title, Description, PostContent, DateCreated, DateModified, Author, IsPublished, IsCommentEnabled, Raters, Rating, Slug, IsDeleted FROM {0}Posts WHERE BlogID = {1}blogid AND PostID = {1}id", this.tablePrefix, this.parmPrefix); using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), id)); using (var rdr = cmd.ExecuteReader()) { @@ -1125,8 +1125,8 @@ public override void InsertPost(Post post) { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("blogid"), blogId.ToString())); - parms.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), blogId)); + parms.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); parms.Add(conn.CreateParameter(FormatParamName("title"), post.Title)); parms.Add(conn.CreateParameter(FormatParamName("desc"), (post.Description ?? string.Empty))); parms.Add(conn.CreateParameter(FormatParamName("content"), post.Content)); @@ -1181,8 +1181,8 @@ public override void UpdatePost(Post post) var p = cmd.Parameters; - p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - p.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + p.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); p.Add(conn.CreateParameter(FormatParamName("title"), post.Title)); p.Add(conn.CreateParameter(FormatParamName("desc"), (post.Description ?? string.Empty))); p.Add(conn.CreateParameter(FormatParamName("content"), post.Content)); @@ -1232,8 +1232,8 @@ public override void DeletePost(Post post) using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.ExecuteNonQuery(); } @@ -1241,8 +1241,8 @@ public override void DeletePost(Post post) using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.ExecuteNonQuery(); } @@ -1250,8 +1250,8 @@ public override void DeletePost(Post post) using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.ExecuteNonQuery(); } @@ -1259,8 +1259,8 @@ public override void DeletePost(Post post) using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.ExecuteNonQuery(); } @@ -1268,8 +1268,8 @@ public override void DeletePost(Post post) using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.ExecuteNonQuery(); } @@ -1297,7 +1297,7 @@ public override List FillPages() { using (var cmd = conn.CreateTextCommand($"SELECT PageID FROM {tablePrefix}Pages WHERE BlogID = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -1334,8 +1334,8 @@ public override Page SelectPage(Guid id) using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), id)); using (var rdr = cmd.ExecuteReader()) { @@ -1421,8 +1421,8 @@ public override void InsertPage(Page page) { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - parms.Add(conn.CreateParameter(FormatParamName("id"), page.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + parms.Add(conn.CreateParameter(FormatParamName("id"), page.Id)); parms.Add(conn.CreateParameter(FormatParamName("title"), page.Title)); parms.Add(conn.CreateParameter(FormatParamName("desc"), page.Description)); parms.Add(conn.CreateParameter(FormatParamName("content"), page.Content)); @@ -1461,8 +1461,8 @@ public override void UpdatePage(Page page) { var p = cmd.Parameters; - p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - p.Add(conn.CreateParameter(FormatParamName("id"), page.Id.ToString())); + p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + p.Add(conn.CreateParameter(FormatParamName("id"), page.Id)); p.Add(conn.CreateParameter(FormatParamName("title"), page.Title)); p.Add(conn.CreateParameter(FormatParamName("desc"), page.Description)); p.Add(conn.CreateParameter(FormatParamName("content"), page.Content)); @@ -1497,8 +1497,8 @@ public override void DeletePage(Page page) { using (var cmd = conn.CreateTextCommand(string.Format("DELETE FROM {0}Pages WHERE BlogID = {1}blogid AND PageID = {1}id", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), page.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), page.Id)); cmd.ExecuteNonQuery(); } } @@ -1525,7 +1525,7 @@ public override List FillBlogRoll() { using (var cmd = conn.CreateTextCommand($"SELECT BlogRollId, Title, Description, BlogUrl, FeedUrl, Xfn, SortIndex FROM {tablePrefix}BlogRollItems WHERE BlogId = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -1641,8 +1641,8 @@ public override void DeleteBlogRollItem(BlogRollItem blogRollItem) using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogRollId"), blogRollItem.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogRollId"), blogRollItem.Id)); cmd.ExecuteNonQuery(); } @@ -1670,7 +1670,7 @@ public override List FillCategories(Blog blog) { using (var cmd = conn.CreateTextCommand($"SELECT CategoryID, CategoryName, description, ParentID FROM {tablePrefix}Categories WHERE BlogId = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -1736,8 +1736,8 @@ public override void InsertCategory(Category category) using (var cmd = conn.CreateTextCommand(sqlQuery)) { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - parms.Add(conn.CreateParameter(FormatParamName("catid"), category.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + parms.Add(conn.CreateParameter(FormatParamName("catid"), category.Id)); parms.Add(conn.CreateParameter(FormatParamName("catname"), category.Title)); parms.Add(conn.CreateParameter(FormatParamName("description"), category.Description)); parms.Add(conn.CreateParameter(FormatParamName("parentid"), (category.Parent == null ? (object)DBNull.Value : category.Parent.ToString()))); @@ -1772,8 +1772,8 @@ public override void UpdateCategory(Category category) var p = cmd.Parameters; - p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - p.Add(conn.CreateParameter(FormatParamName("catid"), category.Id.ToString())); + p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + p.Add(conn.CreateParameter(FormatParamName("catid"), category.Id)); p.Add(conn.CreateParameter(FormatParamName("catname"), category.Title)); p.Add(conn.CreateParameter(FormatParamName("description"), category.Description)); p.Add(conn.CreateParameter(FormatParamName("parentid"), (category.Parent == null ? (object)DBNull.Value : category.Parent.ToString()))); @@ -1803,8 +1803,8 @@ public override void DeleteCategory(Category category) using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("catid"), category.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("catid"), category.Id)); cmd.ExecuteNonQuery(); } @@ -1812,8 +1812,8 @@ public override void DeleteCategory(Category category) using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("catid"), category.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("catid"), category.Id)); cmd.ExecuteNonQuery(); } } @@ -1842,7 +1842,7 @@ public override List FillReferrers() { using (var cmd = conn.CreateTextCommand($"SELECT ReferrerId, ReferralDay, ReferrerUrl, ReferralCount, Url, IsSpam FROM {tablePrefix}Referrers WHERE BlogId = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -1960,7 +1960,7 @@ public override StringCollection LoadPingServices() { using (var cmd = conn.CreateTextCommand($"SELECT Link FROM {tablePrefix}PingService WHERE BlogID = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -1999,7 +1999,7 @@ public override void SavePingServices(StringCollection services) using (var cmd = conn.CreateTextCommand($"DELETE FROM {tablePrefix}PingService WHERE BlogID = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.ExecuteNonQuery(); foreach (var service in services) @@ -2007,7 +2007,7 @@ public override void SavePingServices(StringCollection services) cmd.CommandText = string.Format("INSERT INTO {0}PingService (BlogID, Link) VALUES ({1}blogid, {1}link)", this.tablePrefix, this.parmPrefix); cmd.Parameters.Clear(); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("link"), service)); cmd.ExecuteNonQuery(); @@ -2047,8 +2047,8 @@ public override object LoadFromDataStore(ExtensionType extensionType, string ext { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - parms.Add(conn.CreateParameter(FormatParamName("etype"), extensionType.GetHashCode())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + parms.Add(conn.CreateParameter(FormatParamName("etype"), extensionType.GetHashCode().ToString())); parms.Add(conn.CreateParameter(FormatParamName("eid"), extensionId)); o = cmd.ExecuteScalar(); @@ -2099,8 +2099,8 @@ public override void SaveToDataStore(ExtensionType extensionType, string extensi var p = cmd.Parameters; - p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - p.Add(conn.CreateParameter(FormatParamName("type"), extensionType.GetHashCode())); + p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + p.Add(conn.CreateParameter(FormatParamName("type"), extensionType.GetHashCode().ToString())); p.Add(conn.CreateParameter(FormatParamName("id"), extensionId)); cmd.ExecuteNonQuery(); @@ -2135,7 +2135,7 @@ public override void RemoveFromDataStore(ExtensionType extensionType, string ext { var p = cmd.Parameters; - p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); p.Add(conn.CreateParameter(FormatParamName("type"), extensionType.GetHashCode())); p.Add(conn.CreateParameter(FormatParamName("id"), extensionId)); @@ -2166,7 +2166,7 @@ public override StringDictionary LoadSettings(Blog blog) { using (var cmd = conn.CreateTextCommand($"SELECT SettingName, SettingValue FROM {tablePrefix}Settings WHERE BlogId = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), blog.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -2204,7 +2204,7 @@ public override void SaveSettings(StringDictionary settings) { using (var cmd = conn.CreateTextCommand($"DELETE FROM {tablePrefix}Settings WHERE BlogId = {parmPrefix}blogid")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.ExecuteNonQuery(); foreach (string key in settings.Keys) @@ -2212,7 +2212,7 @@ public override void SaveSettings(StringDictionary settings) cmd.CommandText = string.Format("INSERT INTO {0}Settings (BlogId, SettingName, SettingValue) VALUES ({1}blogid, {1}name, {1}value)", this.tablePrefix, this.parmPrefix); cmd.Parameters.Clear(); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), key)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("value"), settings[key])); @@ -2242,7 +2242,7 @@ public override IDictionary> FillRights() var sqlQuery = $"SELECT RightName FROM {tablePrefix}Rights WHERE BlogId = {parmPrefix}blogid "; using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -2297,7 +2297,7 @@ public override void SaveRights(IEnumerable rights) { using (var cmd = conn.CreateTextCommand($"DELETE FROM {tablePrefix}Rights WHERE BlogId = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.ExecuteNonQuery(); cmd.CommandText = $"DELETE FROM {tablePrefix}RightRoles WHERE BlogId = {parmPrefix}blogid "; @@ -2308,7 +2308,7 @@ public override void SaveRights(IEnumerable rights) cmd.CommandText = string.Format("INSERT INTO {0}Rights (BlogId, RightName) VALUES ({1}BlogId, {1}RightName)", this.tablePrefix, this.parmPrefix); cmd.Parameters.Clear(); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("RightName"), right.Name)); cmd.ExecuteNonQuery(); @@ -2318,7 +2318,7 @@ public override void SaveRights(IEnumerable rights) cmd.CommandText = string.Format("INSERT INTO {0}RightRoles (BlogId, RightName, Role) VALUES ({1}BlogId, {1}RightName, {1}Role)", this.tablePrefix, this.parmPrefix); cmd.Parameters.Clear(); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("RightName"), right.Name)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("Role"), role)); @@ -2366,7 +2366,7 @@ public override List FillProfiles() { using (var cmd = conn.CreateTextCommand($"SELECT UserName FROM {tablePrefix}Profiles WHERE BlogID = {parmPrefix}blogid GROUP BY UserName")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -2418,7 +2418,7 @@ public override AuthorProfile SelectProfile(string id) { using (var cmd = conn.CreateTextCommand(string.Format("SELECT SettingName, SettingValue FROM {0}Profiles WHERE BlogID = {1}blogid AND UserName = {1}name", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), id)); using (var rdr = cmd.ExecuteReader()) @@ -2633,7 +2633,7 @@ public override void UpdateProfile(AuthorProfile profile) cmd.CommandText = sqlQuery; cmd.Parameters.Clear(); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("user"), profile.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), key)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("value"), dic[key])); @@ -2656,7 +2656,7 @@ public override void DeleteProfile(AuthorProfile profile) { using (var cmd = conn.CreateTextCommand(string.Format("DELETE FROM {0}Profiles WHERE BlogID = {1}blogid AND UserName = {1}name", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), profile.Id)); cmd.ExecuteNonQuery(); } @@ -2844,6 +2844,12 @@ public override void SaveCustomField(CustomField field) q2 = "insert into {0}CustomFields (CustomType, BlogId, ObjectId, `Key`, `Value`, `Attribute`) values ({1}customtype, {1}blogid, {1}objectid, {1}key, {1}value, {1}attribute)"; q3 = "update {0}CustomFields set Value = {1}value, Attribute = {1}attribute where CustomType = {1}customtype and BlogId = {1}blogid and ObjectId = {1}objectid and `Key` = {1}key"; } + else if (conPrv == "Npgsql") + { + q1 = "select count(*) from {0}CustomFields where CustomType = {1}customtype and BlogId = {1}blogid and ObjectId = {1}objectid and Key = {1}key"; + q2 = "insert into {0}CustomFields (CustomType, BlogId, ObjectId, Key, Value, Attribute) values ({1}customtype, {1}blogid, {1}objectid, {1}key, {1}value, {1}attribute)"; + q3 = "update {0}CustomFields set Value = {1}value, Attribute = {1}attribute where CustomType = {1}customtype and BlogId = {1}blogid and ObjectId = {1}objectid and Key = {1}key"; + } var sqlQuery = string.Format(q1, this.tablePrefix, this.parmPrefix); object cnt; @@ -2867,7 +2873,7 @@ public override void SaveCustomField(CustomField field) { var p = cmd.Parameters; p.Add(conn.CreateParameter(FormatParamName("customtype"), field.CustomType)); - p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); p.Add(conn.CreateParameter(FormatParamName("objectid"), field.ObjectId)); p.Add(conn.CreateParameter(FormatParamName("key"), field.Key)); p.Add(conn.CreateParameter(FormatParamName("value"), field.Value)); @@ -2890,11 +2896,15 @@ public override List FillCustomFields() { q = "SELECT CustomType, BlogId, ObjectId, `Key`, `Value`, `Attribute` FROM {0}CustomFields where BlogId = '{1}'"; } + else if (conPrv == "Npgsql") + { + q = "SELECT CustomType, BlogId, ObjectId, Key, Value, Attribute FROM {0}CustomFields where BlogId = '{1}'::uuid"; + } using (var conn = this.CreateConnection()) { if (conn.HasConnection) { - using (var cmd = conn.CreateTextCommand(string.Format(q, tablePrefix, Blog.CurrentInstance.Id.ToString()))) + using (var cmd = conn.CreateTextCommand(string.Format(q, tablePrefix, Blog.CurrentInstance.Id))) { using (var rdr = cmd.ExecuteReader()) { @@ -2933,11 +2943,15 @@ public override void DeleteCustomField(CustomField field) { sqlQuery = "delete from {0}CustomFields where CustomType = {1}customtype and BlogId = {1}blogid and ObjectId = {1}objectid and `Key` = {1}key"; } + if (conPrv == "Npgsql") + { + sqlQuery = "delete from {0}CustomFields where CustomType = {1}customtype and BlogId = {1}blogid and ObjectId = {1}objectid and Key = {1}key"; + } using (var cmd = conn.CreateTextCommand(string.Format(sqlQuery, this.tablePrefix, this.parmPrefix))) { var p = cmd.Parameters; p.Add(conn.CreateParameter(FormatParamName("customtype"), field.CustomType)); - p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + p.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); p.Add(conn.CreateParameter(FormatParamName("objectid"), field.ObjectId)); p.Add(conn.CreateParameter(FormatParamName("key"), field.Key)); cmd.ExecuteNonQuery(); @@ -2960,10 +2974,6 @@ public override void ClearCustomFields(string blogId, string customType, string { string conPrv = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["BlogEngine"].ProviderName; var sqlQuery = "delete from {0}CustomFields where CustomType = {1}customtype and BlogId = {1}blogid and ObjectId = {1}objectid"; - if (conPrv == "MySql.Data.MySqlClient") - { - sqlQuery = "delete from {0}CustomFields where CustomType = {1}customtype and BlogId = {1}blogid and ObjectId = {1}objectid"; - } using (var cmd = conn.CreateTextCommand(string.Format(sqlQuery, this.tablePrefix, this.parmPrefix))) { var p = cmd.Parameters; @@ -2994,7 +3004,7 @@ public override StringCollection LoadStopWords() { using (var cmd = conn.CreateTextCommand($"SELECT StopWord FROM {tablePrefix}StopWords WHERE BlogId = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -3052,8 +3062,8 @@ private void UpdateCategories(Post post, DbConnectionHelper conn) var sqlQuery = string.Format("DELETE FROM {0}PostCategory WHERE BlogID = {1}blogid AND PostID = {1}id", this.tablePrefix, this.parmPrefix); using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.ExecuteNonQuery(); @@ -3061,9 +3071,9 @@ private void UpdateCategories(Post post, DbConnectionHelper conn) { cmd.CommandText = string.Format("INSERT INTO {0}PostCategory (BlogID, PostID, CategoryID) VALUES ({1}blogid, {1}id, {1}cat)", this.tablePrefix, this.parmPrefix); cmd.Parameters.Clear(); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("cat"), cat.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("cat"), cat.Id)); cmd.ExecuteNonQuery(); } @@ -3087,8 +3097,8 @@ private void UpdateComments(Post post, DbConnectionHelper conn) var parms = cmd.Parameters; - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - parms.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + parms.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.ExecuteNonQuery(); @@ -3099,10 +3109,10 @@ private void UpdateComments(Post post, DbConnectionHelper conn) cmd.CommandText = sqlQuery; parms.Clear(); - parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - parms.Add(conn.CreateParameter(FormatParamName("postcommentid"), comment.Id.ToString())); - parms.Add(conn.CreateParameter(FormatParamName("parentid"), comment.ParentId.ToString())); - parms.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + parms.Add(conn.CreateParameter(FormatParamName("postcommentid"), comment.Id)); + parms.Add(conn.CreateParameter(FormatParamName("parentid"), comment.ParentId)); + parms.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); parms.Add(conn.CreateParameter(FormatParamName("date"), BlogSettings.Instance.ToUtc(comment.DateCreated))); parms.Add(conn.CreateParameter(FormatParamName("author"), comment.Author)); parms.Add(conn.CreateParameter(FormatParamName("email"), comment.Email)); @@ -3137,8 +3147,8 @@ private void UpdateNotify(Post post, DbConnectionHelper conn) { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - parms.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + parms.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.ExecuteNonQuery(); @@ -3147,8 +3157,8 @@ private void UpdateNotify(Post post, DbConnectionHelper conn) cmd.CommandText = string.Format("INSERT INTO {0}PostNotify (BlogID, PostID, NotifyAddress) VALUES ({1}blogid, {1}id, {1}notify)", this.tablePrefix, this.parmPrefix); parms.Clear(); - parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - parms.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + parms.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); parms.Add(conn.CreateParameter(FormatParamName("notify"), email)); cmd.ExecuteNonQuery(); @@ -3170,8 +3180,8 @@ private void UpdateTags(Post post, DbConnectionHelper conn) var sqlQuery = string.Format("DELETE FROM {0}PostTag WHERE BlogID = {1}blogid AND PostID = {1}id", this.tablePrefix, this.parmPrefix); using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.ExecuteNonQuery(); foreach (var tag in post.Tags) @@ -3179,8 +3189,8 @@ private void UpdateTags(Post post, DbConnectionHelper conn) cmd.CommandText = string.Format("INSERT INTO {0}PostTag (BlogID, PostID, Tag) VALUES ({1}blogid, {1}id, {1}tag)", this.tablePrefix, this.parmPrefix); cmd.Parameters.Clear(); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("id"), post.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("tag"), tag)); cmd.ExecuteNonQuery(); @@ -3205,8 +3215,8 @@ private void AddBlogRollParametersToCommand( { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("BlogId"), Blog.CurrentInstance.Id.ToString())); - parms.Add(conn.CreateParameter(FormatParamName("BlogRollId"), blogRollItem.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); + parms.Add(conn.CreateParameter(FormatParamName("BlogRollId"), blogRollItem.Id)); parms.Add(conn.CreateParameter(FormatParamName("Title"), blogRollItem.Title)); parms.Add(conn.CreateParameter(FormatParamName("Description"), blogRollItem.Description)); parms.Add(conn.CreateParameter(FormatParamName("BlogUrl"), (blogRollItem.BlogUrl != null ? (object)blogRollItem.BlogUrl.ToString() : DBNull.Value))); @@ -3231,7 +3241,7 @@ private void AddBlogParametersToCommand( Blog blog, DbConnectionHelper conn, DbCommand cmd) { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("BlogId"), blog.Id)); parms.Add(conn.CreateParameter(FormatParamName("BlogName"), blog.Name ?? string.Empty)); parms.Add(conn.CreateParameter(FormatParamName("Hostname"), blog.Hostname ?? string.Empty)); parms.Add(conn.CreateParameter(FormatParamName("IsAnyTextBeforeHostnameAccepted"), blog.IsAnyTextBeforeHostnameAccepted)); @@ -3258,8 +3268,8 @@ private void AddReferrersParametersToCommand(Referrer referrer, DbConnectionHelp { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter("BlogId", Blog.CurrentInstance.Id.ToString())); - parms.Add(conn.CreateParameter("ReferrerId", referrer.Id.ToString())); + parms.Add(conn.CreateParameter("BlogId", Blog.CurrentInstance.Id)); + parms.Add(conn.CreateParameter("ReferrerId", referrer.Id)); parms.Add(conn.CreateParameter(FormatParamName("ReferralDay"), referrer.Day)); parms.Add(conn.CreateParameter(FormatParamName("ReferrerUrl"), (referrer.ReferrerUrl != null ? (object)referrer.ReferrerUrl.ToString() : DBNull.Value))); parms.Add(conn.CreateParameter(FormatParamName("ReferralCount"), referrer.Count)); @@ -3280,7 +3290,7 @@ private void DeleteOldReferrers() { var cutoff = DateTime.Today.AddDays(-BlogSettings.Instance.NumberOfReferrerDays); - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("ReferralDay"), cutoff)); cmd.ExecuteNonQuery(); diff --git a/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbMembershipProvider.cs b/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbMembershipProvider.cs index 0851d2d03..19afd70c1 100644 --- a/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbMembershipProvider.cs +++ b/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbMembershipProvider.cs @@ -193,7 +193,7 @@ public override bool ChangePassword(string username, string oldPassword, string { // Check Old Password - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), username)); using (var rdr = cmd.ExecuteReader()) @@ -291,7 +291,7 @@ public override MembershipUser CreateUser( { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); parms.Add(conn.CreateParameter(FormatParamName("name"), username)); parms.Add(conn.CreateParameter(FormatParamName("pwd"), (this.passwordFormat == MembershipPasswordFormat.Hashed ? Utils.HashPassword(password) : password))); parms.Add(conn.CreateParameter(FormatParamName("email"), email)); @@ -324,7 +324,7 @@ public override bool DeleteUser(string username, bool deleteAllRelatedData) { using (var cmd = conn.CreateTextCommand(string.Format("DELETE FROM {0}Users WHERE blogId = {1}blogid AND userName = {1}name", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), username)); try @@ -410,7 +410,7 @@ public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize { using (var cmd = conn.CreateTextCommand($"SELECT username, EmailAddress, lastLoginTime FROM {tablePrefix}Users WHERE BlogID = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -481,7 +481,7 @@ public override MembershipUser GetUser(string username, bool userIsOnline) { using (var cmd = conn.CreateTextCommand(string.Format("SELECT username, EmailAddress, lastLoginTime FROM {0}Users WHERE BlogID = {1}blogid AND UserName = {1}name", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), username)); using (var rdr = cmd.ExecuteReader()) @@ -520,7 +520,7 @@ public override string GetUserNameByEmail(string email) { using (var cmd = conn.CreateTextCommand(string.Format("SELECT userName FROM {0}Users WHERE BlogID = {1}blogid AND emailAddress = {1}email", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("email"), email)); using (var rdr = cmd.ExecuteReader()) @@ -666,7 +666,7 @@ public override string ResetPassword(string username, string answer) { // Check Old Password - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), username)); using (var rdr = cmd.ExecuteReader()) @@ -717,7 +717,7 @@ public override void UpdateUser(MembershipUser user) using (var cmd = conn.CreateTextCommand(string.Format("UPDATE {0}Users SET emailAddress = {1}email WHERE BlogId = {1}blogId AND userName = {1}name", this.tablePrefix, this.parmPrefix))) { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); parms.Add(conn.CreateParameter(FormatParamName("name"), user.UserName)); parms.Add(conn.CreateParameter(FormatParamName("email"), user.Email)); @@ -743,7 +743,7 @@ public override bool ValidateUser(string username, string password) { using (var cmd = conn.CreateTextCommand(string.Format("SELECT password FROM {0}Users WHERE BlogID = {1}blogid AND UserName = {1}name", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), username)); using (var rdr = cmd.ExecuteReader()) diff --git a/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbRoleProvider.cs b/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbRoleProvider.cs index d44d396b9..16f3d31ac 100644 --- a/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbRoleProvider.cs +++ b/BlogEngine/BlogEngine.Core/Providers/DbProvider/DbRoleProvider.cs @@ -82,7 +82,7 @@ public override void AddUsersToRoles(string[] usernames, string[] roleNames) //parms.Clear(); //cmd.CommandText = string.Format("SELECT UserID FROM {0}Users WHERE BlogID = {1}blogid AND UserName = {1}user", this.tablePrefix, this.parmPrefix); - //parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + //parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); //parms.Add(conn.CreateParameter(FormatParamName("user"), user)); //var userId = Int32.Parse(cmd.ExecuteScalar().ToString()); @@ -94,7 +94,7 @@ public override void AddUsersToRoles(string[] usernames, string[] roleNames) //parms.Clear(); //cmd.CommandText = string.Format("SELECT RoleID FROM {0}Roles WHERE BlogID = {1}blogid AND Role = {1}role", this.tablePrefix, this.parmPrefix); - //parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + //parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); //parms.Add(conn.CreateParameter(FormatParamName("role"), role)); //var roleId = Int32.Parse(cmd.ExecuteScalar().ToString()); @@ -102,7 +102,7 @@ public override void AddUsersToRoles(string[] usernames, string[] roleNames) parms.Clear(); cmd.CommandText = string.Format("INSERT INTO {0}UserRoles (BlogID, UserName, Role) VALUES ({1}blogID, {1}username, {1}role)", this.tablePrefix, this.parmPrefix); - parms.Add(conn.CreateParameter(FormatParamName("blogID"), Blog.CurrentInstance.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogID"), Blog.CurrentInstance.Id)); parms.Add(conn.CreateParameter(FormatParamName("username"), user.Trim())); parms.Add(conn.CreateParameter(FormatParamName("role"), role.Trim())); @@ -130,7 +130,7 @@ public override void CreateRole(string roleName) { using (var cmd = conn.CreateTextCommand(string.Format("INSERT INTO {0}Roles (BlogID, role) VALUES ({1}blogid, {1}role)", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("role"), roleName)); cmd.ExecuteNonQuery(); } @@ -161,7 +161,7 @@ public override bool DeleteRole(string roleName, bool throwOnPopulatedRole) { using (var cmd = conn.CreateTextCommand(string.Format("DELETE FROM {0}Roles WHERE BlogID = {1}blogid AND Role = {1}role", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("role"), roleName)); cmd.ExecuteNonQuery(); success = true; @@ -202,7 +202,7 @@ public override string[] FindUsersInRole(string roleName, string usernameToMatch using (var cmd = conn.CreateTextCommand(sqlQuery)) { var parms = cmd.Parameters; - parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); parms.Add(conn.CreateParameter(FormatParamName("role"), roleName)); parms.Add(conn.CreateParameter(FormatParamName("name"), $"{usernameToMatch}%")); @@ -239,7 +239,7 @@ public override string[] GetAllRoles() { using (var cmd = conn.CreateTextCommand($"SELECT role FROM {tablePrefix}Roles WHERE BlogID = {parmPrefix}blogid ")) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); using (var rdr = cmd.ExecuteReader()) { @@ -281,7 +281,7 @@ public override string[] GetRolesForUser(string username) using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), username)); using (var rdr = cmd.ExecuteReader()) @@ -324,7 +324,7 @@ public override string[] GetUsersInRole(string roleName) using (var cmd = conn.CreateTextCommand(sqlQuery)) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("role"), roleName)); using (var rdr = cmd.ExecuteReader()) @@ -444,7 +444,7 @@ public override bool IsUserInRole(string username, string roleName) using (var cmd = conn.CreateTextCommand(sqlQuery)) { var parms = cmd.Parameters; - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); parms.Add(conn.CreateParameter(FormatParamName("name"), username)); parms.Add(conn.CreateParameter(FormatParamName("role"), roleName)); @@ -482,7 +482,7 @@ public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames //parms.Clear(); //cmd.CommandText = string.Format("SELECT UserID FROM {0}Users WHERE BlogID = {1}blogid AND UserName = {1}user", this.tablePrefix, this.parmPrefix); - //parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + //parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); //parms.Add(conn.CreateParameter(FormatParamName("user"), user)); //int userId; @@ -505,7 +505,7 @@ public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames //parms.Clear(); //cmd.CommandText = string.Format("SELECT RoleID FROM {0}Roles WHERE BlogID = {1}blogid AND Role = {1}role", this.tablePrefix, this.parmPrefix); - //parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + //parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); //parms.Add(conn.CreateParameter(FormatParamName("role"), role)); //var roleId = Int32.Parse(cmd.ExecuteScalar().ToString()); @@ -513,7 +513,7 @@ public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames parms.Clear(); cmd.CommandText = string.Format("DELETE FROM {0}UserRoles WHERE BlogID = {1}blogid AND UserName = {1}username AND Role = {1}role", this.tablePrefix, this.parmPrefix); - parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + parms.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); parms.Add(conn.CreateParameter(FormatParamName("username"), user.Trim())); parms.Add(conn.CreateParameter(FormatParamName("role"), role.Trim())); @@ -544,7 +544,7 @@ public override bool RoleExists(string roleName) using (var cmd = conn.CreateTextCommand(string.Format("SELECT roleID FROM {0}Roles WHERE BlogID = {1}blogid AND role = {1}role", this.tablePrefix, this.parmPrefix))) { - cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString())); + cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id)); cmd.Parameters.Add(conn.CreateParameter(FormatParamName("role"), roleName)); using (var rdr = cmd.ExecuteReader()) diff --git a/BlogEngine/BlogEngine.NET/BlogEngine.NET.csproj b/BlogEngine/BlogEngine.NET/BlogEngine.NET.csproj index 8c97c76e2..3846826ba 100644 --- a/BlogEngine/BlogEngine.NET/BlogEngine.NET.csproj +++ b/BlogEngine/BlogEngine.NET/BlogEngine.NET.csproj @@ -21,8 +21,8 @@ - 1.6 - + 1.7 + true @@ -54,6 +54,10 @@ ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll True + + ..\packages\Npgsql.3.0.5\lib\net45\Npgsql.dll + True + ..\packages\SimpleInjector.3.1.0\lib\net45\SimpleInjector.dll True @@ -1575,6 +1579,7 @@ + diff --git a/BlogEngine/BlogEngine.NET/Web.Config b/BlogEngine/BlogEngine.NET/Web.Config index e698ac4f5..72a432dff 100644 --- a/BlogEngine/BlogEngine.NET/Web.Config +++ b/BlogEngine/BlogEngine.NET/Web.Config @@ -7,9 +7,9 @@ - + - + @@ -18,6 +18,10 @@ + + + + @@ -45,6 +49,12 @@ + + + + + + - + - + - + - + diff --git a/BlogEngine/BlogEngine.NET/packages.config b/BlogEngine/BlogEngine.NET/packages.config index 3b91a7143..ac223f1cd 100644 --- a/BlogEngine/BlogEngine.NET/packages.config +++ b/BlogEngine/BlogEngine.NET/packages.config @@ -19,6 +19,7 @@ + diff --git a/BlogEngine/BlogEngine.NET/setup/PostgreSQL/Setup.sql b/BlogEngine/BlogEngine.NET/setup/PostgreSQL/Setup.sql new file mode 100644 index 000000000..0aa823d3f --- /dev/null +++ b/BlogEngine/BlogEngine.NET/setup/PostgreSQL/Setup.sql @@ -0,0 +1,552 @@ +CREATE TABLE be_Blogs ( + BlogRowId serial, + BlogId uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + BlogName text NOT NULL DEFAULT '', + Hostname text NOT NULL DEFAULT '', + IsAnyTextBeforeHostnameAccepted boolean NOT NULL DEFAULT true, + StorageContainerName text NOT NULL DEFAULT '', + VirtualPath text NOT NULL DEFAULT '', + IsPrimary boolean NOT NULL DEFAULT false, + IsActive boolean NOT NULL DEFAULT true, + IsSiteAggregation boolean NOT NULL DEFAULT false, + PRIMARY KEY (BlogRowId) +); + +CREATE TABLE be_Categories ( + CategoryRowID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + CategoryID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + CategoryName text DEFAULT NULL, + Description text DEFAULT NULL, + ParentID uuid DEFAULT NULL, + PRIMARY KEY (CategoryRowID) +); + +CREATE TABLE be_DataStoreSettings ( + DataStoreSettingRowId serial, + BlogId uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + ExtensionType text NOT NULL, + ExtensionId text NOT NULL, + Settings text NOT NULL, + PRIMARY KEY (DataStoreSettingRowId) +); + +CREATE TABLE be_Pages ( + PageRowID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + PageID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + Title text NOT NULL DEFAULT '', + Description text, + PageContent text, + Keywords text, + DateCreated timestamp DEFAULT NULL, + DateModified timestamp DEFAULT NULL, + IsPublished boolean DEFAULT NULL, + IsFrontPage boolean DEFAULT NULL, + Parent uuid DEFAULT '00000000-0000-0000-0000-000000000000', + ShowInList boolean DEFAULT NULL, + Slug text DEFAULT NULL, + IsDeleted boolean NOT NULL DEFAULT false, + PRIMARY KEY (PageRowID) +); + +CREATE TABLE be_PingService ( + PingServiceID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + Link text DEFAULT NULL, + PRIMARY KEY (PingServiceID) +); + +CREATE TABLE be_Posts ( + PostRowID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + PostID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + Title text NOT NULL DEFAULT '', + Description text NOT NULL, + PostContent text NOT NULL, + DateCreated timestamp NOT NULL DEFAULT '1970-01-01 00:00:00', + DateModified timestamp NOT NULL DEFAULT '1970-01-01 00:00:00', + Author text NOT NULL DEFAULT '', + IsPublished boolean NOT NULL DEFAULT false, + IsCommentEnabled boolean NOT NULL DEFAULT false, + Raters int NOT NULL DEFAULT 0, + Rating real NOT NULL DEFAULT 0, + Slug text NOT NULL DEFAULT '', + IsDeleted boolean NOT NULL DEFAULT false, + PRIMARY KEY (PostRowID) +); + +CREATE TABLE be_Profiles ( + ProfileID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + UserName text NOT NULL, + SettingName text NOT NULL, + SettingValue text NOT NULL, + PRIMARY KEY (ProfileID) +); + +CREATE TABLE be_Roles ( + RoleID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + Role text NOT NULL, + PRIMARY KEY (RoleID) +); + +CREATE TABLE be_Settings ( + SettingRowId serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + SettingName text NOT NULL, + SettingValue text, + PRIMARY KEY (SettingRowId) +); + +CREATE TABLE be_StopWords ( + StopWordRowId serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + StopWord text NOT NULL, + PRIMARY KEY (StopWordRowId) +); + +CREATE TABLE be_Users ( + UserID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + UserName text DEFAULT NULL, + Password text DEFAULT NULL, + LastLoginTime timestamp DEFAULT '1970-01-01 00:00:00', + EmailAddress text DEFAULT NULL, + PRIMARY KEY (UserID) +); + +CREATE TABLE be_UserRoles ( + UserRoleID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + UserName text NOT NULL DEFAULT '', + Role text NOT NULL DEFAULT '', + PRIMARY KEY (UserRoleID) +); + +CREATE TABLE be_PostCategory ( + PostCategoryID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + PostID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + CategoryID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + PRIMARY KEY (PostCategoryID) +); + +CREATE TABLE be_PostComment ( + PostCommentRowID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + PostCommentID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + PostID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + ParentCommentID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + CommentDate timestamp NOT NULL DEFAULT '1970-01-01 00:00:00', + Author text NOT NULL DEFAULT '', + Email text NOT NULL DEFAULT '', + Website text NOT NULL DEFAULT '', + Comment text NOT NULL, + Country text NOT NULL DEFAULT '', + Ip text NOT NULL DEFAULT '', + IsApproved boolean NOT NULL DEFAULT false, + ModeratedBy text DEFAULT NULL, + Avatar text DEFAULT NULL, + IsSpam boolean NOT NULL DEFAULT false, + IsDeleted boolean NOT NULL DEFAULT false, + PRIMARY KEY (PostCommentRowID) +); + +CREATE TABLE be_PostNotify ( + PostNotifyID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + PostID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + NotifyAddress text DEFAULT NULL, + PRIMARY KEY (PostNotifyID) +); + +CREATE TABLE be_PostTag ( + PostTagID serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + PostID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + Tag text DEFAULT NULL, + PRIMARY KEY (PostTagID) +); + +CREATE TABLE IF NOT EXISTS be_BlogRollItems ( + BlogRollRowId serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + BlogRollId uuid NOT NULL, + Title text NOT NULL, + Description text DEFAULT NULL, + BlogUrl text NOT NULL, + FeedUrl text DEFAULT NULL, + Xfn text DEFAULT NULL, + SortIndex int NOT NULL, + PRIMARY KEY (BlogRollRowId) +); + +CREATE TABLE IF NOT EXISTS be_Referrers ( + ReferrerRowId serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + ReferrerId uuid NOT NULL, + ReferralDay timestamp NOT NULL, + ReferrerUrl text NOT NULL, + ReferralCount int NOT NULL, + Url text DEFAULT NULL, + IsSpam boolean NULL, + PRIMARY KEY (ReferrerRowId) +); + +CREATE TABLE IF NOT EXISTS be_Rights ( + RightRowId serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + RightName text NOT NULL, + PRIMARY KEY (RightRowId) +); + +CREATE TABLE IF NOT EXISTS be_RightRoles ( + RightRoleRowId serial, + BlogID uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', + RightName text NOT NULL, + Role text NOT NULL, + PRIMARY KEY (RightRoleRowId) +); + +CREATE TABLE be_Packages ( + PackageId text NOT NULL, + Version text NOT NULL, + PRIMARY KEY (PackageId) +); + +CREATE TABLE be_PackageFiles ( + PackageId text NOT NULL, + FileOrder int NOT NULL, + FilePath text NOT NULL, + IsDirectory boolean NOT NULL, + PRIMARY KEY (PackageId, FileOrder) +); + +CREATE TABLE be_QuickNotes ( + QuickNoteID serial, + NoteID uuid NOT NULL, + BlogID uuid NOT NULL, + UserName text NOT NULL, + Note text NOT NULL, + Updated timestamp NOT NULL, + PRIMARY KEY (QuickNoteID) +); + +CREATE TABLE be_QuickSettings ( + QuickSettingID serial, + BlogID uuid NOT NULL, + UserName text NOT NULL, + SettingName text NOT NULL, + SettingValue text NOT NULL, + PRIMARY KEY (QuickSettingID) +); + +CREATE TABLE be_FileStoreDirectory ( + Id uuid NOT NULL, + ParentID uuid NOT NULL, + BlogID uuid NOT NULL, + Name text NOT NULL, + FullPath text NOT NULL, + CreateDate timestamp NOT NULL, + LastAccess timestamp NOT NULL, + LastModify timestamp NOT NULL, + PRIMARY KEY (Id) +); + +CREATE TABLE be_FileStoreFiles ( + FileID uuid NOT NULL, + ParentDirectoryID uuid NOT NULL, + Name text NOT NULL, + FullPath text NOT NULL, + Contents bytea NOT NULL, + Size int NOT NULL, + CreateDate timestamp NOT NULL, + LastAccess timestamp NOT NULL, + LastModify timestamp NOT NULL, + PRIMARY KEY (FileID) +); + +CREATE TABLE be_FileStoreFileThumbs ( + thumbnailId text NOT NULL, + FileId uuid NOT NULL, + Size int NOT NULL, + Contents bytea NOT NULL, + PRIMARY KEY (thumbnailId) +); + +CREATE TABLE be_CustomFields ( + CustomType text NOT NULL, + ObjectId text NOT NULL, + BlogId uuid NOT NULL, + Key text NOT NULL, + Value text NOT NULL, + Attribute text NULL, + CONSTRAINT be_customfields_pkey PRIMARY KEY (customtype, objectid, blogid, key) +); + +/*** Load initial Data ***/ + +INSERT INTO be_Blogs (BlogId, BlogName, Hostname, IsAnyTextBeforeHostnameAccepted, StorageContainerName, VirtualPath, IsPrimary, IsActive) VALUES ('27604f05-86ad-47ef-9e05-950bb762570c', 'Primary', '', false, '', '~/', true, true); + +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'administratorrole', 'Administrators'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'alternatefeedurl', ''); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'authorname', 'My name'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'avatar', 'combine'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'blogrollmaxlength', '23'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'blogrollupdateminutes', '60'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'blogrollvisibleposts', '3'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'contactformmessage', '

I will answer the mail as soon as I can.

'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'contactthankmessage', '

Thank you

The message was sent.

'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'culture', 'Auto'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'dayscommentsareenabled', '0'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'description', 'Short description of the blog'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'displaycommentsonrecentposts', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'displayratingsonrecentposts', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'email', 'user@example.com'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'emailsubjectprefix', 'Weblog'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablecommentsearch', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablecommentsmoderation', 'False'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablecontactattachments', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablecountryincomments', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablehttpcompression', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enableopensearch', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablepingbackreceive', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablepingbacksend', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablerating', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablereferrertracking', 'False'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablerelatedposts', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablessl', 'False'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enabletrackbackreceive', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enabletrackbacksend', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'endorsement', 'http://www.dotnetblogengine.net/syndication.axd'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'fileextension', '.aspx'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'geocodinglatitude', '0'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'geocodinglongitude', '0'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'handlewwwsubdomain', ''); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'iscocommentenabled', 'False'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'iscommentsenabled', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'language', 'en-GB'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'mobiletheme', 'Standard'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'name', 'Name of the blog'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'numberofrecentcomments', '10'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'numberofrecentposts', '10'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'postsperfeed', '10'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'postsperpage', '10'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'removewhitespaceinstylesheets', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'searchbuttontext', 'Search'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'searchcommentlabeltext', 'Include comments in search'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'searchdefaulttext', 'Enter search term'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'sendmailoncomment', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'showdescriptioninpostlist', 'False'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'showlivepreview', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'showpostnavigation', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'smtppassword', 'password'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'smtpserver', 'mail.example.dk'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'smtpserverport', '25'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'smtpusername', 'user@example.com'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'storagelocation', '~/App_Data/'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'syndicationformat', 'Rss'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'theme', 'Standard'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'timestamppostlinks', 'True'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'timezone', '0'); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'trackingscript', ''); +INSERT INTO be_Settings (BlogID, SettingName, SettingValue) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'enablequicknotes', 'True'); + +INSERT INTO be_PingService (BlogID, Link) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'http://rpc.technorati.com/rpc/ping'); +INSERT INTO be_PingService (BlogID, Link) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'http://rpc.pingomatic.com/rpc2'); +INSERT INTO be_PingService (BlogID, Link) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'http://ping.feedburner.com'); +INSERT INTO be_PingService (BlogID, Link) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'http://www.bloglines.com/ping'); +INSERT INTO be_PingService (BlogID, Link) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'http://services.newsgator.com/ngws/xmlrpcping.aspx'); +INSERT INTO be_PingService (BlogID, Link) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'http://api.my.yahoo.com/rpc2 '); +INSERT INTO be_PingService (BlogID, Link) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'http://blogsearch.google.com/ping/RPC2'); +INSERT INTO be_PingService (BlogID, Link) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'http://rpc.pingthesemanticweb.com/'); + +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'a'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'about'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'actually'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'add'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'after'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'all'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'almost'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'along'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'also'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'an'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'and'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'any'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'are'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'as'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'at'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'be'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'both'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'but'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'by'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'can'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'cannot'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'com'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'could'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'de'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'do'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'down'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'each'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'either'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'en'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'for'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'from'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'good'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'has'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'have'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'he'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'her'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'here'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'hers'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'his'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'how'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'i'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'if'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'in'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'into'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'is'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'it'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'its'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'just'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'la'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'like'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'long'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'make'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'me'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'more'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'much'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'my'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'need'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'new'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'now'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'of'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'off'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'on'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'once'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'one'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'ones'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'only'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'or'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'our'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'out'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'over'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'own'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'really'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'right'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'same'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'see'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'she'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'so'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'some'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'such'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'take'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'takes'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'that'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'the'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'their'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'these'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'thing'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'this'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'to'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'too'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'took'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'und'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'up'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'use'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'used'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'using'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'very'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'was'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'we'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'well'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'what'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'when'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'where'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'who'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'will'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'with'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'www'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'you'); +INSERT INTO be_StopWords (BlogId, StopWord) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'your'); + +INSERT INTO be_BlogRollItems ( BlogId, BlogRollId, Title, Description, BlogUrl, FeedUrl, Xfn, SortIndex ) +VALUES ( '27604F05-86AD-47EF-9E05-950BB762570C', '25e4d8da-3278-4e58-b0bf-932496dabc96', 'Mads Kristensen', 'Full featured simplicity in ASP.NET and C#', 'http://madskristensen.net', 'http://feeds.feedburner.com/netslave', 'contact', 0 ); +INSERT INTO be_BlogRollItems ( BlogId, BlogRollId, Title, Description, BlogUrl, FeedUrl, Xfn, SortIndex ) +VALUES ( '27604F05-86AD-47EF-9E05-950BB762570C', 'ccc817ef-e760-482b-b82f-a6854663110f', 'Al Nyveldt', 'Adventures in Code and Other Stories', 'http://www.nyveldt.com/blog/', 'http://feeds.feedburner.com/razorant', 'contact', 1 ); +INSERT INTO be_BlogRollItems ( BlogId, BlogRollId, Title, Description, BlogUrl, FeedUrl, Xfn, SortIndex ) +VALUES ( '27604F05-86AD-47EF-9E05-950BB762570C', 'dcdaa78b-0b77-4691-99f0-1bb6418945a1', 'Ruslan Tur', '.NET and Open Source: better together', 'http://rtur.net/blog/', 'http://feeds.feedburner.com/rtur', 'contact', 2 ); +INSERT INTO be_BlogRollItems ( BlogId, BlogRollId, Title, Description, BlogUrl, FeedUrl, Xfn, SortIndex ) +VALUES ( '27604F05-86AD-47EF-9E05-950BB762570C', '8a846489-b69e-4fde-b2b2-53bc6104a6fa', 'John Dyer', 'Technology and web development in ASP.NET, Flash, and JavaScript', 'http://johndyer.name/', 'http://johndyer.name/syndication.axd', 'contact', 3 ); +INSERT INTO be_BlogRollItems ( BlogId, BlogRollId, Title, Description, BlogUrl, FeedUrl, Xfn, SortIndex ) +VALUES ( '27604F05-86AD-47EF-9E05-950BB762570C', '7f906880-4316-47f1-a934-1a912fc02f8b', 'Russell van der Walt', 'an adventure in web technologies', 'http://blog.ruski.co.za/', 'http://feeds.feedburner.com/rusvdw', 'contact', 4 ); +INSERT INTO be_BlogRollItems ( BlogId, BlogRollId, Title, Description, BlogUrl, FeedUrl, Xfn, SortIndex ) +VALUES ( '27604F05-86AD-47EF-9E05-950BB762570C', '890f00e5-3a86-4cba-b85b-104063964a87', 'Ben Amada', 'adventures in application development', 'http://allben.net/', 'http://feeds.feedburner.com/allben', 'contact', 5 ); + +INSERT INTO be_Categories (BlogID, CategoryID, CategoryName) + VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'ffc26b8b-7d45-46e3-b702-7198e8847e06', 'General'); + +INSERT INTO be_Posts (BlogID, PostID, Title, Description, PostContent, DateCreated, DateModified, Author, IsPublished) + VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'daf4bc0e-f4b7-4895-94b2-3b1413379d4b', + 'Welcome to BlogEngine.NET 3.1 using PostgreSQL', + 'The description is used as the meta description as well as shown in the related posts. It is recommended that you write a description, but not mandatory', + '

If you see this post it means that BlogEngine.NET is running and the hard part of creating your own blog is done. There is only a few things left to do.

+

Write Permissions

+

To be able to log in, write posts and customize blog, you need to enable write permissions on the App_Data and Custom folders. If your blog is hosted at a hosting provider, you can either log into your account’s admin page or call the support.

+

If you wish to use a database to store your blog data, we still encourage you to enable this write access for an images you may wish to store for your blog posts.  If you are interested in using Microsoft SQL Server, PostgreSQL, SQL CE, or other databases, please see the BlogEngine docs to get started.

+

Security

+

When youve got write permissions set, you need to change the username and password. Find the sign-in link located either at the bottom or top of the page depending on your current theme and click it. Now enter Admin in both the username and password fields and click the button. You will now see an admin menu appear. It has a link to the Users admin page. From there you can change password, create new users and set roles and permissions. Passwords are hashed by default so you better configure email in settings for password recovery to work or learn how to do it manually.

+

Configuration and Profile

+

Now that you have your blog secured, take a look through the settings and give your new blog a title.  BlogEngine.NET is set up to take full advantage of many semantic formats and technologies such as FOAF, SIOC and APML. It means that the content stored in your BlogEngine.NET installation will be fully portable and auto-discoverable.  Be sure to fill in your author profile to take better advantage of this.

+

Themes, Widgets & Extensions

+

One last thing to consider is customizing the look and behavior of your blog. We have themes, widgets and extensions available right out of the box. You can install more right from admin panel under Custom/Gallery.

+

On the web

+

You can find news about BlogEngine.NET on the official website. For tutorials, documentation, tips and tricks visit our docs site. The ongoing development of BlogEngine.NET can be followed at CodePlex where the daily builds will be published for anyone to download.

+

Good luck and happy writing.

+

The BlogEngine.NET team

', + now(), + now(), + 'admin', + true); + +INSERT INTO be_PostCategory (BlogID, PostID, CategoryID) + VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'daf4bc0e-f4b7-4895-94b2-3b1413379d4b', 'ffc26b8b-7d45-46e3-b702-7198e8847e06'); +INSERT INTO be_PostTag (BlogID, PostID, Tag) + VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'daf4bc0e-f4b7-4895-94b2-3b1413379d4b', 'blog'); +INSERT INTO be_PostTag (BlogID, PostID, Tag) + VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'daf4bc0e-f4b7-4895-94b2-3b1413379d4b', 'welcome'); + +INSERT INTO be_Users (BlogID, UserName, Password, LastLoginTime, EmailAddress) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'Admin', '', now(), 'email@example.com'); +INSERT INTO be_Roles (BlogID, Role) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'Administrators'); +INSERT INTO be_Roles (BlogID, Role) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'Editors'); +INSERT INTO be_UserRoles (BlogID, UserName, Role) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'Admin', 'Administrators'); + +INSERT INTO be_DataStoreSettings (BlogId, ExtensionType, ExtensionId, Settings) +VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 1, 'be_WIDGET_ZONE', '<widgets><widget id="d9ada63d-3462-4c72-908e-9d35f0acce40" title="TextBox" showTitle="True">TextBox</widget><widget id="19baa5f6-49d4-4828-8f7f-018535c35f94" title="Administration" showTitle="True">Administration</widget><widget id="d81c5ae3-e57e-4374-a539-5cdee45e639f" title="Search" showTitle="True">Search</widget><widget id="77142800-6dff-4016-99ca-69b5c5ebac93" title="Tag Cloud" showTitle="True">TagCloud</widget><widget id="4ce68ae7-c0c8-4bf8-b50f-a67b582b0d2e" title="Post List" showTitle="True">PostList</widget></widgets>'); + +-- +-- be_Pages SortOrder +-- +ALTER TABLE be_Pages ADD COLUMN SortOrder INT DEFAULT 0; +-- +-- add new rights to administrators +-- +INSERT INTO be_RightRoles (BlogID, RightName, Role) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'ViewDashboard', 'Administrators'); +INSERT INTO be_RightRoles (BlogID, RightName, Role) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'ManageExtensions', 'Administrators'); +INSERT INTO be_RightRoles (BlogID, RightName, Role) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'ManageThemes', 'Administrators'); +INSERT INTO be_RightRoles (BlogID, RightName, Role) VALUES ('27604F05-86AD-47EF-9E05-950BB762570C', 'ManagePackages', 'Administrators'); + +INSERT INTO be_Rights (BlogId, RightName) VALUES ('27604f05-86ad-47ef-9e05-950bb762570c', 'ViewDashboard'); +INSERT INTO be_Rights (BlogId, RightName) VALUES ('27604f05-86ad-47ef-9e05-950bb762570c', 'ManageExtensions'); +INSERT INTO be_Rights (BlogId, RightName) VALUES ('27604f05-86ad-47ef-9e05-950bb762570c', 'ManageThemes'); +INSERT INTO be_Rights (BlogId, RightName) VALUES ('27604f05-86ad-47ef-9e05-950bb762570c', 'ManagePackages'); + +grant all on all tables in schema public to "beUser"; +grant all on all sequences in schema public to "beUser"; + +create unique index be_posts_blogpostid on be_posts (blogid, postid); +create index be_posts_blogid on be_posts (blogid); +create index be_categories_blogid on be_categories (blogid); +create index be_postcomment_blogpostid on be_postcomment (blogid, postid); diff --git a/README.md b/README.md index 821bd4d60..c3bfca6f5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,14 @@ -This repository provides latest source code for BlogEngine.NET project. +## BlogEngine.NET with PostgreSQL +This repository contains the PostgreSQL port of BlogEngine.NET. +Since BlogEngine.NET internally converts GUIDs into text before handing them over to the database provider some code changes are needed. The changes should be compatible with proper database providers, but I haven't tested them. + +Also since the database contains columns named Key, Value and Attribute, some databases need escaping and this seems to be hardcoded into the source code. I've added hardcoded "no need to escape" versions for PostgreSQL. + +Currently the code is very lightly tested, so YMMV. + +---- + +This repository provides latest source code for BlogEngine.NET project.

@@ -54,9 +64,11 @@ Environment: Steps: 1. Clone repository 2. Open solution in Visual Studio 2015 + - 3. Build and run solution to load website in the browser - 4. You can navigate to administration on: `http://localhost:64079/admin/` - 5. Username: `admin` Password `admin` + 3. Create a database with use *beUser* + 4. Add the *uuid-ossp* extension + 5. Run the script from setup/PostgreSQL + 6. Build and run solution to load website in the browser + 7. Use Admin/admin to log into website administration ### 3. Security Update After install, update `machineKey` in `Web.config` with values generated with tool [like this](https://www.allkeysgenerator.com/Random/ASP-Net-MachineKey-Generator.aspx). This will prevent known exploit (reported Sep 2019). This only effects if you use default `admin` account.