示例#1
0
 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);
        }