private void ActualizeProjectFolder(String ProjectFolderBaseDirectory, String OrteFolderBaseDirectory) { DbEntities.dbserver3.wordup.rows.Projekt[] Projekte = Data.DbServer3.WordUp.Projekte.Find_PhasenCorrectProjekte (DataWrapper.Instance.WordUpPhase.ToString()) .OrderBy(aG => aG.Ort?.OrtsTeil?.AktuallArbeitsGruppe?.NameId) .ToArray(); String OldOrteID = String.Empty; foreach (DbEntities.dbserver3.wordup.rows.Projekt projectEntry in Projekte) { if (projectEntry.OrteId.ToString() != OldOrteID) { OldOrteID = projectEntry.OrteId.ToString(); String OrtsNameID = projectEntry.Ort.NameId; List<Object> PicturesToPrint = null; //DataWrapper.Instance.CreateTreeForOrtePictures (OrteFolderBaseDirectory, projectEntry); String OrteDirectory = Path.Combine(OrteFolderBaseDirectory, DataWrapper.Instance.GetDirectoryNamePart (projectEntry, false)); String PictureFileName = Path.Combine(OrteDirectory, "Bilder.pdf"); XAMLPrintoutDefinitions.PrintFileCards PicturePrintHandler = new XAMLPrintoutDefinitions.PrintFileCards(); String CreatedPictureFileNameAndDescription = PicturePrintHandler.PrintPictureData (PicturesToPrint, PictureFileName, OrtsNameID); } String ProjectDirectory = Path.Combine(ProjectFolderBaseDirectory, DataWrapper.Instance.GetDirectoryNamePart(projectEntry)); List<Object> PicturesToPrintBefore = DataWrapper.Instance.CreateTreeForProjektBeforePictures (ProjectDirectory); List<Object> PicturesToPrintAfter = DataWrapper.Instance.CreateTreeForProjektAfterPictures (ProjectDirectory); List<Object> PicturesToPrintIntermediate = DataWrapper.Instance.CreateTreeForProjektIntermediatePictures (ProjectDirectory); String FolderFileName = DataWrapper.Instance.GetFileNameForProjectFolder(projectEntry) + ".pdf"; String FullFolderPath = Path.Combine(ProjectDirectory, FolderFileName); DateTime LastWriteTime = DateTime.MinValue; bool FolderExists = false; if (File.Exists(FullFolderPath)) { FileInfo FInfo = new FileInfo(FullFolderPath); LastWriteTime = FInfo.LastWriteTime; FolderExists = true; } String ProjektBeschreibung = projectEntry.Beschreibung; List<Object> ObjectsToPrint = DataWrapper.Instance.CreateTreeForProjekteFolder(projectEntry, "ProfisFull"); List<Object> ResultetObjectsToPrint = new List<object>(PicturesToPrintBefore); ResultetObjectsToPrint.AddRange(ObjectsToPrint); ResultetObjectsToPrint.AddRange(PicturesToPrintIntermediate); ResultetObjectsToPrint.AddRange(PicturesToPrintAfter); XAMLPrintoutDefinitions.PrintFileCards PrintHandler = new XAMLPrintoutDefinitions.PrintFileCards(); String CreatedFileNameAndDescription = PrintHandler.PrintProjektMapData(ResultetObjectsToPrint, FullFolderPath, ProjektBeschreibung); if (FolderExists) { } } }
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); }