/// <summary>
        /// Basic export function to generate PDF from one element
        /// </summary>
        /// <param name="toExport">element to export</param>
        /// <returns>A PDF Document</returns>
        public PdfDocument Export(Competentie toExport)
        {
            Document prePdf = new Document();

            //Document markup
            DefineStyles(prePdf);
            BuildCover(prePdf, "Competentie: " + toExport.Naam);

            //Here starts the real exporting
            Section sect = prePdf.AddSection();

            CompetentieExportArguments opt = new CompetentieExportArguments()
            {
                ExportAll = true
            };

            CompetentieExporterFactory cef = new CompetentieExporterFactory();

            competentieExporterStrategy = cef.GetStrategy(opt);

            try
            {
                sect = competentieExporterStrategy.Export(toExport, sect);
            }
            catch (Exception e)
            {
                sect.AddParagraph("An error has occured while invoking an export-function on Competentie: " + toExport.Naam + "\n" + e.Message, "error");
            }

            PdfDocumentRenderer rend = new PdfDocumentRenderer(false, PdfFontEmbedding.Always);

            rend.Document = prePdf;
            rend.RenderDocument();
            return(rend.PdfDocument);
        }
Exemplo n.º 2
0
        public void TestMultiCompetentiePdfOutput()
        {
            CompetentieExportArguments args = new CompetentieExportArguments()
            {
                ExportAll = true
            };
            CompetentieExportablePack pack = new CompetentieExportablePack(args, data);

            PdfDocument pdf = ces.ExportAll(pack);

            pdf.Save("D:\\Education\\Proj_blk6\\TestIO\\cp_pdf_FULL.pdf");
        }
        /// <summary>
        /// Get a decorator pattern based on given options
        /// </summary>
        /// <param name="opt">Pre-defined options</param>
        /// <returns>Decorator pattern for exporting</returns>
        public IExporter <DomainDAL.Competentie> GetStrategy(CompetentieExportArguments opt)
        {
            //make sure you keep the ExportOptions in Sync with the Stack. That way, you can just use ifs here.
            IExporter <DomainDAL.Competentie> strategy = new CompetentiePassiveExporter();

            opt.ExportNaam = true; //Always Needed, table of contents is filled with this

            Type[] typeArgs = { typeof(IExporter <DomainDAL.Competentie>) };


            if (opt.ExportAll || opt.ExportNaam)
            {
                Type t    = usableTypes["CompetentieNaamExporter"];
                var  ctor = t.GetConstructor(typeArgs);
                if (ctor != null)
                {
                    object[] parameters = { strategy };
                    strategy = ctor.Invoke(parameters) as IExporter <DomainDAL.Competentie>;
                }
            }

            if (opt.ExportAll || opt.ExportCode)
            {
                Type t    = usableTypes["CompetentieCodeExporter"];
                var  ctor = t.GetConstructor(typeArgs);
                if (ctor != null)
                {
                    object[] parameters = { strategy };
                    strategy = ctor.Invoke(parameters) as IExporter <DomainDAL.Competentie>;
                }
            }

            if (opt.ExportAll || opt.ExportBeschrijving)
            {
                Type t    = usableTypes["CompetentieBeschrijvingExporter"];
                var  ctor = t.GetConstructor(typeArgs);
                if (ctor != null)
                {
                    object[] parameters = { strategy };
                    strategy = ctor.Invoke(parameters) as IExporter <DomainDAL.Competentie>;
                }
            }

            //This won't happen. But hey, risky things an' all.
            if (strategy == null)
            {
                strategy = new CompetentiePassiveExporter();
            }

            return(strategy);
        }
        public FileStreamResult GetCompetentiesExport()
        {
            CompetentieExportArguments args = new CompetentieExportArguments()
            {
                ExportAll = true
            };
            var data = _unitOfWork.GetRepository <Competentie>().GetAll();

            var maxSchooljaar = _unitOfWork.GetRepository <Schooljaar>().GetAll().Max(src => src.JaarId);
            var lastYearData  = (from element in data where element.Schooljaar.Equals(maxSchooljaar) select element).ToList();

            IExportablePack <Competentie> pack = new CompetentieExportablePack(args, lastYearData);
            Stream fStream = _competentieExporterService.ExportAllAsStream(pack);

            HttpContext.Response.AddHeader("content-disposition", "attachment; filename=Competenties.pdf");

            return(new FileStreamResult(fStream, "application/pdf"));
        }