Ejemplo n.º 1
0
        private WikiPageContent _MapContent(IDataReader reader)
        {
            int startingIndex = 0;

            WikiPageContent content = new WikiPageContent();

            //File file = new FileUploadService();

            content.Id            = reader.GetSafeInt32(startingIndex++);
            content.SortOrder     = reader.GetSafeInt32(startingIndex++);
            content.PageContent   = reader.GetSafeString(startingIndex++);
            content.ContentTypeId = reader.GetSafeInt32(startingIndex++);
            content.WikiPageId    = reader.GetSafeInt32(startingIndex++);
            content.Title         = reader.GetSafeString(startingIndex++);

            string contentOptions = reader.GetSafeString(startingIndex++);
            string contentData    = reader.GetSafeString(startingIndex++);

            if (null != contentOptions)
            {
                content.ContentOptions = JsonConvert.DeserializeObject <Dictionary <string, string> >(contentOptions);
            }

            if (null != contentData)
            {
                content.ContentData = JsonConvert.DeserializeObject <List <WikiListContent> >(contentData);
            }

            if (content.ContentTypeId == (int)WikiPageContentType.Image)
            {
                content.ContentFile = _fileService.GetFileByWikiContentId(content.Id);
            }

            return(content);
        }
Ejemplo n.º 2
0
    public static Dictionary <string, WikiPageContent> ParsePages(List <WikiPage> pages, ref string progress, WikiPageFilter filter)
    {
        var dict    = new Dictionary <string, WikiPageContent>();
        int counter = 0;

        foreach (var page in pages)
        {
            if (!run)
            {
                break;
            }
            try
            {
                WikiPageContent currentPage = ParsePage(page.title);
                if (PageFilter(currentPage, filter))
                {
                    dict.Add(page.title, currentPage);
                }
            }
            catch (Exception) { }

            counter++;
            progress = String.Format("Downloading pages: {0}/{1}", counter, pages.Count);
        }

        progress = "finished";
        return(dict);
    }
Ejemplo n.º 3
0
    public static bool PageFilter(WikiPageContent page, WikiPageFilter filter)
    {
        foreach (string m in filter.IgnoreMorphology)
        {
            if (page.morph.Contains(m))
            {
                return(false);
            }
        }
        foreach (string m in filter.IgnoreValue)
        {
            if (page.value.Contains(m))
            {
                return(false);
            }
        }

        string[] vals = page.value.Split('\n');
        foreach (string m in filter.IgnoreValueText)
        {
            int valueContainsCount = 0;
            foreach (string v in vals)
            {
                if (v.Contains(m))
                {
                    valueContainsCount++;
                }
            }
            if (valueContainsCount == vals.Length)
            {
                return(false);
            }
        }

        foreach (string m in filter.IgnoreGiponims)
        {
            if (page.giponims.Contains(m))
            {
                return(false);
            }
        }
        foreach (string m in filter.IgnoreGiperonims)
        {
            if (page.giperonims.Contains(m))
            {
                return(false);
            }
        }
        return(true);
    }
Ejemplo n.º 4
0
        public List <WikiPageContent> GetContentByPageId(int pageId)
        {
            List <WikiPageContent> list = null;

            DataProvider.ExecuteCmd(GetConnection, "dbo.WikiPagesContents_SelectByPageId"
                                    , inputParamMapper : delegate(SqlParameterCollection paramCollection)
            {
                paramCollection.AddWithValue("@PageId", pageId);
            }
                                    , map : delegate(IDataReader reader, short set)
            {
                WikiPageContent content = _MapContent(reader);
                if (list == null)
                {
                    list = new List <WikiPageContent>();
                }
                list.Add(content);
            }
                                    );
            return(list);
        }