219 lines
15 KiB
C#
219 lines
15 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Classes.AsposeHelpers;
|
|
using Kreta.Core;
|
|
using Kreta.Enums;
|
|
using Kreta.Resources;
|
|
|
|
namespace Kreta.BusinessLogic.HelperClasses.AmiTorzslapCOs
|
|
{
|
|
public class AmiTorzslapCo
|
|
{
|
|
public AmiTorzslapCo(DataSet ds, AsposeDocumentParameters parameters, int tanevId)
|
|
{
|
|
KozosAdatokCo = new KozosAdatokCo(ds.Tables["KozosAdatok"].Rows[0]);
|
|
TanuloTorzslapCoList = new List<AmiTanuloTorzslapCo>();
|
|
foreach (var row in ds.Tables["TanuloiAdatok"].AsEnumerable())
|
|
{
|
|
var tanuloCo = new AmiTanuloTorzslapCo(row)
|
|
{
|
|
TanevNeve = KozosAdatokCo.TanevNeve,
|
|
MuveszetiAgId = parameters.MuveszetiAgId,
|
|
MuveszetiAgNeve = parameters.MuveszetiAgId.GetDisplayName<MuveszetiAgEnum>(tanevId),
|
|
EvfolyamNeve = row.Field<string>("EvfolyamNeve").ReplaceMultipleSpacesAndTrim(),
|
|
MufajNeve = row.Field<string>("MufajNeve").ReplaceMultipleSpacesAndTrim(),
|
|
TanszakNeve = row.Field<string>("TanszakNeve").ReplaceMultipleSpacesAndTrim()
|
|
};
|
|
TanuloTorzslapCoList.Add(tanuloCo);
|
|
}
|
|
|
|
TanuloSniCoList = new List<TanuloSniCo>();
|
|
foreach (var row in ds.Tables["SNIAdatok"].AsEnumerable())
|
|
{
|
|
var tanuloCo = new TanuloSniCo()
|
|
{
|
|
Id = row.Field<int>("TanuloId"),
|
|
TanuloCsoportId = row.Field<int>("TanuloCsoportId"),
|
|
KiallitoSzakertoiBizottsagNeve = row.Field<string>("SNIKiallitoIntezmenyNeve").ReplaceMultipleSpacesAndTrim(),
|
|
KiallitoSzakertoiBizottsagCime = row.Field<string>("SNIKiallitoIntezmenyCime").ReplaceMultipleSpacesAndTrim(),
|
|
KiallitasDatuma = row.Field<DateTime?>("SNIKiallitasKelte"),
|
|
SzakvelemenySzama = row.Field<string>("SNIOkmanyszamok"),
|
|
FelulvizsgalatTaneve = row.Field<string>("SNIKontrolIdopont"),
|
|
};
|
|
TanuloSniCoList.Add(tanuloCo);
|
|
}
|
|
FoglalkozasiNaploAdatCoList = new List<FoglalkozasiNaploAdatCo>();
|
|
foreach (var row in ds.Tables["Naploszamok"].AsEnumerable())
|
|
{
|
|
var foglalkozasiNaploAdatCo = new FoglalkozasiNaploAdatCo()
|
|
{
|
|
TanuloId = row.Field<int>("TanuloId"),
|
|
TanuloCsoportId = row.Field<int>("TanuloCsoportId"),
|
|
IsOsztalyos = row.Field<int>("IsOsztalyos") == 1,
|
|
NaploSzam = row.Field<string>("Naploszam").ReplaceMultipleSpacesAndTrim(),
|
|
TanuloSzam = row.Field<int?>("Naplosorszam")?.ToString(),
|
|
};
|
|
FoglalkozasiNaploAdatCoList.Add(foglalkozasiNaploAdatCo);
|
|
}
|
|
|
|
TanuloFelmentesCoList = new List<TanuloFelmentesCo>();
|
|
foreach (var row in ds.Tables["Felmentesek"].AsEnumerable())
|
|
{
|
|
var tanuloCo = new TanuloFelmentesCo()
|
|
{
|
|
TanuloId = row.Field<int>("TanuloId"),
|
|
FelmentesOka = row.Field<string>("MentessegOka").ReplaceMultipleSpacesAndTrim(),
|
|
TantargyNeve = row.Field<string>("TantargyNevMentessegNelkul").ReplaceMultipleSpacesAndTrim(),
|
|
TanuloCsoportId = row.Field<int>("TanuloCsoportId"),
|
|
};
|
|
TanuloFelmentesCoList.Add(tanuloCo);
|
|
}
|
|
TanuloFeljegyzesCoList = new List<TanuloFeljegyzesCo>();
|
|
foreach (var row in ds.Tables["Feljegyzesek"].AsEnumerable())
|
|
{
|
|
var tanuloCo = new TanuloFeljegyzesCo()
|
|
{
|
|
TanuloIdList = new List<int> { row.Field<int>("TanuloId") },
|
|
Tartalom = row.Field<string>("Bejegyzes").ReplaceMultipleSpacesAndTrim(),
|
|
EsemenyDatuma = row.Field<DateTime>("Datum"),
|
|
TanuloCsoportId = row.Field<int>("TanuloCsoportId"),
|
|
};
|
|
TanuloFeljegyzesCoList.Add(tanuloCo);
|
|
}
|
|
TanuloZaradekCoList = new List<ZaradekCo>();
|
|
foreach (var row in ds.Tables["Zaradekok"].AsEnumerable())
|
|
{
|
|
var tanuloCo = new ZaradekCo()
|
|
{
|
|
TanuloId = row.Field<int>("TanuloId"),
|
|
TanuloCsoportId = row.Field<int>("TanuloCsoportId"),
|
|
KeltezesHelye = row.Field<string>("KeltezesHelye").ReplaceMultipleSpacesAndTrim(),
|
|
KeltezesDatuma = DateTime.Parse(row.Field<string>("KeltezesDatuma")),
|
|
ZaradekSzovegList = new List<ZaradekNyelvCo> { new ZaradekNyelvCo { NyelvId = (int)AnyanyelvEnum.magyar, Szoveg = row.Field<string>("Bejegyzes").ReplaceMultipleSpacesAndTrim() } },
|
|
};
|
|
TanuloZaradekCoList.Add(tanuloCo);
|
|
}
|
|
TanuloAlapZaroVizsgaAdatokCoList = new List<AlapZaroVizsgaAdatokCo>();
|
|
foreach (var row in ds.Tables["AlapZarovizsa"].AsEnumerable())
|
|
{
|
|
var tanuloCo = new AlapZaroVizsgaAdatokCo()
|
|
{
|
|
TanuloId = row.Field<int>("TanuloId"),
|
|
TanuloCsoportId = row.Field<int>("TanuloCsoportId"),
|
|
Ertekeles = row.Field<string>("Ertekeles").ReplaceMultipleSpacesAndTrim(),
|
|
TipusId = row.Field<int>("TipusId"),
|
|
KeltezesHelye = KozosAdatokCo.SzekhelyVaros,
|
|
KeltezesDatuma = parameters.Kelt,
|
|
OMKod = KozosAdatokCo.OMKod,
|
|
Datum = row.Field<DateTime>("Datum"),
|
|
MufajNeve = row.Field<string>("MufajNeve").ReplaceMultipleSpacesAndTrim(),
|
|
TanszakNeve = row.Field<string>("TanszakNeve").ReplaceMultipleSpacesAndTrim(),
|
|
MuveszetiAgNeve = row.Field<string>("MuveszetiAgNeve").ReplaceMultipleSpacesAndTrim(),
|
|
TantargyNeve = row.Field<string>("TantargyNeve").ReplaceMultipleSpacesAndTrim(),
|
|
};
|
|
TanuloAlapZaroVizsgaAdatokCoList.Add(tanuloCo);
|
|
}
|
|
TanuloTantargyMulasztasCoList = new List<TanuloTantargyMulasztasCo>();
|
|
foreach (var row in ds.Tables["Mulasztasok"].AsEnumerable())
|
|
{
|
|
var muveszetiAgId = row.Field<int?>("MuveszetiAgId");
|
|
if ((muveszetiAgId != parameters.MuveszetiAgId) && (muveszetiAgId != null))
|
|
{
|
|
continue;
|
|
}
|
|
var tanuloCo = new TanuloTantargyMulasztasCo()
|
|
{
|
|
TanuloId = row.Field<int>("TanuloId"),
|
|
TanuloCsoportId = row.Field<int>("TanuloCsoportId"),
|
|
TantargyId = row.Field<int>("TantargyId"),
|
|
IsIgazolt = SDAConvert.ToBooleanFromTF(row.Field<string>("IsIgazolt")),
|
|
Darab = row.Field<int>("Darab"),
|
|
};
|
|
TanuloTantargyMulasztasCoList.Add(tanuloCo);
|
|
}
|
|
TanuloTantargyCoList = new List<ZenemuveszetiAgTantargyCo>();
|
|
foreach (var row in ds.Tables["Tantargyak"].AsEnumerable())
|
|
{
|
|
var muveszetiAgId = row.Field<int?>("MuveszetiAgId");
|
|
if ((muveszetiAgId != parameters.MuveszetiAgId) && (muveszetiAgId != null))
|
|
{
|
|
continue;
|
|
}
|
|
var isSzorgalom = SDAConvert.ToBooleanFromTF(row.Field<string>("IsSzorgalom"));
|
|
var tanuloCo = new ZenemuveszetiAgTantargyCo()
|
|
{
|
|
Id = row.Field<int>("TantargyId"),
|
|
TanuloId = row.Field<int>("TanuloId"),
|
|
TanuloCsoportId = row.Field<int>("TanuloCsoportId"),
|
|
EvfolyamNeve = row.Field<string>("EvfolyamNeve") ?? (isSzorgalom ? "" : EvfolyamTipusEnum.na.GetDisplayName(tanevId)),
|
|
IsFotargy = (row.Field<int?>("AmiFotargyId") ?? (int)AMIFotargyEnum.Mellektargy) == (int)AMIFotargyEnum.Fotargy,
|
|
IsSzorgalom = isSzorgalom,
|
|
IsSzoveges = SDAConvert.ToBooleanFromTF(row.Field<string>("IsSzoveges")),
|
|
KotelezosegId = row.Field<int?>("AmiTantargyKotelezosegId") ?? (int)AMITantargyKotelezosegEnum.SzabadonValaszthato,
|
|
Nev = row.Field<string>("TantargyNeve").ReplaceMultipleSpacesAndTrim(),
|
|
Osztalyzat = row.Field<string>("Ertekeles").ReplaceMultipleSpacesAndTrim(),
|
|
Jeloles = row.Field<string>("Jeloles").ReplaceMultipleSpacesAndTrim(),
|
|
Sorszam = row.Field<int>("Sorszam"),
|
|
TagozatNeve = (row.Field<string>("TagozatNeve") ?? (isSzorgalom ? "" : AMITagozatEnum.ATagozat.GetDisplayName(tanevId))).ReplaceMultipleSpacesAndTrim(),
|
|
MufajNeve = row.Field<string>("MufajNeve").ReplaceMultipleSpacesAndTrim(),
|
|
TanszakNeve = row.Field<string>("TanszakNeve").ReplaceMultipleSpacesAndTrim(),
|
|
ErtekelesSzoveg = row.Field<string>("ErtekelesSzoveg").ReplaceMultipleSpacesAndTrim(),
|
|
OsztalyzatValue = row.Field<int?>("ErtekelesValue"),
|
|
IsAtlagbaNemSzamitBe = SDAConvert.ToBooleanFromTF(row.Field<string>("IsAtlagbaNemSzamitBe")),
|
|
KapcsolodoFotargyId = row.Field<int?>("KapcsolodoFotargyId"),
|
|
MuveszetiAgId = muveszetiAgId,
|
|
};
|
|
tanuloCo.MulasztasIgazolt = isSzorgalom ? (int?)null : TanuloTantargyMulasztasCoList.Where(x => x.TanuloId == tanuloCo.TanuloId && x.TanuloCsoportId == tanuloCo.TanuloCsoportId && x.TantargyId == tanuloCo.Id && x.IsIgazolt).Sum(x => x.Darab);
|
|
tanuloCo.MulasztasIgazolatlan = isSzorgalom ? (int?)null : TanuloTantargyMulasztasCoList.Where(x => x.TanuloId == tanuloCo.TanuloId && x.TanuloCsoportId == tanuloCo.TanuloCsoportId && x.TantargyId == tanuloCo.Id && !x.IsIgazolt).Sum(x => x.Darab);
|
|
|
|
TanuloTantargyCoList.Add(tanuloCo);
|
|
}
|
|
|
|
foreach (var tanuloCo in TanuloTorzslapCoList)
|
|
{
|
|
tanuloCo.AlapVizsgaAdatokCos = TanuloAlapZaroVizsgaAdatokCoList.Where(x => x.TanuloId == tanuloCo.TanuloId && x.TanuloCsoportId == tanuloCo.TanuloCsoportId && x.TipusId == (int)ErtekelesTipusEnum.muveszeti_alapvizsga).ToList();
|
|
tanuloCo.ZaroVizsgaAdatokCos = TanuloAlapZaroVizsgaAdatokCoList.Where(x => x.TanuloId == tanuloCo.TanuloId && x.TanuloCsoportId == tanuloCo.TanuloCsoportId && x.TipusId == (int)ErtekelesTipusEnum.muveszeti_zarovizsga).ToList();
|
|
tanuloCo.TanuloSniAdatok = TanuloSniCoList.SingleOrDefault(x => x.Id == tanuloCo.TanuloId && x.TanuloCsoportId == tanuloCo.TanuloCsoportId);
|
|
tanuloCo.FeljegyzesCos.AddRange(TanuloFeljegyzesCoList.Where(x => x.TanuloIdList.Contains(tanuloCo.TanuloId) && x.TanuloCsoportId == tanuloCo.TanuloCsoportId).ToList());
|
|
tanuloCo.FelmentesCos.AddRange(TanuloFelmentesCoList.Where(x => x.TanuloId == tanuloCo.TanuloId && x.TanuloCsoportId == tanuloCo.TanuloCsoportId).ToList());
|
|
tanuloCo.FoglalkozasiNaploAdatCos.AddRange(FoglalkozasiNaploAdatCoList.Where(x => x.TanuloId == tanuloCo.TanuloId && x.TanuloCsoportId == tanuloCo.TanuloCsoportId).ToList());
|
|
tanuloCo.ZaradekCos.AddRange(TanuloZaradekCoList.Where(x => x.TanuloId == tanuloCo.TanuloId && x.TanuloCsoportId == tanuloCo.TanuloCsoportId).ToList());
|
|
tanuloCo.ZenemuveszetiAgTantargyCos.AddRange(TanuloTantargyCoList.Where(x => x.TanuloId == tanuloCo.TanuloId && x.TanuloCsoportId == tanuloCo.TanuloCsoportId));
|
|
|
|
var fotargyIds = tanuloCo.ZenemuveszetiAgTantargyCos.Where(y => y.IsFotargy && !y.IsSzorgalom).Select(y => y.Id);
|
|
// NOTE: főtárgyakhoz tartozó szorgalomnál beállítjuk az IsFotargy-at
|
|
tanuloCo.ZenemuveszetiAgTantargyCos.Where(x => x.IsSzorgalom && x.KapcsolodoFotargyId.HasValue && fotargyIds.Contains(x.KapcsolodoFotargyId.Value)).ToList().ForEach(x => x.IsFotargy = true);
|
|
var szolfezsIds = tanuloCo.ZenemuveszetiAgTantargyCos.Where(x => x.Nev.ToLower() == AmiTorzslapResource.Szolfezs.ToLower() && !x.IsSzorgalom).Distinct().Select(x => x.Id);
|
|
// NOTE: a szolfézs tárgyakhoz tartozó szorgalomnál beállítjuk a kötelezőséget ugyanarra, mint a szolfézs kötelezősége
|
|
tanuloCo.ZenemuveszetiAgTantargyCos.Where(x => x.IsSzorgalom && x.KapcsolodoFotargyId.HasValue && szolfezsIds.Contains(x.KapcsolodoFotargyId.Value)).ToList().ForEach(x => { x.KotelezosegId = (tanuloCo.ZenemuveszetiAgTantargyCos.FirstOrDefault(y => y.Id == x.KapcsolodoFotargyId)?.KotelezosegId ?? (int)AMITantargyKotelezosegEnum.SzabadonValaszthato); });
|
|
var tobbiTargyIds = tanuloCo.ZenemuveszetiAgTantargyCos.Where(x => !x.IsFotargy && x.Nev.ToLower() != AmiTorzslapResource.Szolfezs.ToLower() && !x.IsSzorgalom).Distinct().Select(x => x.Id);
|
|
// NOTE: a többi tárgyhoz tartozó szorgalomnál beállítjuk a kötelezőséget ugyanarra, mint a másik tárgy kötelezősége
|
|
tanuloCo.ZenemuveszetiAgTantargyCos.Where(x => x.IsSzorgalom && x.KapcsolodoFotargyId.HasValue && tobbiTargyIds.Contains(x.KapcsolodoFotargyId.Value)).ToList().ForEach(x => { x.KotelezosegId = (tanuloCo.ZenemuveszetiAgTantargyCos.Where(y => y.Id == x.KapcsolodoFotargyId).OrderBy(y => y.KotelezosegId).FirstOrDefault()?.KotelezosegId ?? (int)AMITantargyKotelezosegEnum.SzabadonValaszthato); });
|
|
|
|
tanuloCo.MufajNeve = tanuloCo.MuveszetiAgId != (int)MuveszetiAgEnum.ZenemuveszetiAg ? string.Empty : tanuloCo.MufajNeve;
|
|
tanuloCo.EvfolyamNeve = tanuloCo.EvfolyamNeve == EvfolyamTipusEnum.na.GetDisplayName(tanevId) ? string.Empty : tanuloCo.EvfolyamNeve;
|
|
tanuloCo.TanszakNeve = tanuloCo.TanszakNeve == TanszakTipusEnum.na.GetDisplayName(tanevId) ? string.Empty : tanuloCo.TanszakNeve;
|
|
|
|
var atlagolandoErtekelesek = tanuloCo.ZenemuveszetiAgTantargyCos.Where(x => x.OsztalyzatValue.HasValue && !x.IsAtlagbaNemSzamitBe);
|
|
if (atlagolandoErtekelesek.Any())
|
|
{
|
|
tanuloCo.TanulmanyiAtlag = atlagolandoErtekelesek.Average(x => x.OsztalyzatValue.Value);
|
|
}
|
|
}
|
|
}
|
|
|
|
public KozosAdatokCo KozosAdatokCo { get; set; }
|
|
public List<AmiTanuloTorzslapCo> TanuloTorzslapCoList { get; set; }
|
|
public List<TanuloSniCo> TanuloSniCoList { get; set; }
|
|
public List<TanuloFelmentesCo> TanuloFelmentesCoList { get; set; }
|
|
public List<FoglalkozasiNaploAdatCo> FoglalkozasiNaploAdatCoList { get; set; }
|
|
public List<TanuloFeljegyzesCo> TanuloFeljegyzesCoList { get; set; }
|
|
public List<ZaradekCo> TanuloZaradekCoList { get; set; }
|
|
public List<AlapZaroVizsgaAdatokCo> TanuloAlapZaroVizsgaAdatokCoList { get; set; }
|
|
public List<ZenemuveszetiAgTantargyCo> TanuloTantargyCoList { get; set; }
|
|
public List<TanuloTantargyMulasztasCo> TanuloTantargyMulasztasCoList { get; set; }
|
|
}
|
|
}
|