using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Text; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.HelperClasses.AmiTorzslapCOs; using Kreta.Core; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Resources; using AsposeWords = Aspose.Words; namespace Kreta.BusinessLogic.Helpers { public partial class AsposeHelper { public MemoryStream GetAmiTorzslap(Stream sablonStream, int formatumId) { var torzslapCo = new AmiTorzslapCo(_ds, options.DocumentParameters, options.TanevId); Dictionary sablonokNeve; if (this.options.DocumentParameters.MuveszetiAgId == (int)MuveszetiAgEnum.ZenemuveszetiAg) { sablonokNeve = new Dictionary { { false, AmiTorzslapResource.ZenemuveszetiSablon }, { true, AmiTorzslapResource.ZenemuveszetiSNISablon }, }; } else { sablonokNeve = new Dictionary { { false, AmiTorzslapResource.NemZenemuveszetiSablon }, { true, AmiTorzslapResource.NemZenemuveszetiSNISablon }, }; } var resultDoc = new AsposeWords.Document(); AsposeWords.Style normal = resultDoc.Styles[AsposeWords.StyleIdentifier.Normal]; normal.Font.Name = AmiTorzslapResource.UsedFontName; normal.Font.Size = AmiTorzslapConstants.UsedFontSize; foreach (var co in torzslapCo.TanuloTorzslapCoList.OrderBy(x => x.TorzslapSzam?.Length ?? 0).ThenBy(x => x.TorzslapSzam)) { var kellSni = (co.TanuloSniAdatok != null) && this.options.DocumentParameters.SNIMegjelenites; var sablonPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"Resources\AsposeSablonok\{sablonokNeve[kellSni]}"); var doc = new AsposeWords.Document(sablonPath, new AsposeWords.LoadOptions()); var table = (AsposeWords.Tables.Table)doc.GetChild(AsposeWords.NodeType.Table, 0, true); if (this.options.DocumentParameters.FejlecMegjelenitese) { SetFejlecAdatok(table, co); } else { for (int i = 0; i < 4; i++) { foreach (AsposeWords.Tables.Cell cell in table.Rows[i].Cells) { cell.CellFormat.Borders.Top.Color = Color.White; cell.CellFormat.Borders.Bottom.Color = Color.White; cell.CellFormat.Borders.Left.Color = Color.White; cell.CellFormat.Borders.Right.Color = Color.White; cell.FirstParagraph.Runs.Clear(); cell.LastParagraph.Runs.Clear(); } } } if (this.options.DocumentParameters.AdatokMegjelenitese) { SetTantargyAdatok(table, co, kellSni); if (kellSni) { SetSNIAdatok(table, co); } if (this.options.DocumentParameters.FelmentesekMegjelenitese) { SetFelmentesek(table, co, kellSni); } if (this.options.DocumentParameters.FeljegyzesekMegjelenitese) { SetFeljegyzesek(table, co, kellSni); } SetZaradekok(table, co, kellSni); } else { for (int i = 4; i < table.Rows.Count; i++) { for (int j = 0; j < table.Rows[i].Cells.Count; j++) { AsposeWords.Tables.Cell cell = table.Rows[i].Cells[j]; cell.CellFormat.Borders.Top.Color = Color.White; cell.CellFormat.Borders.Bottom.Color = Color.White; cell.CellFormat.Borders.Left.Color = Color.White; cell.CellFormat.Borders.Right.Color = Color.White; cell.Paragraphs.Clear(); var newParagraph = new AsposeWords.Paragraph(doc); newParagraph.ParagraphBreakFont.Size = AmiTorzslapConstants.UsedFontSize; newParagraph.ParagraphBreakFont.Name = AmiTorzslapResource.UsedFontName; var newRun = new AsposeWords.Run(doc, i == 5 && j == 5 ? AsposeWords.ControlChar.LineBreak : i == 25 && j == 0 && kellSni ? " " + AsposeWords.ControlChar.LineBreak + " " + AsposeWords.ControlChar.LineBreak : i == 26 && kellSni ? " " + AsposeWords.ControlChar.LineBreak : " "); newRun.Font.Name = AmiTorzslapResource.UsedFontName; newRun.Font.Size = AmiTorzslapConstants.UsedFontSize; newParagraph.Runs.Add(newRun); cell.Paragraphs.Add(newParagraph); } } } resultDoc.AppendDocument(doc, AsposeWords.ImportFormatMode.KeepSourceFormatting); } resultDoc.Sections.RemoveAt(0); SetWordDocumentKotesMargo(resultDoc); var ms = new MemoryStream(); resultDoc.Save(ms, formatumId == (int)NyomtatvanyFormatumEnum.Word ? AsposeWords.SaveFormat.Docx : AsposeWords.SaveFormat.Pdf); ms.Position = 0; return ms; } private void SetFejlecAdatok(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co) { var sorSzama = 0; var oszlopSzama = 0; var baseRun = new AsposeWords.Run(table.Document); baseRun.Font.Name = AmiTorzslapResource.UsedFontName; baseRun.Font.Size = options.DocumentParameters.BetuMeretFejlec; table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TorzslapSzam)); table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanuloNeve)); table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.OktatasiAzonosito)); table.Rows[sorSzama++].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, string.Join(AsposeWords.ControlChar.LineBreak, co.FoglalkozasiNaploAdatCos?.OrderByDescending(x => x.IsOsztalyos).ThenBy(x => x.NaploSzam).Select(x => $"{x.TanuloSzam}/{x.NaploSzam}") ?? new List()))); oszlopSzama = 0; table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.BeirasiNaploSorszam)); table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.EvfolyamNeve)); if (string.IsNullOrWhiteSpace(co.EvfolyamNeve)) { AddHibaKomment(table, sorSzama, oszlopSzama - 1, AmiTorzslapResource.NincsMegadvaFotargy); } table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, string.Join(", ", new List { co.SzuletesiHelye, co.SzuletesiOrszag }))); table.Rows[sorSzama++].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.SzuletesiIdeje.ToString(Constants.ToStringPattern.HungarianDate))); oszlopSzama = 0; table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.AnyjaNeve)); table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.AllampolgarsagNeve)); table.Rows[sorSzama++].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, $"{co.TartozkodasJogcime}{(string.IsNullOrWhiteSpace(co.OkiratSzama) ? "" : $", {co.OkiratSzama}")}")); oszlopSzama = 0; table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanevNeve)); table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.MuveszetiAgNeve?.Substring(0, co.MuveszetiAgNeve.Length - 4))); if (this.options.DocumentParameters.MuveszetiAgId == (int)MuveszetiAgEnum.ZenemuveszetiAg) { table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.MufajNeve)); if (string.IsNullOrWhiteSpace(co.MufajNeve)) { AddHibaKomment(table, sorSzama, oszlopSzama - 1, AmiTorzslapResource.NincsMegadvaFotargy); } } table.Rows[sorSzama++].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanszakNeve)); if (string.IsNullOrWhiteSpace(co.TanszakNeve)) { AddHibaKomment(table, sorSzama - 1, oszlopSzama - 1, AmiTorzslapResource.NincsMegadvaFotargy); } } private void SetTantargyAdatok(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni) { var baseRun = new AsposeWords.Run(table.Document); baseRun.Font.Name = AmiTorzslapResource.UsedFontName; baseRun.Font.Size = options.DocumentParameters.BetuMeretAdatok; var pontpont = "................................................"; var isZenemuveszetiAg = options.DocumentParameters.MuveszetiAgId == (int)MuveszetiAgEnum.ZenemuveszetiAg; var alapVizsgaAdatok = co.AlapVizsgaAdatokCos.OrderByDescending(x => x.Datum).FirstOrDefault(); if (alapVizsgaAdatok != default) { var alapvizsgaOszlop = isZenemuveszetiAg ? 6 : 2; table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[0].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center; table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[0].Runs.Clear(); table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[0].Runs.Add(GetRunWithText(baseRun, isZenemuveszetiAg ? alapVizsgaAdatok.MufajNeve : alapVizsgaAdatok.MuveszetiAgNeve)); table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[2].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center; table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[2].Runs.Clear(); table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[2].Runs.Add(GetRunWithText(baseRun, alapVizsgaAdatok.TanszakNeve)); table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[6].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center; var zarojel = table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[6].LastChild as AsposeWords.Run; zarojel.Text = zarojel.Text.Substring(zarojel.Text.Length - 1); table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[6].Runs.Insert( table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[6].Count - 1, GetRunWithText(baseRun, alapVizsgaAdatok.OMKod)); table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[9].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center; table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[9].Runs.Clear(); table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[9].Runs.Add(GetRunWithText(baseRun, alapVizsgaAdatok.Ertekeles)); var avKeltezes = (!string.IsNullOrWhiteSpace(alapVizsgaAdatok.KeltezesHelye) && alapVizsgaAdatok.KeltezesDatuma.HasValue) ? $"{alapVizsgaAdatok.KeltezesHelye}, {alapVizsgaAdatok.KeltezesDatuma.Value.ToString(this.options.DocumentParameters.KeltFormatum == KeltFormatumTipusEnum.Szammal ? Constants.ToStringPattern.HungarianDate : Constants.ToStringPattern.HungarianLongDate)}" : pontpont.Substring(8); table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[11].LastChild.Remove(); table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[11].Runs.Add(GetRunWithText(baseRun, avKeltezes)); var alapVizsgaAdatokTobbi = co.AlapVizsgaAdatokCos.FindAll(x => x != alapVizsgaAdatok).ToList(); if (alapVizsgaAdatokTobbi.Count > 0) { AddHibaKommentTobbesAlapZaroVizsgaErtekeles(table, 5, alapvizsgaOszlop, alapVizsgaAdatokTobbi, AmiTorzslapResource.TobbAlapvizsgaErtekelesVanMegadva); } } var zaroVizsgaAdatok = co.ZaroVizsgaAdatokCos.OrderByDescending(x => x.Datum).FirstOrDefault(); if (zaroVizsgaAdatok != default) { var zarovizsgaOszlop = isZenemuveszetiAg ? 3 : 1; table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[0].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center; table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[0].Runs.Clear(); table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[0].Runs.Add(GetRunWithText(baseRun, isZenemuveszetiAg ? zaroVizsgaAdatok.MufajNeve : zaroVizsgaAdatok.MuveszetiAgNeve)); table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[2].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center; table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[2].Runs.Clear(); table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[2].Runs.Add(GetRunWithText(baseRun, zaroVizsgaAdatok.TanszakNeve)); table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[6].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center; var zarojel = table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[6].LastChild as AsposeWords.Run; zarojel.Text = zarojel.Text.Substring(zarojel.Text.Length - 1); table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[6].Runs.Insert( table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[6].Count - 1, GetRunWithText(baseRun, zaroVizsgaAdatok.OMKod)); table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[9].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center; table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[9].Runs.Clear(); table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[9].Runs.Add(GetRunWithText(baseRun, zaroVizsgaAdatok.Ertekeles)); var zvKeltezes = (!string.IsNullOrWhiteSpace(zaroVizsgaAdatok.KeltezesHelye) && zaroVizsgaAdatok.KeltezesDatuma.HasValue) ? $"{zaroVizsgaAdatok.KeltezesHelye}, {zaroVizsgaAdatok.KeltezesDatuma.Value.ToString(this.options.DocumentParameters.KeltFormatum == KeltFormatumTipusEnum.Szammal ? Constants.ToStringPattern.HungarianDate : Constants.ToStringPattern.HungarianLongDate)}" : pontpont.Substring(8); table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[11].LastChild.Remove(); table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[11].Runs.Add(GetRunWithText(baseRun, zvKeltezes)); var zaroVizsgaAdatokTobbi = co.ZaroVizsgaAdatokCos.FindAll(x => x != zaroVizsgaAdatok).ToList(); if (zaroVizsgaAdatokTobbi.Count > 0) { AddHibaKommentTobbesAlapZaroVizsgaErtekeles(table, 23, zarovizsgaOszlop, zaroVizsgaAdatokTobbi, AmiTorzslapResource.TobbZarovizsgaErtekelesVanMegadva); } } if (isZenemuveszetiAg) { SetZenemuveszetiTargyak(table, co, kellSni, baseRun); } else { SetNemZenemuveszetiTargyak(table, co, kellSni, baseRun); } } private void SetZenemuveszetiTargyak(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni, AsposeWords.Run baseRun) { var targyakSorSzama = 6; var szovegesErtekelesSorSzama = 25; if (kellSni) { szovegesErtekelesSorSzama += 2; } // főtárgy var foTargyak = co.ZenemuveszetiAgTantargyCos.Where(x => x.IsFotargy && !x.IsSzorgalom).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList(); int? kivalasztottFotargyId = null; if (foTargyak.Count > 0) { var targy = foTargyak[0]; kivalasztottFotargyId = targy.Id; var targyNev = targy.Nev + AmiTorzslapResource.FotargyNevPostfix; table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targyNev)); var evfolyamNeve = targy.EvfolyamNeve; var tagozatNeve = targy.TagozatNeve; if (evfolyamNeve == EvfolyamTipusEnum.na.GetDisplayName(options.TanevId)) { evfolyamNeve = ""; } if (tagozatNeve == AMITagozatEnum.na.GetDisplayName(options.TanevId)) { tagozatNeve = " "; } table.Rows[targyakSorSzama].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, evfolyamNeve)); table.Rows[targyakSorSzama].Cells[3].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, tagozatNeve?.Substring(0, 1))); table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.Osztalyzat)); if (!string.IsNullOrWhiteSpace(targy.Jeloles)) { AsposeWords.Run jelolesRun = GetRunWithText(baseRun, targy.IsSzoveges ? targy.Jeloles : $" ({targy.ErtekelesSzoveg})"); jelolesRun.Font.Superscript = targy.IsSzoveges; table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(jelolesRun); } table.Rows[targyakSorSzama].Cells[5].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.MulasztasIgazolt.ToString())); table.Rows[targyakSorSzama].Cells[6].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.MulasztasIgazolatlan.ToString())); if (targy.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, targy, targyNev); } var foTargyakTobbi = foTargyak.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgFotargy).ToList(); if (foTargyakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, foTargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallivaFotargynak); } } else { AddHibaKomment(table, targyakSorSzama, 0, AmiTorzslapResource.NincsMegadvaFotargy); } targyakSorSzama++; // főtárgy szorgalom var fotargySzorgalmak = co.ZenemuveszetiAgTantargyCos.Where(x => x.IsFotargy && x.IsSzorgalom).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList(); if (fotargySzorgalmak.Count > 0) { var kivalasztottFotargySzorgalomId = 0; if (kivalasztottFotargyId != default) { var kivalasztottFotargySzorgalmak = fotargySzorgalmak.Where(x => x.KapcsolodoFotargyId == kivalasztottFotargyId).ToList(); if (kivalasztottFotargySzorgalmak.Count > 0) { var kivalasztottFotargySzorgalom = kivalasztottFotargySzorgalmak[0]; kivalasztottFotargySzorgalomId = kivalasztottFotargySzorgalom.Id; table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kivalasztottFotargySzorgalom.Osztalyzat)); if (kivalasztottFotargySzorgalom.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, kivalasztottFotargySzorgalom); } var kivalasztottFotargySzorgalmakTobbi = kivalasztottFotargySzorgalmak.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgFotargySzorgalom).ToList(); if (kivalasztottFotargySzorgalmakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kivalasztottFotargySzorgalmakTobbi, AmiTorzslapResource.TobbFotargySzorgalomVanBeallitvaAKivalasztottFotargyhoz); } } } var fotargySzorgalmakTobbi = fotargySzorgalmak.Where(x => x.Id != kivalasztottFotargySzorgalomId).ToList(); if (fotargySzorgalmakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, fotargySzorgalmakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaFotargySzorgalomnak); } } else { var fotargySzorgalomEvvegibol = co.ZenemuveszetiAgTantargyCos.SingleOrDefault(x => x.Id == AmiTorzslapConstants.SzorgalomEvvegiJegyTantargyId); if (fotargySzorgalomEvvegibol != default) { table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, fotargySzorgalomEvvegibol.Osztalyzat)); if (!string.IsNullOrWhiteSpace(fotargySzorgalomEvvegibol.Jeloles)) { AsposeWords.Run jelolesRun = GetRunWithText(baseRun, fotargySzorgalomEvvegibol.IsSzoveges ? fotargySzorgalomEvvegibol.Jeloles : $" ({fotargySzorgalomEvvegibol.ErtekelesSzoveg})"); jelolesRun.Font.Superscript = fotargySzorgalomEvvegibol.IsSzoveges; table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(jelolesRun); } if (fotargySzorgalomEvvegibol.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, fotargySzorgalomEvvegibol); } } } targyakSorSzama++; var kotelezoKotelezoenValaszthatoNemFotargyak = co.ZenemuveszetiAgTantargyCos.Where(x => !x.IsFotargy && (x.KotelezosegId == (int)AMITantargyKotelezosegEnum.Kotelezo || x.KotelezosegId == (int)AMITantargyKotelezosegEnum.KotelezoenValaszthato)); var valaszthatoTargyak = co.ZenemuveszetiAgTantargyCos.Where(x => !x.IsFotargy && x.KotelezosegId == (int)AMITantargyKotelezosegEnum.SzabadonValaszthato && x.Id != AmiTorzslapConstants.SzorgalomEvvegiJegyTantargyId).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList(); // szolfézs var szolfezsTargyak = kotelezoKotelezoenValaszthatoNemFotargyak.Where(x => x.Nev.ToLower() == AmiTorzslapResource.Szolfezs.ToLower() && !x.IsSzorgalom).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList(); int? kivalasztottSzolfezsId = null; if (szolfezsTargyak.Count > 0) { var targy = szolfezsTargyak[0]; kivalasztottSzolfezsId = targy.Id; var evfolyamNeve = targy.EvfolyamNeve; var tagozatNeve = targy.TagozatNeve; if (evfolyamNeve == EvfolyamTipusEnum.na.GetDisplayName(options.TanevId)) { evfolyamNeve = ""; } if (tagozatNeve == AMITagozatEnum.na.GetDisplayName(options.TanevId)) { tagozatNeve = " "; } table.Rows[targyakSorSzama].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, evfolyamNeve)); table.Rows[targyakSorSzama].Cells[3].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, tagozatNeve?.Substring(0, 1))); table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.Osztalyzat)); if (!string.IsNullOrWhiteSpace(targy.Jeloles)) { AsposeWords.Run jelolesRun = GetRunWithText(baseRun, targy.IsSzoveges ? targy.Jeloles : $" ({targy.ErtekelesSzoveg})"); jelolesRun.Font.Superscript = targy.IsSzoveges; table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(jelolesRun); } table.Rows[targyakSorSzama].Cells[5].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.MulasztasIgazolt?.ToString())); table.Rows[targyakSorSzama].Cells[6].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.MulasztasIgazolatlan?.ToString())); if (targy.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, targy, targy.Nev); } var szolfezsTargyakTobbi = szolfezsTargyak.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgSzolfezs).ToList(); if (szolfezsTargyakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, szolfezsTargyakTobbi, AmiTorzslapResource.TobbSzolfezsTantargyVanBeallitva); } } targyakSorSzama++; // szolfézs szorgalom var szolfezsSzorgalmak = kotelezoKotelezoenValaszthatoNemFotargyak.Where(x => szolfezsTargyak.Any(y => y.Id == x.KapcsolodoFotargyId) && x.IsSzorgalom).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList(); if (szolfezsSzorgalmak.Count > 0) { var kivalasztottSzolfezsSzorgalomId = 0; if (kivalasztottSzolfezsId != default) { var kivalasztottSzolfezsSzorgalmak = szolfezsSzorgalmak.Where(x => x.KapcsolodoFotargyId == kivalasztottSzolfezsId).ToList(); if (kivalasztottSzolfezsSzorgalmak.Count > 0) { var kivalasztottSzolfezsSzorgalom = kivalasztottSzolfezsSzorgalmak[0]; kivalasztottSzolfezsSzorgalomId = kivalasztottSzolfezsSzorgalom.Id; table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kivalasztottSzolfezsSzorgalom.Osztalyzat)); if (kivalasztottSzolfezsSzorgalom.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, kivalasztottSzolfezsSzorgalom, AmiTorzslapResource.Szolfezs); } var kivalasztottSzolfezsSzorgalmakTobbi = kivalasztottSzolfezsSzorgalmak.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgSzolfezsSzorgalom).ToList(); if (kivalasztottSzolfezsSzorgalmakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kivalasztottSzolfezsSzorgalmakTobbi, AmiTorzslapResource.TobbSzolfezsSzorgalomVanBeallitvaAKivalasztottSzolfezshoz); } } } var szolfezsSzorgalmakTobbi = szolfezsSzorgalmak.Where(x => x.Id != kivalasztottSzolfezsSzorgalomId).ToList(); if (szolfezsSzorgalmakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, szolfezsSzorgalmakTobbi, AmiTorzslapResource.TobbSzolfezsSzorgalomTantargyVanBeallitva); } } targyakSorSzama++; var kotelezoKotelezoenValaszthatoTargyakOsszes = kotelezoKotelezoenValaszthatoNemFotargyak.Where(x => !szolfezsTargyak.Any(y => y.Id == x.Id) && !szolfezsSzorgalmak.Any(y => y.Id == x.Id)).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList(); for (int i = 0; i < Math.Min(kotelezoKotelezoenValaszthatoTargyakOsszes.Count, AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgKotelezoKotelezoenValaszthatoTargyak); i++) { var kotTargy = kotelezoKotelezoenValaszthatoTargyakOsszes[i]; table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.Nev)); var evfolyamNeve = kotTargy.EvfolyamNeve; var tagozatNeve = kotTargy.TagozatNeve; if (evfolyamNeve == EvfolyamTipusEnum.na.GetDisplayName(options.TanevId)) { evfolyamNeve = ""; } if (tagozatNeve == AMITagozatEnum.na.GetDisplayName(options.TanevId)) { tagozatNeve = " "; } table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, evfolyamNeve)); table.Rows[targyakSorSzama + i].Cells[3].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, tagozatNeve?.Substring(0, 1))); table.Rows[targyakSorSzama + i].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.Osztalyzat)); if (!string.IsNullOrWhiteSpace(kotTargy.Jeloles)) { AsposeWords.Run jelolesRun = GetRunWithText(baseRun, kotTargy.IsSzoveges ? kotTargy.Jeloles : $" ({kotTargy.ErtekelesSzoveg})"); jelolesRun.Font.Superscript = kotTargy.IsSzoveges; table.Rows[targyakSorSzama + i].Cells[4].FirstParagraph?.Runs.Add(jelolesRun); } table.Rows[targyakSorSzama + i].Cells[5].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.MulasztasIgazolt?.ToString())); table.Rows[targyakSorSzama + i].Cells[6].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.MulasztasIgazolatlan?.ToString())); if (kotTargy.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, kotTargy); } } var kotelezoKotelezoenValaszthatoTargyakOsszesTobbi = kotelezoKotelezoenValaszthatoTargyakOsszes.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgKotelezoKotelezoenValaszthatoTargyak).ToList(); if (kotelezoKotelezoenValaszthatoTargyakOsszesTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kotelezoKotelezoenValaszthatoTargyakOsszesTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaKotelezoKotelezoenValaszthatonak); } targyakSorSzama = 16; for (int i = 0; i < Math.Min(valaszthatoTargyak.Count, AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgValaszthatoTargyak); i++) { var valTargy = valaszthatoTargyak[i]; table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.Nev)); var evfolyamNeve = valTargy.EvfolyamNeve; var tagozatNeve = valTargy.TagozatNeve; if (evfolyamNeve == EvfolyamTipusEnum.na.GetDisplayName(options.TanevId)) { evfolyamNeve = ""; } if (tagozatNeve == AMITagozatEnum.na.GetDisplayName(options.TanevId)) { tagozatNeve = " "; } table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, evfolyamNeve)); table.Rows[targyakSorSzama + i].Cells[3].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, tagozatNeve?.Substring(0, 1))); table.Rows[targyakSorSzama + i].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.Osztalyzat)); if (!string.IsNullOrWhiteSpace(valTargy.Jeloles)) { AsposeWords.Run jelolesRun = GetRunWithText(baseRun, valTargy.IsSzoveges ? valTargy.Jeloles : $" ({valTargy.ErtekelesSzoveg})"); jelolesRun.Font.Superscript = valTargy.IsSzoveges; table.Rows[targyakSorSzama + i].Cells[4].FirstParagraph?.Runs.Add(jelolesRun); } table.Rows[targyakSorSzama + i].Cells[5].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.MulasztasIgazolt?.ToString())); table.Rows[targyakSorSzama + i].Cells[6].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.MulasztasIgazolatlan?.ToString())); if (valTargy.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, valTargy); } } var valaszthatoTargyakTobbi = valaszthatoTargyak.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgValaszthatoTargyak).ToList(); if (valaszthatoTargyakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, valaszthatoTargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaValaszthatonak); } targyakSorSzama = 23; // Átlag kitöltése table.Rows[targyakSorSzama++].Cells[0].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanulmanyiAtlag?.ToString("0.00"))); // Mulasztások kitöltése table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, co.ZenemuveszetiAgTantargyCos.Sum(x => x.MulasztasIgazolt).ToString())); table.Rows[targyakSorSzama++].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, co.ZenemuveszetiAgTantargyCos.Sum(x => x.MulasztasIgazolatlan).ToString())); } private void SetNemZenemuveszetiTargyak(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni, AsposeWords.Run baseRun) { var targyakSorSzama = 6; var szovegesErtekelesSorSzama = 25; if (kellSni) { szovegesErtekelesSorSzama += 2; } // főtárgy var fotargyak = co.ZenemuveszetiAgTantargyCos.Where(x => x.IsFotargy && (x.KotelezosegId == (int)AMITantargyKotelezosegEnum.Kotelezo || x.KotelezosegId == (int)AMITantargyKotelezosegEnum.KotelezoenValaszthato)).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList(); if (fotargyak.Count == 0) { AddHibaKomment(table, targyakSorSzama, 0, AmiTorzslapResource.NincsMegadvaFotargy); } for (int i = 0; i < Math.Min(fotargyak.Count, AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgFotargyak); i++) { var fotargy = fotargyak[i]; table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, fotargy.Nev)); table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, fotargy.Osztalyzat)); if (!string.IsNullOrWhiteSpace(fotargy.Jeloles)) { AsposeWords.Run jelolesRun = GetRunWithText(baseRun, fotargy.IsSzoveges ? fotargy.Jeloles : $" ({fotargy.ErtekelesSzoveg})"); jelolesRun.Font.Superscript = fotargy.IsSzoveges; table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(jelolesRun); } if (fotargy.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, fotargy); } } var fotargyakTobbi = fotargyak.Skip(AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgFotargyak).ToList(); if (fotargyakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, fotargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallivaFotargynak); } targyakSorSzama = 8; var kotelezoTargyak = co.ZenemuveszetiAgTantargyCos.Where(x => !x.IsFotargy && x.KotelezosegId == (int)AMITantargyKotelezosegEnum.Kotelezo).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList(); for (int i = 0; i < Math.Min(kotelezoTargyak.Count, AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgKotelezoTargyak); i++) { var kotTargy = kotelezoTargyak[i]; table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.Nev)); table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.Osztalyzat)); if (!string.IsNullOrWhiteSpace(kotTargy.Jeloles)) { AsposeWords.Run jelolesRun = GetRunWithText(baseRun, kotTargy.IsSzoveges ? kotTargy.Jeloles : $" ({kotTargy.ErtekelesSzoveg})"); jelolesRun.Font.Superscript = kotTargy.IsSzoveges; table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(jelolesRun); } if (kotTargy.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, kotTargy); } } var kotelezoTargyakTobbi = kotelezoTargyak.Skip(AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgKotelezoTargyak).ToList(); if (kotelezoTargyakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kotelezoTargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaKotelezonek); } targyakSorSzama = 13; var kotelezoenValaszthatoTargyak = co.ZenemuveszetiAgTantargyCos.Where(x => !x.IsFotargy && x.KotelezosegId == (int)AMITantargyKotelezosegEnum.KotelezoenValaszthato).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList(); for (int i = 0; i < Math.Min(kotelezoenValaszthatoTargyak.Count, AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgKotelezoenValaszthatoTargyak); i++) { var kotValTargy = kotelezoenValaszthatoTargyak[i]; table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotValTargy.Nev)); table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotValTargy.Osztalyzat)); if (!string.IsNullOrWhiteSpace(kotValTargy.Jeloles)) { AsposeWords.Run jelolesRun = GetRunWithText(baseRun, kotValTargy.IsSzoveges ? kotValTargy.Jeloles : $" ({kotValTargy.ErtekelesSzoveg})"); jelolesRun.Font.Superscript = kotValTargy.IsSzoveges; table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(jelolesRun); } if (kotValTargy.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, kotValTargy); } } var kotelezoenValaszthatoTargyakTobbi = kotelezoenValaszthatoTargyak.Skip(AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgKotelezoenValaszthatoTargyak).ToList(); if (kotelezoenValaszthatoTargyakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kotelezoenValaszthatoTargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaKotelezoenValaszthatonak); } targyakSorSzama = 16; var valaszthatoTargyak = co.ZenemuveszetiAgTantargyCos.Where(x => !x.IsFotargy && x.KotelezosegId == (int)AMITantargyKotelezosegEnum.SzabadonValaszthato && x.Id != AmiTorzslapConstants.SzorgalomEvvegiJegyTantargyId).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList(); for (int i = 0; i < Math.Min(valaszthatoTargyak.Count, AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgValaszthatoTargyak); i++) { var valTargy = valaszthatoTargyak[i]; table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.Nev)); table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.Osztalyzat)); if (!string.IsNullOrWhiteSpace(valTargy.Jeloles)) { AsposeWords.Run jelolesRun = GetRunWithText(baseRun, valTargy.IsSzoveges ? valTargy.Jeloles : $" ({valTargy.ErtekelesSzoveg})"); jelolesRun.Font.Superscript = valTargy.IsSzoveges; table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(jelolesRun); } if (valTargy.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, valTargy); } } var valaszthatoTargyakTobbi = valaszthatoTargyak.Skip(AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgValaszthatoTargyak).ToList(); if (valaszthatoTargyakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kotelezoenValaszthatoTargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaValaszthatonak); } targyakSorSzama = 22; // Szorgalom kitöltése var fotargySzorgalmak = co.ZenemuveszetiAgTantargyCos.Where(x => x.IsSzorgalom && x.KapcsolodoFotargyId.HasValue && fotargyak.Select(y => y.Id).Contains(x.KapcsolodoFotargyId.Value)).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList(); if (fotargySzorgalmak.Count > 0) { var fotargySzorgalom = fotargySzorgalmak[0]; table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, fotargySzorgalom.Osztalyzat)); if (!string.IsNullOrWhiteSpace(fotargySzorgalom.Jeloles)) { AsposeWords.Run jelolesRun = GetRunWithText(baseRun, fotargySzorgalom.IsSzoveges ? fotargySzorgalom.Jeloles : $" ({fotargySzorgalom.ErtekelesSzoveg})"); jelolesRun.Font.Superscript = fotargySzorgalom.IsSzoveges; table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(jelolesRun); } if (fotargySzorgalom.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, fotargySzorgalom); } var fotargySzorgalmakTobbi = fotargySzorgalmak.Skip(AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgSzorgalom).ToList(); if (fotargySzorgalmakTobbi.Count > 0) { AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, fotargySzorgalmakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaFotargySzorgalomnak); } } else { var fotargySzorgalomEvvegibol = co.ZenemuveszetiAgTantargyCos.SingleOrDefault(x => x.Id == AmiTorzslapConstants.SzorgalomEvvegiJegyTantargyId); if (fotargySzorgalomEvvegibol != default) { table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, fotargySzorgalomEvvegibol.Osztalyzat)); if (!string.IsNullOrWhiteSpace(fotargySzorgalomEvvegibol.Jeloles)) { AsposeWords.Run jelolesRun = GetRunWithText(baseRun, fotargySzorgalomEvvegibol.IsSzoveges ? fotargySzorgalomEvvegibol.Jeloles : $" ({fotargySzorgalomEvvegibol.ErtekelesSzoveg})"); jelolesRun.Font.Superscript = fotargySzorgalomEvvegibol.IsSzoveges; table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(jelolesRun); } if (fotargySzorgalomEvvegibol.IsSzoveges) { AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, fotargySzorgalomEvvegibol); } } } targyakSorSzama++; // Átlag kitöltése table.Rows[targyakSorSzama++].Cells[0].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanulmanyiAtlag?.ToString("0.00"))); // Mulasztások kitöltése table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, co.ZenemuveszetiAgTantargyCos.Sum(x => x.MulasztasIgazolt).ToString())); table.Rows[targyakSorSzama++].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, co.ZenemuveszetiAgTantargyCos.Sum(x => x.MulasztasIgazolatlan).ToString())); } private void AddSzovegesErtekeles(AsposeWords.RunCollection runs, AsposeWords.Run baseRun, ZenemuveszetiAgTantargyCo targy, string targyNev = null) { runs.Add(GetRunWithText(baseRun, targy.Osztalyzat)); AsposeWords.Run jelolesRun = GetRunWithText(baseRun, targy.Jeloles); jelolesRun.Font.Superscript = true; runs.Add(jelolesRun); runs.Add(GetRunWithText(baseRun, $": {targyNev ?? targy.Nev}: {targy.ErtekelesSzoveg}{AsposeWords.ControlChar.LineBreak}")); } private void AddHibaKommentTobbesTargy(AsposeWords.Tables.Table table, int tableRowNumber, int tableColumnNumber, List list, string commentFirstLine) { if (!options.DocumentParameters.MegjegyzesekMegjelenitese) { return; } StringBuilder sbMegjegyzes = new StringBuilder(); foreach (var targy in list) { if (sbMegjegyzes.Length == 0 && !string.IsNullOrWhiteSpace(commentFirstLine)) { sbMegjegyzes.AppendLine(commentFirstLine); } sbMegjegyzes.AppendLine(targy.Nev); } if (list.Count > 0) { AddHibaKomment(table, tableRowNumber, tableColumnNumber, sbMegjegyzes.ToString()); } } private void AddHibaKommentTobbesAlapZaroVizsgaErtekeles(AsposeWords.Tables.Table table, int tableRowNumber, int tableColumnNumber, List list, string commentFirstLine) { if (!options.DocumentParameters.MegjegyzesekMegjelenitese) { return; } StringBuilder sbMegjegyzes = new StringBuilder(); foreach (var targy in list) { if (sbMegjegyzes.Length == 0 && !string.IsNullOrWhiteSpace(commentFirstLine)) { sbMegjegyzes.AppendLine(commentFirstLine); } sbMegjegyzes.AppendLine(targy.TantargyNeve); } if (list.Count > 0) { AddHibaKomment(table, tableRowNumber, tableColumnNumber, sbMegjegyzes.ToString()); } } private void AddHibaKomment(AsposeWords.Tables.Table table, int tableRowNumber, int tableColumnNumber, string comment) { if (!options.DocumentParameters.MegjegyzesekMegjelenitese) { return; } var commentObj = new AsposeWords.Comment(table.Document, "Kréta", "K", DateTime.Now); commentObj.Paragraphs.Add(new AsposeWords.Paragraph(table.Document)); commentObj.FirstParagraph.Runs.Add(new AsposeWords.Run(table.Document, comment)); table.Rows[tableRowNumber].Cells[tableColumnNumber].FirstParagraph.AppendChild(commentObj); } private void SetSNIAdatok(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co) { var sorSzama = 25; var oszlopSzama = 0; var baseRun = new AsposeWords.Run(table.Document); baseRun.Font.Name = AmiTorzslapResource.UsedFontName; baseRun.Font.Size = options.DocumentParameters.BetuMeretSNI; table.Rows[sorSzama].Cells[oszlopSzama].Paragraphs[1].Runs.Add(GetRunWithText(baseRun, co.TanuloSniAdatok.KiallitoSzakertoiBizottsagNeve)); table.Rows[sorSzama++].Cells[oszlopSzama].Paragraphs[2].Runs.Add(GetRunWithText(baseRun, co.TanuloSniAdatok.KiallitoSzakertoiBizottsagCime)); table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanuloSniAdatok.SzakvelemenySzama)); table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanuloSniAdatok.KiallitasDatuma?.ToString(Constants.ToStringPattern.HungarianDate))); table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanuloSniAdatok.FelulvizsgalatTaneve)); } private void SetFelmentesek(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni) { var felmentesekSorSzama = 25; if (kellSni) { felmentesekSorSzama += 2; } var baseRun = new AsposeWords.Run(table.Document); baseRun.Font.Name = AmiTorzslapResource.UsedFontName; baseRun.Font.Size = options.DocumentParameters.BetuMeretAdatok; foreach (var felmentes in co.FelmentesCos) { table.Rows[felmentesekSorSzama].Cells[0].LastParagraph.Runs.Add(GetRunWithText(baseRun, $"{felmentes.TantargyNeve}: {felmentes.FelmentesOka}{AsposeWords.ControlChar.LineBreak}")); } } private void SetFeljegyzesek(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni) { var feljegyzesekSorSzama = 25; if (kellSni) { feljegyzesekSorSzama += 2; } var baseRun = new AsposeWords.Run(table.Document); baseRun.Font.Name = AmiTorzslapResource.UsedFontName; baseRun.Font.Size = options.DocumentParameters.BetuMeretAdatok; foreach (var feljegyzes in co.FeljegyzesCos) { table.Rows[feljegyzesekSorSzama].Cells[0].LastParagraph.Runs.Add(GetRunWithText(baseRun, $"{feljegyzes.Tartalom} ({feljegyzes.EsemenyDatuma.Value.ToString(Constants.ToStringPattern.HungarianDate)}){AsposeWords.ControlChar.LineBreak}")); } } private void SetZaradekok(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni) { var zaradekSorSzama = 26; if (kellSni) { zaradekSorSzama += 2; } var baseRun = new AsposeWords.Run(table.Document); baseRun.Font.Name = AmiTorzslapResource.UsedFontName; baseRun.Font.Size = options.DocumentParameters.BetuMeretAdatok; foreach (var zaradek in co.ZaradekCos) { table.Rows[zaradekSorSzama].Cells[0].LastParagraph.Runs.Add(GetRunWithText(baseRun, $"{zaradek.ZaradekSzovegList.Single(x => x.NyelvId == (int)AnyanyelvEnum.magyar).Szoveg}{AsposeWords.ControlChar.LineBreak}{zaradek.KeltezesHelye}, {zaradek.KeltezesDatuma.Value.ToString(Constants.ToStringPattern.HungarianDate)}{AsposeWords.ControlChar.LineBreak}")); } } private AsposeWords.Run GetRunWithText(AsposeWords.Run run, string text) { var result = run.Clone(true) as AsposeWords.Run; result.Text = text ?? ""; return result; } } }