public static void InitializePDFErzeugung(TestContext testContext)
 {
     krDTO = new KundenrechnungDTO();
     krDTO.RechnungsNr = 123;
     krDTO.Rechnungsbetrag = new WaehrungsType(10);
     krDTO.RechnungBezahlt = false;
     ////krDTO.Zahlungseingang = new Zahlungseingang();
     ////krDTO.Sendungsanfrage = 1;
     ////krDTO.Rechnungsadressen = new List<int>();
 }
        public void TestPDFErzeugung()
        {
            ////PDFErzeugungKomponenteFacade pdf = new PDFErzeugungKomponenteFacade(krDTO);

            ////pdf.ErstelleKundenanschrift(new AdresseDTO() { Strasse = "Müllweg", Hausnummer = "1", PLZ = "12345", Wohnort = "Müllstadt", Land = "Müllland" });

            ////pdf.ErstelleTransportplanschrittkosten("Hamburg", "München", new WaehrungsType(10), "Bollerwagen");
            ////pdf.ErstelleTransportplanschrittkosten("München", "Timbuktu", new WaehrungsType(5), "Storch");

            ////string file = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + @"\asd.pdf";
            ////pdf.SpeicherePDF(file);
            ////Assert.IsTrue(File.Exists(file), "Datei existiert nicht");

            ////Adresse kundenadresse = new Adresse() { Strasse = "ABC-Strasse", Hausnummer = "123", Land = "Nimmerland", PLZ = "xyz", Wohnort = "hinterm Baum" }; 
            WaehrungsType betrag = new WaehrungsType(987654321);
            KundenrechnungDTO krDTO = new KundenrechnungDTO() { RechnungsNr = 1, RechnungBezahlt = false, Rechnungsadresse = 1, Rechnungsbetrag = betrag, Sendungsanfrage = 1 };
            Mock<IGeschaeftspartnerServicesFuerPDFErzeugung> geschaeftspartnerServicesFuerPDFErzeugung = new Mock<IGeschaeftspartnerServicesFuerPDFErzeugung>();
            IPDFErzeugungsServicesFuerBuchhaltung pDFErzeungServicesFuerBuchhaltung = new PDFErzeugungKomponenteFacade(geschaeftspartnerServicesFuerPDFErzeugung.Object);
            ////PDFErzeungServicesFuerBuchhaltung.ErstelleKundenrechnungPDF(krDTO, ;
        }
 public void TestErstellePDFSuccess()
 {
     Adresse kundenadresse = new Adresse() { Strasse = "ABC-Strasse", Hausnummer = "123", Land = "Nimmerland", PLZ = "4567", Wohnort = "hinterm Baum" };
     IList<AdresseDTO> adressen = new List<AdresseDTO>();
     adressen.Add(kundenadresse.ToDTO());
     GeschaeftspartnerDTO gpDTO = new GeschaeftspartnerDTO()
     {
         Adressen = adressen,
         Email = new EMailType("*****@*****.**"),
         Vorname = "Hans",
         Nachname = "Peter",
     };
     geschaeftspartnerServices.CreateGeschaeftspartner(ref gpDTO);
     KundenrechnungDTO krDTO = new KundenrechnungDTO() 
     {
          RechnungBezahlt = false,
          Rechnungsadresse = 1, 
          Rechnungsbetrag = new WaehrungsType(987654321), 
     };
     IList<TransportplanSchrittDTO> tpSchritte = new List<TransportplanSchrittDTO>();
     pDFErzeungServicesFuerBuchhaltung.ErstelleKundenrechnungPDF(ref krDTO, tpSchritte);
 }
        private void SpeicherePDF(KundenrechnungDTO krDTO, string[] kundenadresse, string gesamtsumme, string erstellungsdatum, string[] tpSchritte)
        {
            // Dokument
            PdfDocument pdfDocument = new PdfDocument();
            pdfDocument.Info.Title = @"Kundenrechnung für Rechnung Nr. " + krDTO.RechnungsNr;

            // Page
            PdfPage pdfPage = pdfDocument.AddPage();

            // XGraphics
            XGraphics gfx = XGraphics.FromPdfPage(pdfPage);

            // Create a font
            XFont font = new XFont("Verdana", 10, XFontStyle.Regular);

            // Logo
            try
            {
                XImage image = XImage.FromFile(logoPath);
                double x = (1000 - (image.PixelWidth * (72 / image.HorizontalResolution))) / 2;
                gfx.DrawImage(image, x, 50);

                //XImage xImage = XImage.FromFile(logoPath);
                //gfx.DrawImage(xImage, 10, 10, xImage.PixelWidth, xImage.PixelWidth);
            }
            catch (Exception)
            {
            }

            // Kundenanschrift
            int y = 100;
            foreach (string str in kundenadresse)
            {
                gfx.DrawString(str, font, XBrushes.Black, new XRect(50, y, pdfPage.Width, pdfPage.Height), XStringFormats.TopLeft);
                y += 10;
            }

            // Erstellungsdatum
            gfx.DrawString(erstellungsdatum, font, XBrushes.Black, new XRect(200, 200, pdfPage.Width, pdfPage.Height), XStringFormats.TopCenter);

            // Transportplanschrittkosten
            XFont font3 = new XFont("Verdana", 11, XFontStyle.Italic);
            int z = 0;
            foreach (string str in tpSchritte)
            {
                gfx.DrawString("Platzhalter Start - Platzhalter Ende          " + str + "€", font3, XBrushes.Black, new XRect(0, z, pdfPage.Width, pdfPage.Height), XStringFormats.Center);
                z += 80;
            }

            //Horizontale Linie#
            int j = -220;
            for (int i = 0; i < 80; i++)
            {
                gfx.DrawString("_", font, XBrushes.Black, new XRect(j, 200, pdfPage.Width, pdfPage.Height), XStringFormats.Center);
                j += 3;
            }

            // Gesamtkosten
            XFont font2 = new XFont("Verdana", 16, XFontStyle.Bold);
            gfx.DrawString("Gesamtkosten: " + gesamtsumme.ToString() + "€", font2, XBrushes.Black, new XRect(-100, 220, pdfPage.Width, pdfPage.Height), XStringFormats.Center);

            // Speichere das Dokument
            pdfDocument.Save(Environment.CurrentDirectory + @"\BLUB.pdf");

            // Öffne das PDF mit dem default pdfViewer
            //Process.Start(target);   
        }
        public void ErstelleKundenrechnungPDF(ref KundenrechnungDTO krDTO, IList<TransportplanSchrittDTO> tpSchritte)
        {
            int adNr = krDTO.Rechnungsadresse;
            AdresseDTO adrDTO = geschaeftspartnerServiceFuerPDFErzeugung.FindeAdresseZuID(adNr);
            WaehrungsType gesamtKosten = krDTO.Rechnungsbetrag;
            decimal gkosten = Math.Round(gesamtKosten.Wert, 2);
            DateTime erstellungsDatum = DateTime.Now;

            string[] kundenadresse = ErstelleKundenanschrift(adrDTO);
            string[] tpsStr = ErstelleTransportplanschrittkosten(tpSchritte);
            SpeicherePDF(krDTO, kundenadresse, gkosten.ToString(), erstellungsDatum.ToString(), tpsStr);
        }