public void CreatePlakatListingsDependingOnAssignmentStatus(DataWrapper.SortOrder SortCriteria, Basics.DataSelection SpecialPhase, String[] SecurityGroupParameter, bool WithOrWithoutPlakate, bool WithOrWithoutActivities, bool WithOrWithoutTermine, String OutputFileName, String HeadLine, WSPlakatContentType wsPlakatContentType) { DocumentPrintOut.ActuallOutputType = DocumentPrintOut.OutputType.RTFDocument; DocumentPrintOut PlakatWriter = new DocumentPrintOut (System.IO.Path.Combine(DataWrapper.Instance.TargetDirectory, OutputFileName), false); bool PageBreakRequested = false; PlakatWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, HeadLine); foreach (Organisation Klasse in Data.DbServer3.WordUp.Organisationen.AktuelleKlassen.OrderBy(klasse => klasse.CodeName)) { int NumberOfPlakateDerKlasse = Data.DbServer3.WordUp.WSPlakate .Count(whe => whe.Organisation == Klasse); int NumberOfAssignedPlakateDerKlasse = Data.DbServer3.WordUp.WSPlakate .Count(whe => whe.Organisation == Klasse && whe.Projekt != null); int NumberOfUnAssignedPlakateDerKlasse = Data.DbServer3.WordUp.WSPlakate .Count(whe => whe.Organisation == Klasse && whe.Projekt == null); switch (wsPlakatContentType) { case WSPlakatContentType.alle: break; case WSPlakatContentType.Zugeordnet: if (NumberOfAssignedPlakateDerKlasse == 0) continue; break; case WSPlakatContentType.nichtZugeordnet: if (NumberOfUnAssignedPlakateDerKlasse == 0) continue; break; } if (PageBreakRequested) PlakatWriter.InsertPageBreak(); PageBreakRequested = false; IEnumerable<WSPlakat> PlakateAusKlasse = Klasse.WSPlakate; PlakatWriter.WriteLine(DocumentPrintOut.ElementType.Heading2, $"Plakate der Klasse {Klasse.CodeName} " + $"alle {NumberOfPlakateDerKlasse} nZug. {NumberOfUnAssignedPlakateDerKlasse} Zug. {NumberOfAssignedPlakateDerKlasse}"); Termin connectedWSTermin = Data.DbServer3.WordUp.OrganisationenZuTerminen .Where(whe => whe.Organisation == Klasse).Select(sel => sel.Termin) .Where(whe => whe.TermineTypId == TermineTypen.WS || whe.TermineTypId == TermineTypen.OeffWS).FirstOrDefault(); List<String> Betreuer = new List<string>(); foreach (PersonZuTermin personZuTermin in connectedWSTermin.PersonenZuTerminen) Betreuer.Add(personZuTermin.Person.VorName + " " + personZuTermin.Person.FamilienName); String BetreuerNamen = String.Join(", ", Betreuer); PlakatWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, $"Betreuer beim Workshop: {BetreuerNamen}"); if (PlakateAusKlasse.Count() == 0) { PlakatWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, "Bisher keine Plakate erfasst"); continue; } String OldPlakat = String.Empty; PageBreakRequested = true; //More than 0 Plakatlines available foreach (WSPlakat PlakatZeile in PlakateAusKlasse.OrderBy(plakat => plakat.ErfassungsId)) { String projektNumber = String.Empty; switch (wsPlakatContentType) { case WSPlakatContentType.alle: break; case WSPlakatContentType.nichtZugeordnet: if (PlakatZeile.Projekt != null) continue; break; case WSPlakatContentType.Zugeordnet: if (PlakatZeile.Projekt == null) continue; projektNumber = PlakatZeile.Projekt.NumericProjektId + " - "; break; } if (OldPlakat != PlakatZeile.PlakatID) { OldPlakat = PlakatZeile.PlakatID; PlakatWriter.WriteLine(DocumentPrintOut.ElementType.Heading2, "Plakat # " + OldPlakat); } PlakatWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, $"- {projektNumber}" + PlakatZeile.LangBeschreibung); PlakatWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel2, $" {PlakatZeile.Ort.Bezeichnung} - " + $"({PlakatZeile.OrtsHinweis})"); } } PlakatWriter.Close(); }
private void CreateProjectPrintoutforWholeTableWithCummulatedOrtsBezeichnung(DataTable SortableProjekte, String FileName, List<System.Guid> UpdatedSinceLastCheckPoint, bool ChangedOrUnChanged, String Description, bool BreakByArbeitsGruppenNameID = true, bool BreakByZustaendig = true, bool BreakByOrtsTeil = true, bool BreakByOrtsBezeichnung = true, bool WithOrWithoutPlakate = true, bool WithOrWithoutActivities = true, String PrintThisSecurityGroup = "ProfisFull") { DocumentPrintOut.ActuallOutputType = DocumentPrintOut.OutputType.RTFDocument; DocumentPrintOut ProjectWriter = new DocumentPrintOut(FileName, false); if (WithOrWithoutActivities == true) ProjectWriter.PrintThisSecurityGroup = PrintThisSecurityGroup; if (WithOrWithoutPlakate == true) ProjectWriter.WithOrWithoutPlakate = WithOrWithoutPlakate; if (String.IsNullOrEmpty(Description) == false) { ProjectWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, Description, "0, 0, 0, 0", 0); } String OldArbeitsGruppenNameID = String.Empty; bool PageBreakHasBeenSetBefore = false; String OldOrtsTeil = String.Empty; String OldZustaendig = String.Empty; String OldOrteBezeichnung = String.Empty; int RunningNumber = 0; foreach (DataRow ProjectEntry in SortableProjekte.Rows) { PageBreakHasBeenSetBefore = false; if ((BreakByArbeitsGruppenNameID == true) && (OldArbeitsGruppenNameID != ProjectEntry["ArbeitsGruppenNameID"].ToString())) { OldArbeitsGruppenNameID = ProjectEntry["ArbeitsGruppenNameID"].ToString(); if (PageBreakHasBeenSetBefore == false) { PageBreakHasBeenSetBefore = true; if (!String.IsNullOrEmpty(OldArbeitsGruppenNameID)) ProjectWriter.InsertPageBreak(); } if (String.IsNullOrEmpty(OldArbeitsGruppenNameID)) ProjectWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, "Arbeitsgruppe dzt. noch nicht definiert", "0, 0, 0, 0", -0); else ProjectWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, OldArbeitsGruppenNameID, "0, 0, 0, 0", 0); OldOrtsTeil = String.Empty; } if ((BreakByOrtsTeil == true) && (OldOrtsTeil != ProjectEntry["OrtsTeil"].ToString())) { OldOrtsTeil = ProjectEntry["OrtsTeil"].ToString(); if (PageBreakHasBeenSetBefore == false) { PageBreakHasBeenSetBefore = true; ProjectWriter.InsertPageBreak(); } if (String.IsNullOrEmpty(OldOrtsTeil)) ProjectWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, "Ortsteil dzt. noch nicht definiert", "0, 0, 0, 0", -0); else ProjectWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, OldOrtsTeil, "0, 0, 0, 0", 0); OldZustaendig = String.Empty; OldOrteBezeichnung = String.Empty; } if ((BreakByOrtsBezeichnung == true) && (OldOrteBezeichnung != DataWrapper.Instance.GetOrteBezeichnung(ProjectEntry))) { OldOrteBezeichnung = DataWrapper.Instance.GetOrteBezeichnung(ProjectEntry); ProjectWriter.InsertEmptyLine(); if (String.IsNullOrEmpty(OldOrteBezeichnung)) ProjectWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, "Ort dzt. noch nicht definiert", "10, 0, 0, 0", -5); else ProjectWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, OldOrteBezeichnung, "10, 0, 0, 0", -5); OldZustaendig = String.Empty; } if ((BreakByZustaendig == true) && (OldZustaendig != ProjectEntry["ZustaendigID"].ToString())) { OldZustaendig = ProjectEntry["ZustaendigID"].ToString(); if (PageBreakHasBeenSetBefore == false) { PageBreakHasBeenSetBefore = true; ProjectWriter.InsertPageBreak(); } ProjectWriter.WriteLine(DocumentPrintOut.ElementType.Heading2, Basics.Instance.Zustaendig[OldZustaendig.ToLower()]["Beschreibung"].ToString(), "20, 0, 0, 0", -10); } if (UpdatedSinceLastCheckPoint != null) { if (UpdatedSinceLastCheckPoint.Contains((System.Guid) ProjectEntry["ID"]) == ChangedOrUnChanged) ProcessOneProjectToPrintout(ProjectWriter, ProjectEntry["ID"].ToString(), DocumentPrintOut.ElementType.ProjektDatenOhneOrtsBezeichnung, WithOrWithoutPlakate, WithOrWithoutActivities); } else { ProcessOneProjectToPrintout(ProjectWriter, ProjectEntry["ID"].ToString(), DocumentPrintOut.ElementType.ProjektDatenOhneOrtsBezeichnung, WithOrWithoutPlakate, WithOrWithoutActivities); } } ProjectWriter.Close(); }