Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
 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;
 }
Ejemplo n.º 7
0
        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;
        }
Ejemplo n.º 8
0
 public void ClearCategories(TextContent content)
 {
     SQLCeHelper.ExecuteNonQuery(content.GetRepository().GetConnectionString(), dbCommands.ClearCategoreis(content));
 }
Ejemplo n.º 9
0
 public static void LogVersion(TextContent content)
 {
     if (content.GetRepository().AsActual().EnableVersioning.Value == true)
     {
         VersionLogger.LogVersion(content);
     }
 }
Ejemplo n.º 10
0
        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;
        }
Ejemplo n.º 11
0
 /// <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));
 }
Ejemplo n.º 12
0
 /// <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)));
 }
Ejemplo n.º 13
0
 public void ClearCategories(TextContent content)
 {
     MysqlHelper.BatchExecuteNonQuery(content.GetRepository(),
         dbCommands.ClearCategories(content));
 }