kreta/Kreta.BusinessLogic/Helpers/AsposeHelperAmiTorzslap.cs
2024-03-13 00:33:46 +01:00

809 lines
51 KiB
C#

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<bool, string> sablonokNeve;
if (this.options.DocumentParameters.MuveszetiAgId == (int)MuveszetiAgEnum.ZenemuveszetiAg)
{
sablonokNeve = new Dictionary<bool, string>
{
{ false, AmiTorzslapResource.ZenemuveszetiSablon },
{ true, AmiTorzslapResource.ZenemuveszetiSNISablon },
};
}
else
{
sablonokNeve = new Dictionary<bool, string>
{
{ 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<string>())));
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<string> { 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<ZenemuveszetiAgTantargyCo> 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<AlapZaroVizsgaAdatokCo> 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;
}
}
}