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); }
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); }
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); }
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); }