public MainWindowViewModel() { _businessLayer = new BusinessLayer(); pictureInfoViewModel = new PictureInfoViewModel(); pictureViewModel = new PictureViewModel(); pictureListViewModel = new PictureListViewModel(); photographerListViewModel = new PhotographerListViewModel(); pictureListViewModel.PropertyChanged += (s, e) => { switch (e.PropertyName) { case nameof(PictureListViewModel.SelectedImage): pictureViewModel.Picture = pictureListViewModel.SelectedImage; pictureViewModel.TagString = pictureViewModel.MakeTagString(); pictureViewModel.SelectedPhotographerName = pictureViewModel.Picture.Photographer.FullName; OnPropertyChanged(nameof(pictureViewModel)); pictureInfoViewModel.IPTCModel = pictureListViewModel.SelectedImage.IPTC; pictureInfoViewModel.EXIFModel = pictureListViewModel.SelectedImage.EXIF; OnPropertyChanged(nameof(pictureInfoViewModel)); break; } }; }
public bool TagReport() { string FilePath = Path.GetFullPath("../../../PDF_Reports/"); Dictionary <string, int> TagCount = new Dictionary <string, int>(); BusinessLayer _bl = new BusinessLayer(); TagCount = _bl.returnAllTagsWithCount(); string INFO = ""; string helper = ""; foreach (string key in TagCount.Keys) { //Console.WriteLine(key); int count = 0; TagCount.TryGetValue(key, out count); //Console.WriteLine(count); if (count > 1) { helper = key + ": " + count + " Bilder\n"; } if (count == 1) { helper = key + ": " + count + " Bild\n"; } INFO += helper; } using (PdfDocument document = new PdfDocument()) { document.Info.Title = "Created with PDFsharp"; PdfPage page = document.AddPage(); XGraphics gfx = XGraphics.FromPdfPage(page); gfx.SmoothingMode = XSmoothingMode.HighQuality; XTextFormatter tf = new XTextFormatter(gfx); XFont font_header = new XFont("Verdana", 20, XFontStyle.Bold); XFont font_text = new XFont("Verdana", 11, XFontStyle.Regular); XRect rect = new XRect(gfx.PageOrigin, gfx.PageSize); string title = "Tagbericht"; gfx.DrawRectangle( new XLinearGradientBrush( rect, XColor.FromKnownColor(XKnownColor.White), XColor.FromKnownColor(XKnownColor.White), XLinearGradientMode.ForwardDiagonal), rect); gfx.DrawString(title, font_header, XBrushes.Black, rect, XStringFormats.TopCenter); rect = new XRect(20, 70, page.Width, 400); gfx.DrawRectangle(XBrushes.White, rect); tf.Alignment = XParagraphAlignment.Left; tf.DrawString(INFO, font_text, XBrushes.Black, rect, XStringFormats.TopLeft); string filename = "Tagbericht.pdf"; string CompletePath = FilePath + filename; CompletePath = Path.GetFullPath(CompletePath); document.Save(CompletePath); } return(true); }