public String CreateMultiProjectProjectFolder(DbEntities.dbserver3.wordup.rows.Projekt[] ProjectsToCreate, String TargetDirectory, String Description, String FileNameElement = "") { //String ProjectFolderBaseDirectory = Basics.Instance.ProjektMaterialDirectory; //String OrteFolderBaseDirectory = Basics.Instance.OrtsMaterialDirectory; String FileName = String.Empty; if (String.IsNullOrEmpty(FileNameElement)) FileName = Path.Combine(TargetDirectory, "ProjektMappe_" + DateTime.Now.ToString("yyyy-MMM-dd_HH_mm") + ".pdf"); else FileName = Path.Combine(TargetDirectory, WMB.Basics.ConvertToCorrectFileNameElement(FileNameElement) + ".pdf"); Guid OldOrteID = Guid.Empty; List<Object> ResultetObjectsToPrint = new List<Object>(); foreach (DbEntities.dbserver3.wordup.rows.Projekt projectEntry in ProjectsToCreate) { PlanungPrint planungPrint = new PlanungPrint(projectEntry) { PageBreakAllowedBefore = true }; ResultetObjectsToPrint.Add(planungPrint); planungPrint.MaximalWMUValue = Data.DbServer3.WordUp.Projekte.WMUDistribution.Keys.Max(); planungPrint.MaximalWSPLakateValue = Data.DbServer3.WordUp.Projekte.WSPlakateDistribution.Keys.Max(); planungPrint.MaximalWertigkeitValue = Data.DbServer3.WordUp.Projekte.WertigkeitValueDistribution.Keys.Max(); ResultetObjectsToPrint.Add(new HeadLinePrint("Bemerkungen:", "SubSubSub")); foreach (Aktivitaet aktivitaet in projectEntry.Aktivitaeten) { ResultetObjectsToPrint.Add(new AktivitaetenPrint(aktivitaet) { }); } ResultetObjectsToPrint.Add(new HeadLinePrint("Ideen", "SubSubSub")); foreach (WSPlakat wsPlakat in projectEntry.WSPlakate) { ResultetObjectsToPrint.Add(new IdeePrint(wsPlakat) {} ); } foreach (ProjektZuTermin projektZuTermin in Data.DbServer3.WordUp.ProjekteZuTerminen.Find_By_ProjekteId(projectEntry.Id) ) { TerminPrint TerminRoot = new TerminPrint(projektZuTermin.Termin); ResultetObjectsToPrint.Add(TerminRoot); bool firstTeam = true; bool firstVertreter = true; foreach (PersonZuTermin PersonZuTerminEntry in Data.DbServer3.WordUp.PersonenZuTerminen .FindOrLoad_ActivePersonenZuTerminen(projektZuTermin.Termin.Id) .Where(sel => Data.DbServer3.WordUp.Typen.AllTypIDsForBetreuer.Contains((Guid)sel.PersonenTypId))) { if (firstTeam) { ResultetObjectsToPrint.Add(new HeadLinePrint("Betreuer", "Sub") { PageBreakAllowedBefore = true, BorderPadding = new Thickness(40, 10, 0, 0) }); firstTeam = false; } TeamPersonPrint TeamPerson = new TeamPersonPrint(PersonZuTerminEntry); TeamPerson.BorderPadding = new Thickness(40, 0, 0, 0); ResultetObjectsToPrint.Add(TeamPerson); } foreach (PersonZuTermin PersonZuTerminEntry in Data.DbServer3.WordUp.PersonenZuTerminen .FindOrLoad_ActivePersonenZuTerminen(projektZuTermin.Termin.Id) .Where(sel => Data.DbServer3.WordUp.Typen.AllTypIDsForVertreter.Contains((Guid)sel.PersonenTypId))) { if (firstVertreter) { ResultetObjectsToPrint.Add(new HeadLinePrint("VertreterInnen", "Sub") { PageBreakAllowedBefore = true, BorderPadding = new Thickness(40, 10, 0, 0) }); firstVertreter = false; } VertreterPersonPrint VertreterPerson = new VertreterPersonPrint(PersonZuTerminEntry); VertreterPerson.BorderPadding = new Thickness(40, 0, 0, 0); ResultetObjectsToPrint.Add(VertreterPerson); } } if (projectEntry.Ort.Id != OldOrteID) { OldOrteID = projectEntry.Ort.Id; ResultetObjectsToPrint.AddRange(DataWrapper.Instance.CreateTreeForOrtePictures (projectEntry)); } } XAMLPrintoutDefinitions.PrintFileCards PicturePrintHandler = new XAMLPrintoutDefinitions.PrintFileCards(); return PicturePrintHandler.PrintProjektMapData(ResultetObjectsToPrint, FileName, Description); }
public void CreateAllForOneProjectToPrint(Basics.DataSelection Phase, List<Object> CollectionOfClassesToPrint, DbEntities.dbserver3.wordup.rows.Projekt ProjektToUse, ref bool FirstProjekt, bool WithOrWithoutPlakate = false, bool WithOrWithoutActivities = false, bool WithOrWithoutTermine = false, bool WithOrWithoutProjektUebersicht = false, String SecurityGroup = "ProfisFull") { ProjektPrintRoot RootProjektObject = null; switch (Phase) { case Basics.DataSelection.Wuensche: RootProjektObject = new WunschPrint(ProjektToUse); break; case Basics.DataSelection.Planungen: RootProjektObject = new PlanungPrint(ProjektToUse); break; case Basics.DataSelection.Projekte: RootProjektObject = new ProjektPrint(ProjektToUse); break; case Basics.DataSelection.Realisierungen: RootProjektObject = new RealisierungPrint(ProjektToUse); break; case Basics.DataSelection.Fertig: RootProjektObject = new FertigPrint(ProjektToUse); break; } RootProjektObject.MaximalWMUValue = Data.DbServer3.WordUp.Projekte.WMUDistribution.Keys.Max(); RootProjektObject.MaximalWSPLakateValue = Data.DbServer3.WordUp.Projekte.WSPlakateDistribution.Keys.Max(); RootProjektObject.MaximalWertigkeitValue = Data.DbServer3.WordUp.Projekte.WertigkeitValueDistribution.Keys.Max(); if (FirstProjekt) { FirstProjekt = false; } else { RootProjektObject.PageBreakAllowedBefore = true; } RootProjektObject.BorderPadding = new Thickness(40, 10, 0, 0); CollectionOfClassesToPrint.Add(RootProjektObject); if (WithOrWithoutActivities) { bool FirstAktivitaet = true; foreach (Aktivitaet AktivitaetenEntry in Data.DbServer3.WordUp.Aktivitaeten.Collection .Where(Entry => Entry.ProjektId == ProjektToUse.Id).OrderByDescending(ord => ord.CreationDateTime)) { if (FirstAktivitaet) { CollectionOfClassesToPrint.Add(new HeadLinePrint("Bemerkungen:", "SubSubSub")); FirstAktivitaet = false; } AktivitaetenPrint RootAktivitaetenPrint = new AktivitaetenPrint(AktivitaetenEntry); RootProjektObject.Aktivitaeten.Add(RootAktivitaetenPrint); RootAktivitaetenPrint.BorderPadding = new Thickness(80, 0, 0, 0); CollectionOfClassesToPrint.Add(RootAktivitaetenPrint); } } if (WithOrWithoutPlakate) { bool FirstIdee = true; foreach (WSPlakat PlakatEntry in Data.DbServer3.WordUp.WSPlakate.Collection .Where(Entry => Entry.ProjektId == ProjektToUse.Id)) { if (FirstIdee) { CollectionOfClassesToPrint.Add(new HeadLinePrint("Ideen", "SubSubSub")); FirstIdee = false; } IdeePrint RootIdeePrint = new IdeePrint(PlakatEntry) { ShowWMUDetail = true }; RootProjektObject.Ideen.Add(RootIdeePrint); RootIdeePrint.BorderPadding = new Thickness(80, 0, 0, 0); CollectionOfClassesToPrint.Add(RootIdeePrint); } } if (WithOrWithoutTermine) { bool FirstTermin = true; foreach ( Termin TerminEntry in Data.DbServer3.WordUp.Termine.Find_ForSpecificProjektID(ProjektToUse.Id)) { if (FirstTermin) { CollectionOfClassesToPrint.Add(new HeadLinePrint("Termine, die eine Verbindung mit dem Projekt " + RootProjektObject.NumericProjektID.Substring(3) + " haben", "SubSubSub")); FirstTermin = false; } AddOnTerminPrint RootTerminPrint = new AddOnTerminPrint(TerminEntry); RootProjektObject.Termine.Add(RootTerminPrint); RootTerminPrint.BorderPadding = new Thickness(80, 0, 0, 0); CollectionOfClassesToPrint.Add(RootTerminPrint); } } }