Пример #1
0
        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);
            }
Пример #2
0
        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);
                    }
                }
            }