private bool DidNotReachFinishType(Type type) =>
 !FinishTypes.Contains(type);
Beispiel #2
0
        public static IRenderer Create(FinishTypes finishTypes, RenderTypes type, object element)
        {
            switch (finishTypes)
            {
            case FinishTypes.DocumentHtmlFinish:

                if (element is Document documentHtmlFinish)
                {
                    var renderer = new DocumentFinishRenderer(documentHtmlFinish);
                    return(renderer);
                }
                else
                {
                    throw new InvalidCastException("Invalid element type");
                }

            case FinishTypes.Hyperlink:

                if (element is Hyperlink hyperlink)
                {
                    IRenderer renderer = null;

                    switch (type)
                    {
                    case RenderTypes.Text:
                        renderer = new HyperlinkTextFinishRenderer(hyperlink);
                        return(renderer);

                    case RenderTypes.Html:
                        renderer = new HyperlinkHtmlFinishRenderer(hyperlink);
                        return(renderer);

                    default:
                        throw new NotSupportedException("Not suportet Render Type");
                    }
                }
                else
                {
                    throw new InvalidCastException("Invalid element type");
                }

            case FinishTypes.Paragraph:
                if (element is Paragraph paragraph)
                {
                    IRenderer renderer = null;

                    switch (type)
                    {
                    case RenderTypes.Text:
                        renderer = new ParagraphTextFinish(paragraph);
                        return(renderer);

                    case RenderTypes.Html:
                        renderer = new ParagraphHtmlFinish(paragraph);
                        return(renderer);

                    default:
                        throw new NotSupportedException("Not suportet Render Type");
                    }
                }
                else
                {
                    throw new InvalidCastException("Invalid element type");
                }

            default:
                throw new NotSupportedException("Not suportet Element Type");
            }
        }