public MyRenderItem(XMLRender.RenderArray.RenderItem RendItem) { if (RendItem.TextItems.First().DisplayClass == XMLRender.RenderArray.RenderDisplayClass.eReference) { Chapter = ((int[])RendItem.TextItems.First().Text)[0]; Verse = ((int[])RendItem.TextItems.First().Text)[1]; Word = ((int[])RendItem.TextItems.First().Text).Count() == 2 ? -1 : ((int[])RendItem.TextItems.First().Text)[2]; } else { Chapter = -1; Verse = -1; Word = -1; } Items = System.Linq.Enumerable.Select(RendItem.TextItems.GroupBy((MainItems) => (MainItems.DisplayClass == XMLRender.RenderArray.RenderDisplayClass.eArabic || MainItems.DisplayClass == XMLRender.RenderArray.RenderDisplayClass.eLTR || MainItems.DisplayClass == XMLRender.RenderArray.RenderDisplayClass.eRTL || MainItems.DisplayClass == XMLRender.RenderArray.RenderDisplayClass.eTransliteration) ? (object)MainItems.DisplayClass : (object)MainItems), (Arr) => (Arr.First().Text.GetType() == typeof(List<XMLRender.RenderArray.RenderItem>)) ? (object)new VirtualizingWrapPanelAdapter() { RenderModels = new List<MyRenderModel>() { new MyRenderModel(System.Linq.Enumerable.Select((List<XMLRender.RenderArray.RenderItem>)Arr.First().Text, (ArrRend) => new MyRenderItem((XMLRender.RenderArray.RenderItem)ArrRend)).ToList()) } } : ((Arr.First().DisplayClass == XMLRender.RenderArray.RenderDisplayClass.eContinueStop) ? (object)new MyChildRenderStopContinue((bool)((object[])Arr.First().Text)[0], (List<IslamMetadata.Arabic.FullRuleMetadata>)((object[])Arr.First().Text)[1]) : (Arr.First().Text.GetType() == typeof(string) ? (object)new MyChildRenderItem(System.Linq.Enumerable.Select(Arr, (ArrItem) => new MyChildRenderBlockItem() { ItemText = (string)ArrItem.Text, Clr = ArrItem.Clr }).ToList(), Arr.First().DisplayClass == XMLRender.RenderArray.RenderDisplayClass.eArabic, Arr.First().DisplayClass == XMLRender.RenderArray.RenderDisplayClass.eArabic || Arr.First().DisplayClass == XMLRender.RenderArray.RenderDisplayClass.eRTL) : null))).Where(Arr => Arr != null).ToList(); MaxWidth = CalculateWidth(); }
/// <summary> /// Construct Render Struct from give parameters /// </summary> /// <param name="exportFormat">Render Format</param> /// <param name="outputFormat">Output format if needed</param> /// <returns>RS Render Struct</returns> public RSRenderStruct ConstructRenderStruct(string exportFormat, string outputFormat) { RSRenderStruct renderStruct = null; switch (exportFormat.ToUpperInvariant()) { case "CSV": renderStruct = new CSVRender(); break; case "XML": renderStruct = new XMLRender(); break; case "PDF": renderStruct = new PDFRender(); break; case "IMAGE": renderStruct = new IMAGERender(); ((IMAGERender)renderStruct).OutputFormat = outputFormat; break; case "WORD": renderStruct = new WORDRender(); break; case "WORDOPENXML": renderStruct = new WORDOPENXMLRender(); break; case "EXCEL": renderStruct = new EXCELRender(); break; case "EXCELOPENXML": renderStruct = new EXCELOPENXMLRender(); break; case "RGDI": renderStruct = new RGDIRender(); break; case "EMF": renderStruct = new EMFRender(); break; case "HTML4.0": renderStruct = new HTML40Render(); break; case "HTML5": renderStruct = new HTML50Render(); break; case "MHTML": renderStruct = new MHTMLRender(); break; case "ATOM": renderStruct = new ATOMRender(); break; case "PPTX": renderStruct = new PPTXRender(); break; default: break; } return(renderStruct); }