Beispiel #1
0
        public ActionResult Index()
        {
            using (var context = new MyContext())
            {
                var user = context.UserProfiles.Find(1);
                if (user == null)
                {
                    return(Content(""));
                }

                var lazyLoadedDocs = user.Docs;
                // To view its implementation, right click on the method and then select `go to implementation`
                var rpt = DocsPdfReport.CreatePdfReport(lazyLoadedDocs);

                var outputFilePath = rpt.FileName.Replace(HttpRuntime.AppDomainAppPath, string.Empty);
                return(File(outputFilePath, "application/pdf", "pdfRpt.pdf"));
            }
        }
Beispiel #2
0
        public virtual async Task <ActionResult> GetCompetitionReport(int competitionId)
        {
            var reportModel = await _participationService.GetReportAsync(competitionId);

            var pdfListStream = new List <Stream>();


            foreach (var participation in reportModel)
            {
                foreach (var competitor in participation.Competitors)
                {
                    competitor.Image = Server.MapPath("~/App_Data/User_Image/" + competitor.Image);
                }

                foreach (var technicalStaff in participation.TechnicalStaves)
                {
                    technicalStaff.Image = Server.MapPath("~/App_Data/TechnicalStaff_Image/" + technicalStaff.Image);
                }

                participation.Gender = participation.Gender == "Male" ? "مردان" : "زنان";

                var headerMessage = string.Format("اعضای تیم {0}", participation.SportName);

                if (!string.IsNullOrEmpty(participation.SportCategory))
                {
                    headerMessage += string.Format(" {0}", participation.SportCategory);
                }
                if (!string.IsNullOrEmpty(participation.SportDetail))
                {
                    headerMessage += string.Format(" {0}", participation.SportDetail);
                }

                headerMessage += string.Format(" {0} {1} {2}", participation.Gender, participation.UniversityName, participation.CompetitionName);

                var xx = DocsPdfReport.CreatePdfReport(participation, headerMessage);

                pdfListStream.Add(xx.PdfStreamOutput);
            }

            var individualsSportsReport = await _participationService.GetIndividualSportCompetitonReport(competitionId);

            foreach (var participation in individualsSportsReport)
            {
                foreach (var competitor in participation.Competitors)
                {
                    competitor.Image = Server.MapPath("~/App_Data/User_Image/" + competitor.Image);
                }

                foreach (var technicalStaff in participation.TechnicalStaves)
                {
                    technicalStaff.Image = Server.MapPath("~/App_Data/TechnicalStaff_Image/" + technicalStaff.Image);
                }

                participation.Gender = participation.Gender == "Male" ? "مردان" : "زنان";

                var headerMessage = string.Format("فهرست شرکت‌کنندگان {0}", participation.SportName);

                if (!string.IsNullOrEmpty(participation.SportCategory))
                {
                    headerMessage += string.Format(" {0}", participation.SportCategory);
                }
                if (!string.IsNullOrEmpty(participation.SportDetail))
                {
                    headerMessage += string.Format(" {0}", participation.SportDetail);
                }

                headerMessage += string.Format(" {0} {1}", participation.Gender, participation.CompetitionName);

                var xx = IndividualSportsReport.CreatePdfReport(participation, headerMessage);
                pdfListStream.Add(xx.PdfStreamOutput);
            }


            var commonTechnicalStaffsReport = await _commonTechnicalStaffService.GetCommonTechnicalStaffsReportAsync(competitionId);


            foreach (var participation in commonTechnicalStaffsReport)
            {
                foreach (var technicalStaff in participation.TechnicalStaves)
                {
                    technicalStaff.Image = Server.MapPath("~/App_Data/TechnicalStaff_Image/" + technicalStaff.Image);
                }

                var headerMessage = string.Format("فهرست اعضای کادر اجرایی {0} {1}", participation.UniversityName, participation.CompetitionName);

                var xx = CommonTechnicaStaffReport.CreatePdfReport(participation, headerMessage);

                pdfListStream.Add(xx.PdfStreamOutput);
            }


            var stream = new MemoryStream();

            new MergePdfDocuments
            {
                DocumentMetadata = new DocumentMetadata {
                    Author = "IAUN", Application = "IAUN Sport System", Keywords = "", Subject = "رشته‌های ورزشی", Title = "فهرست رشته‌های ورزشی"
                },
                WriterCustomizer = info =>
                {
                    info.ImportedPage.PdfWriter.CloseStream = false;
                },
                InputFileStreams = pdfListStream,

                OutputFileStream         = stream,
                AttachmentsBookmarkLabel = "Attachment(s) ",
            }
            .PerformMerge();

            stream.Flush();      //Always catches me out
            stream.Position = 0; //Not sure if this is required

            return(File(stream, "application/pdf", "CompetitionReport.pdf"));
        }