public void CreatePlakatListings(DataWrapper.SortOrder SortCriteria, Basics.DataSelection SpecialPhase, String[] SecurityGroupParameter, bool WithOrWithoutPlakate, bool WithOrWithoutActivities, bool WithOrWithoutTermine, String OutputFileName, String HeadLine) { WSPlakatContentType[] typesToProcess = new WSPlakatContentType[] { WSPlakatContentType.nichtZugeordnet, WSPlakatContentType.Zugeordnet, WSPlakatContentType.alle }; foreach (WSPlakatContentType wsPlakatContentType in typesToProcess) { String TopHeadLine = String.Empty; switch (wsPlakatContentType) { case WSPlakatContentType.alle: TopHeadLine = $"{HeadLine} {DateTime.Now.ToString("MMM-dd")} erfasste Plakate aller Klassen"; break; case WSPlakatContentType.nichtZugeordnet: TopHeadLine = $"{HeadLine} {DateTime.Now.ToString("MMM-dd")} noch nicht zugeordnete Plakate"; break; case WSPlakatContentType.Zugeordnet: TopHeadLine = $"{HeadLine} {DateTime.Now.ToString("MMM-dd")} nur zugeordnete Plakate"; break; } String DetailedOutputFileName = OutputFileName.Replace(".", $"_{wsPlakatContentType}."); CreatePlakatListingsDependingOnAssignmentStatus(SortCriteria, SpecialPhase, SecurityGroupParameter, WithOrWithoutPlakate, WithOrWithoutActivities, WithOrWithoutTermine, DetailedOutputFileName, TopHeadLine, wsPlakatContentType); } }
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(); }