public SqlCeCommand ClearCategoreis(TextContent textContent) { string sql = string.Format("DELETE FROM [{0}] WHERE UUID=@UUID" , textContent.GetRepository().GetCategoryTableName()); SqlCeCommand command = new SqlCeCommand(); command.CommandText = sql; command.Parameters.Add(new SqlCeParameter("@UUID", textContent.UUID)); return command; }
private static void DeleteChildContents(TextContent textContent, TextFolder parentFolder, TextFolder childFolder) { var repository = textContent.GetRepository(); var childContents = childFolder.CreateQuery().WhereEquals("ParentFolder", parentFolder.FullName) .WhereEquals("ParentUUID", textContent.UUID); foreach (var content in childContents) { Services.ServiceFactory.TextContentManager.Delete(repository, childFolder, content.UUID); } }
public MySqlCommand ClearCategories(TextContent textContent) { string sql = string.Format("DELETE FROM `{0}` WHERE UUID=?UUID " , textContent.GetRepository().GetCategoryTableName()); MySqlCommand command = new MySqlCommand(); command.CommandText = sql; command.Parameters.Add(new MySqlParameter("?UUID", textContent.UUID)); return command; }
public void LogVersion(TextContent content) { VersionInfo versionInfo = new VersionInfo() { CommitUser = content.UserId, UtcCommitDate = content.UtcLastModificationDate, TextContent = new Dictionary<string, object>(content) }; if (!string.IsNullOrEmpty(content.FolderName)) { versionInfo.Categories = ServiceFactory.TextContentManager .QueryCategories(content.GetRepository(), content.FolderName, content.UUID) .Select(it => new Category() { FolderName = it.CategoryFolder.FullName, Contents = it.Contents.Select(c => new CategoryContent() { UUID = c.UUID, DisplayName = c.GetSummary() }).ToArray() }) .ToArray(); } DataContractSerializationHelper.Serialize(versionInfo, GetNextVersionFile(content)); }
public virtual ContentBase Copy(TextContent originalContent, TextFolder textFolder, bool keepStatus, bool keepUUID, NameValueCollection values) { textFolder = textFolder.AsActual(); var repository = textFolder.Repository; var schema = new Schema(repository, textFolder.SchemaName); var copyedContent = new TextContent(originalContent); copyedContent.Id = ""; copyedContent.UUID = ""; if (keepUUID) { copyedContent.UUID = originalContent.UUID; } copyedContent.UtcCreationDate = DateTime.Now.ToUniversalTime(); copyedContent.Repository = textFolder.Repository.Name; copyedContent.FolderName = textFolder.FullName; copyedContent.SchemaName = textFolder.SchemaName; copyedContent.OriginalUUID = originalContent.UUID; copyedContent.OriginalRepository = originalContent.Repository; copyedContent.OriginalFolder = originalContent.FolderName; copyedContent.IsLocalized = false; copyedContent.Sequence = 0; copyedContent.UserId = originalContent.UserId; var versions = Kooboo.CMS.Content.Versioning.VersionManager.AllVersionInfos(originalContent); if (versions.Count() > 0) { copyedContent.OriginalLastestVisitedVersionId = versions.Max(it => it.Version); } if (values != null) { originalContent = Binder.Bind(schema, copyedContent, values); } if (!keepStatus) { copyedContent.Published = false; } //如果没有Content event,那么在发送设置的“转发”功能就会失效。 EventBus.Content.ContentEvent.Fire(ContentAction.PreAdd, copyedContent); TextContentProvider.Add(copyedContent); if (textFolder.Categories != null && textFolder.Categories.Count > 0) { var originalRepository = originalContent.GetRepository(); var originalFolder = originalContent.GetFolder().AsActual(); var originalCategories = QueryCategories(originalRepository, originalFolder.FullName, originalContent.UUID); List<TextContent> categories = new List<TextContent>(); foreach (var category in originalCategories) { foreach (var originalCategoryContent in category.Contents) { foreach (var categoryFolder in textFolder.Categories) { var categoryContent = (new TextFolder(textFolder.Repository, categoryFolder.FolderName)).CreateQuery() .WhereEquals("UUID", originalCategoryContent.UUID).FirstOrDefault(); if (categoryContent != null) { categories.Add(categoryContent); break; } } } } AddCategories(repository, copyedContent, categories.ToArray()); } EventBus.Content.ContentEvent.Fire(ContentAction.Add, copyedContent); return copyedContent; }
public SqlCommand QueryCategories(TextContent textContent) { string sql = string.Format("SELECT * FROM [{0}] WHERE UUID = @UUID" , textContent.GetRepository().GetCategoryTableName()); SqlCommand command = new SqlCommand(); command.CommandText = sql; command.Parameters.Add(new SqlParameter("@UUID", textContent.UUID)); return command; }
public IEnumerable<Category> QueryCategories(TextContent content) { List<Category> list = new List<Category>(); SqlCeConnection connection; using (var dataReader = SQLCeHelper.ExecuteReader(content.GetRepository().GetConnectionString(), dbCommands.QueryCategories(content), out connection)) { try { while (dataReader.Read()) { Category category = new Category() { CategoryFolder = dataReader.GetString(dataReader.GetOrdinal("CategoryFolder")), CategoryUUID = dataReader.GetString(dataReader.GetOrdinal("CategoryUUID")), ContentUUID = dataReader.GetString(dataReader.GetOrdinal("UUID")), }; list.Add(category); } } finally { dataReader.Close(); connection.Close(); } } return list; }
public void ClearCategories(TextContent content) { SQLCeHelper.ExecuteNonQuery(content.GetRepository().GetConnectionString(), dbCommands.ClearCategoreis(content)); }
public static void LogVersion(TextContent content) { if (content.GetRepository().AsActual().EnableVersioning.Value == true) { VersionLogger.LogVersion(content); } }
public IEnumerable<Category> QueryCategories(TextContent content) { MongoCollection<BsonDocument> collection = content.GetRepository().GetCategoriesCollection(); var query = MongoDBHelper.EQIgnoreCase("ContentUUID", content.UUID); var documents = collection.Find(query); List<Category> list = new List<Category>(); foreach (var doc in documents) { Category category = new Category() { CategoryFolder = doc["CategoryFolder"].AsString, CategoryUUID = doc["CategoryUUID"].AsString, ContentUUID = doc["ContentUUID"].AsString }; list.Add(category); } return list; }
/// <summary> /// Gets the schema. /// </summary> /// <param name="textContent">Content of the text.</param> /// <returns></returns> public static Schema GetSchema(this TextContent textContent) { return(new Schema(textContent.GetRepository(), textContent.SchemaName)); }
/// <summary> /// Gets the folder. /// </summary> /// <param name="content">The content.</param> /// <returns></returns> public static TextFolder GetFolder(this TextContent content) { return(new TextFolder(content.GetRepository(), FolderHelper.SplitFullName(content.FolderName))); }
public void ClearCategories(TextContent content) { MysqlHelper.BatchExecuteNonQuery(content.GetRepository(), dbCommands.ClearCategories(content)); }