예제 #1
0
        internal static LuceneIndexItem CreateLuceneItem(OpenFilesInfo fileInfo, FieldConfig indexConfig)
        {
            var luceneItem = new LuceneIndexItem(ItemTypeValue, fileInfo.File.PortalId.ToString(), fileInfo.File.CreatedOnDate, fileInfo.File.FileId.ToString())
            {
                FileName    = fileInfo.File.FileName,
                Folder      = fileInfo.File.Folder.TrimEnd('/'),
                FileContent = DnnFilesRepository.GetFileContent(fileInfo.File)
            };

            JObject custom = fileInfo.JsonAsJToken;

            custom.MakeSureFieldExists(MetaField, JTokenType.Object);
            custom[MetaField].HydrateDefaultFields(indexConfig);

            if (custom[MetaField].HasValues)
            {
                luceneItem.Meta = custom[MetaField];
            }

            return(luceneItem);
        }
예제 #2
0
        public static void Save(IFileInfo file, string key, string newContent)
        {
            ContentItem dnnContentItem;

            //if fileObject has already a ContentItem then load it, otherwise create new ContentItem
            if (file.ContentItemID == Null.NullInteger)
            {
                dnnContentItem     = CreateDnnContentItem();
                file.ContentItemID = dnnContentItem.ContentItemId;
            }
            else
            {
                dnnContentItem = CreateDnnContentItem(file.ContentItemID);
            }
            JObject jsonContent = string.IsNullOrEmpty(dnnContentItem.Content) ? new JObject() : JObject.Parse(dnnContentItem.Content);

            if (string.IsNullOrEmpty(newContent))
            {
                jsonContent[key] = new JObject();
            }
            else
            {
                jsonContent[key] = JObject.Parse(newContent);
            }

            dnnContentItem.Content = jsonContent.ToString();
            Util.GetContentController().UpdateContentItem(dnnContentItem);


            //Save to lucene
            var         item        = new OpenFilesInfo(file, dnnContentItem, jsonContent);
            FieldConfig indexConfig = FilesRepository.GetIndexConfig(file.PortalId);

            LuceneController.Instance.Update(LuceneMappingUtils.CreateLuceneItem(item, indexConfig));
            LuceneController.Instance.Store.Commit();

            FileManager.Instance.UpdateFile(file);
        }
예제 #3
0
        public static LuceneIndexItem CreateLuceneItem(IFileInfo file, FieldConfig indexConfig)
        {
            var filesInfo = new OpenFilesInfo(file);

            return(CreateLuceneItem(filesInfo, indexConfig));
        }