Example #1
0
	    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();
			}
Example #2
0
        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();
            }