private string GetStyleOutput(string file) { LOContent contentXML = new LOContent(); LOStyles stylesXML = new LOStyles(); string fileOutput = _index > 0 ? file + _index + ".css" : file + ".css"; //string input = FileInput(file + ".css"); string input = FileInput(fileOutput); _projInfo.DefaultCssFileWithPath = input; _projInfo.TempOutputFolder = _outputPath; Dictionary <string, Dictionary <string, string> > cssClass = new Dictionary <string, Dictionary <string, string> >(); CssTree cssTree = new CssTree(); cssClass = cssTree.CreateCssProperty(input, true); //StyleXML string styleOutput = FileOutput(file + _styleFile); Dictionary <string, Dictionary <string, string> > idAllClass = stylesXML.CreateStyles(_projInfo, cssClass, styleOutput); // ContentXML var pageSize = new Dictionary <string, string>(); pageSize["height"] = cssClass["@page"]["page-height"]; pageSize["width"] = cssClass["@page"]["page-width"]; _projInfo.DefaultXhtmlFileWithPath = FileInput(file + ".xhtml"); _projInfo.TempOutputFolder = FileOutput(file); _projInfo.HideSpaceVerseNumber = stylesXML.HideSpaceVerseNumber; PreExportProcess preProcessor = new PreExportProcess(_projInfo); preProcessor.GetTempFolderPath(); _projInfo.DefaultXhtmlFileWithPath = preProcessor.ProcessedXhtml; if (Param.HyphenEnable) { preProcessor.IncludeHyphenWordsOnXhtml(_projInfo.DefaultXhtmlFileWithPath); } AfterBeforeProcess afterBeforeProcess = new AfterBeforeProcess(); afterBeforeProcess.RemoveAfterBefore(_projInfo, cssClass, cssTree.SpecificityClass, cssTree.CssClassOrder); contentXML.CreateStory(_projInfo, idAllClass, cssTree.SpecificityClass, cssTree.CssClassOrder, 325, pageSize); _projInfo.TempOutputFolder = _projInfo.TempOutputFolder + _contentFile; return(styleOutput); }
public static void NullBytes(LOContent content) { foreach (var slide in content.lopage.loslide) { if (slide.image_bytes != null) { slide.image_bytes = null; } if (slide.loitemize != null) { foreach (var itemize in slide.loitemize.loitem) { if (itemize.image_bytes != null) { itemize.image_bytes = null; } } } } }
async private static Task ProcessSlides(LOContent content) { CacheService cache = CacheService.Init(SessionService.GetCredentialFileName(), Constants.PreferencesFileName, Constants.LocalDbName); foreach (var slide in content.lopage.loslide) { bool isUrl = Uri.IsWellFormedUriString(slide.loimage, UriKind.Absolute); if (slide.loimage != null && isUrl) { var bytesAndPath = await cache.tryGetResource(slide.loimage); //Replace Cloud url with local url //slide.loimage = cachePrefix+bytesAndPath.Item2; slide.image_bytes = bytesAndPath.Item1; } if (slide.loitemize != null) { foreach (var itemize in slide.loitemize.loitem) { if (itemize.loimage != null) { var bytesAndPath = await cache.tryGetResource(itemize.loimage); //Replace Cloud url with local url //itemize.loimage = cachePrefix + bytesAndPath.Item2; itemize.image_bytes = bytesAndPath.Item1; } } } } }
async Task LoadPages(int loListIndex, bool images) { var lo_obj = LOsInCircle[loListIndex]; var LOID = lo_obj.lo.id; var list = await _mLearningService.GetPagesByLO(LOID); var AllPagesList = new ObservableCollection <page_wrapper>(); //Loading json content to memory foreach (var item in list) { Mvx.Trace("Id: " + item.id); LOContent locontent = null; try { locontent = JsonConvert.DeserializeObject <LOContent>(item.content); } catch (Exception e) { Mvx.Trace("Serialization error: " + e.Message); } AllPagesList.Add(new page_wrapper { page = item, content = locontent /*, id=pagecount*/ }); pagecount++; } var tags = await _mLearningService.GetTagsByLO(LOID); PageTags = new ObservableCollection <tag_by_page>(tags); var tlist = tags.GroupBy(t => t.name).Select(t => t).ToList(); var GroupedPagesList = new ObservableCollection <page_collection_wrapper>(); for (int i = 0; i < tlist.Count; i++) { IEnumerable <tag_by_page> group = tlist[i]; var groupCollection = new ObservableCollection <page_wrapper>(); foreach (var item in group) { groupCollection.Add(AllPagesList.Where(p => p.page.id == item.page_id).First()); } GroupedPagesList.Add(new page_collection_wrapper { PagesList = groupCollection, TagName = group.FirstOrDefault().name }); if (images) { UpdatePagesImages(0, GroupedPagesList[i].PagesList); } // GroupedPagesList.Add(AllPagesList.Where(p => p.page.id == item.page_id).First()); } LOsInCircle[loListIndex].stack.StacksList = GroupedPagesList; LOsInCircle[loListIndex].stack.IsLoaded = true; LOCurrentIndex = loListIndex; UpdateExtraInfo(LOCurrentIndex); //Download xmls //foreach (var item in list) //{ // await _mLearningService.OpenLOPage(item.url_xml); //} }
async Task LoadPages2(int loListIndex, bool images) { var lo_obj = LOsInCircle[loListIndex]; var LOID = lo_obj.lo.id; var sectionList = await _mLearningService.GetSectionsByLO(LOID); //var allSections = new ObservableCollection<LOsection>(); //Collection for transorming data var AllPagesList = new ObservableCollection <page_wrapper> (); //collections of collections var GroupedPagesList = new ObservableCollection <page_collection_wrapper>(); //For collection al pages var pagesList = new List <Page> (); foreach (var item in sectionList) { var sectionPages = await _mLearningService.GetPagesByLOSection(item.id); foreach (var page in sectionPages) { pagesList.Add(page); } var collectionWrapper = new page_collection_wrapper(); collectionWrapper.TagName = item.name; foreach (var p in sectionPages) { Mvx.Trace("Id: " + p.id); LOContent locontent = null; //LOContent locontent = new LOContent(); try { locontent = JsonConvert.DeserializeObject <LOContent> (p.content); //(locontentstring);; //locontent.lopage = JsonConvert.DeserializeObject<Lopage>(p.content); } catch (Exception e) { Mvx.Trace("Serialization error: " + e.Message); } var pw1 = new page_wrapper { page = p, content = locontent /*, id=pagecount*/ }; collectionWrapper.PagesList.Add(pw1); //AllPagesList.Add(pw1); pagecount++; } GroupedPagesList.Add(collectionWrapper); if (this.LOID == item.LO_id) { if (images) { UpdatePagesImages(0, collectionWrapper.PagesList); } } } //if (images) // UpdatePagesImages(0, GroupedPagesList[i].PagesList); LOsInCircle[loListIndex].stack.StacksList = GroupedPagesList; LOsInCircle[loListIndex].stack.IsLoaded = true; LOCurrentIndex = loListIndex; UpdateExtraInfo(LOCurrentIndex); }
async public static Task DownloadSetBytes(LOContent content) { await ProcessSlides(content); }