init
This commit is contained in:
@@ -0,0 +1,412 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.DataAccess.Interfaces;
|
||||
using Kreta.DataAccessManual;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public class ErettsegiEredmenyekHelper : LogicBase
|
||||
{
|
||||
public ErettsegiEredmenyekHelper(IConnectionType connectionType) : base(connectionType) { }
|
||||
|
||||
public DataSet GetErettsegiEredmenyekGrid(int osztalyId)
|
||||
{
|
||||
var erettsegiEredmenyek = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var result = h.ErettsegiEredmeny(GridParameters).GetErettsegiEredmenyekData(osztalyId);
|
||||
return result;
|
||||
});
|
||||
|
||||
var dt = erettsegiEredmenyek.Tables[0];
|
||||
dt.Columns.Add("SzuletesiIdoFormatted");
|
||||
List<DataRow> rows = dt.Rows.Cast<DataRow>().ToList();
|
||||
foreach (var row in rows)
|
||||
{
|
||||
row["SzuletesiIdoFormatted"] = SDAConvert.ToDateTime(row["SzuletesiIdo"]).ToShortDateString();
|
||||
}
|
||||
|
||||
return erettsegiEredmenyek;
|
||||
}
|
||||
|
||||
public DataSet GetErettsegiEredmenyekDetailGrid(int tanuloId)
|
||||
{
|
||||
DataSet erettsegiEredmenyekData = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var result = h.ErettsegiEredmeny(GridParameters).GetErettsegiEredmenyekReszletekData(IntezmenyId, TanevId, tanuloId);
|
||||
return result;
|
||||
});
|
||||
bool isVegzos;
|
||||
var helper = new FelhasznaloHelper(ConnectionType);
|
||||
isVegzos = helper.GetVegzosEvfolyamTanulojaByUserId(tanuloId);
|
||||
|
||||
var dt = erettsegiEredmenyekData.Tables[0];
|
||||
|
||||
dt.Columns.Add("IsNew");
|
||||
dt.Columns.Add("Szazalek");
|
||||
dt.Columns.Add("Erdemjegy");
|
||||
|
||||
foreach (var row in dt.Rows.Cast<DataRow>().ToList())
|
||||
{
|
||||
row["IsNew"] = false;
|
||||
}
|
||||
if (isVegzos)
|
||||
{
|
||||
List<DataRow> erettsegiTantargyMagyarNyelvEsIrodalomIdList = erettsegiEredmenyekData.Tables[0].Select($"ErettsegiTantargyId = {(int)ErettsegiTantargyEnum.magyar_nyelv_es_irodalom}").ToList();
|
||||
if (erettsegiTantargyMagyarNyelvEsIrodalomIdList.Count == 0)
|
||||
{
|
||||
var row = dt.NewRow();
|
||||
row["ID"] = "tempMagyarNyelvEsIrodalomRowId";
|
||||
row["ErettsegiTantargyId"] = (int)ErettsegiTantargyEnum.magyar_nyelv_es_irodalom;
|
||||
row["IsNew"] = true;
|
||||
dt.Rows.Add(row);
|
||||
}
|
||||
|
||||
List<DataRow> erettsegiTantargyMatematikaIdList = erettsegiEredmenyekData.Tables[0].Select($"ErettsegiTantargyId = {(int)ErettsegiTantargyEnum.matematika}").ToList();
|
||||
if (erettsegiTantargyMatematikaIdList.Count == 0)
|
||||
{
|
||||
var row = dt.NewRow();
|
||||
row["ID"] = "tempMatematikaRowId";
|
||||
row["ErettsegiTantargyId"] = (int)ErettsegiTantargyEnum.matematika;
|
||||
row["IsNew"] = true;
|
||||
dt.Rows.Add(row);
|
||||
}
|
||||
List<DataRow> erettsegiTantargyTortenelemIdList = erettsegiEredmenyekData.Tables[0].Select($"ErettsegiTantargyId = {(int)ErettsegiTantargyEnum.tortenelem}").ToList();
|
||||
if (erettsegiTantargyTortenelemIdList.Count == 0)
|
||||
{
|
||||
var row = dt.NewRow();
|
||||
row["ID"] = "tempTortenelemRowId";
|
||||
row["ErettsegiTantargyId"] = (int)ErettsegiTantargyEnum.tortenelem;
|
||||
row["IsNew"] = true;
|
||||
dt.Rows.Add(row);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var row in dt.Rows.Cast<DataRow>().ToList())
|
||||
{
|
||||
int? osszMaxPontszam;
|
||||
var irasbeliPontszam = SDAConvert.ToNullableInt32(row["IrasbeliPontszam"]);
|
||||
if (SDAConvert.ToInt32(row["ErettsegiTantargyId"]) == (int)ErettsegiTantargyEnum.matematika && irasbeliPontszam.HasValue && irasbeliPontszam < 25)
|
||||
{
|
||||
osszMaxPontszam = SDAConvert.ToNullableInt32(row["OsszMaxPontszam"]) + 50;
|
||||
}
|
||||
else
|
||||
{
|
||||
osszMaxPontszam = SDAConvert.ToNullableInt32(row["OsszMaxPontszam"]);
|
||||
}
|
||||
double? szazalek = null;
|
||||
string szazalekString;
|
||||
int? osszPontszam = SDAConvert.ToNullableInt32(row["OsszPontszam"]);
|
||||
string osszPontszamString;
|
||||
if (osszPontszam.HasValue && osszMaxPontszam.HasValue)
|
||||
{
|
||||
if (osszMaxPontszam < osszPontszam)
|
||||
{
|
||||
osszPontszamString = ErettsegiEredmenyekResource.MagasabbAzOsszPontszamMintAMaxOsszPontszam;
|
||||
szazalekString = ErettsegiEredmenyekResource.MagasabbAzOsszPontszamMintAMaxOsszPontszam;
|
||||
}
|
||||
else
|
||||
{
|
||||
osszPontszamString = $"{osszPontszam}/{osszMaxPontszam}";
|
||||
szazalek = Math.Floor((double)osszPontszam.Value / osszMaxPontszam.Value * 100);
|
||||
szazalekString = szazalek + "%";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
osszPontszamString = osszMaxPontszam.HasValue ? $"-/{osszMaxPontszam}" : "-";
|
||||
szazalekString = "-";
|
||||
}
|
||||
row["Szazalek"] = szazalekString;
|
||||
row["OsszPontszam"] = osszPontszamString;
|
||||
|
||||
var erettsegiSzintId = SDAConvert.ToNullableInt32(row["ErettsegiSzintId"]);
|
||||
|
||||
string erdemjegyString;
|
||||
if (erettsegiSzintId.IsEntityId() && szazalek.HasValue)
|
||||
{
|
||||
//NOTE: Az IsEntityId vizsgálat miatt nem lehet null az erettsegiSzintId!
|
||||
if (erettsegiSzintId.Value == (int)ErettsegiSzintEnum.KozepSzint)
|
||||
{
|
||||
int erdemjegy;
|
||||
if (0 <= szazalek.Value && szazalek.Value <= 24)
|
||||
{
|
||||
erdemjegy = 1;
|
||||
}
|
||||
else if (25 <= szazalek.Value && szazalek.Value <= 39)
|
||||
{
|
||||
erdemjegy = 2;
|
||||
}
|
||||
else if (40 <= szazalek.Value && szazalek.Value <= 59)
|
||||
{
|
||||
erdemjegy = 3;
|
||||
}
|
||||
else if (60 <= szazalek.Value && szazalek.Value <= 79)
|
||||
{
|
||||
erdemjegy = 4;
|
||||
}
|
||||
else if (80 <= szazalek.Value && szazalek.Value <= 100)
|
||||
{
|
||||
erdemjegy = 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("Hibás százalék érték!");
|
||||
}
|
||||
erdemjegyString = erdemjegy.ToString();
|
||||
}
|
||||
else if (erettsegiSzintId.Value == (int)ErettsegiSzintEnum.EmeltSzint)
|
||||
{
|
||||
int erdemjegy;
|
||||
if (0 <= szazalek.Value && szazalek.Value <= 24)
|
||||
{
|
||||
erdemjegy = 1;
|
||||
}
|
||||
else if (25 <= szazalek.Value && szazalek.Value <= 32)
|
||||
{
|
||||
erdemjegy = 2;
|
||||
}
|
||||
else if (33 <= szazalek.Value && szazalek.Value <= 46)
|
||||
{
|
||||
erdemjegy = 3;
|
||||
}
|
||||
else if (47 <= szazalek.Value && szazalek.Value <= 59)
|
||||
{
|
||||
erdemjegy = 4;
|
||||
}
|
||||
else if (60 <= szazalek.Value && szazalek.Value <= 100)
|
||||
{
|
||||
erdemjegy = 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("Hibás százalék érték!");
|
||||
}
|
||||
erdemjegyString = erdemjegy.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
erdemjegyString = "-";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
erdemjegyString = "-";
|
||||
}
|
||||
row["Erdemjegy"] = erdemjegyString;
|
||||
}
|
||||
|
||||
return erettsegiEredmenyekData;
|
||||
}
|
||||
|
||||
public void SaveErettsegiEredmenyList(List<ErettsegiEredmenyItemCo> erettsegiEredmenyCoList)
|
||||
{
|
||||
foreach (var erettsegiEredmenyCo in erettsegiEredmenyCoList)
|
||||
{
|
||||
SaveOrUpdateErettsegiEredmeny(erettsegiEredmenyCo);
|
||||
}
|
||||
}
|
||||
|
||||
public void SaveOrUpdateErettsegiEredmeny(ErettsegiEredmenyItemCo co)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
IErettsegiEredmenyDal dal = h.ErettsegiEredmeny();
|
||||
bool isNew = !co.Id.IsEntityId();
|
||||
//NOTE: Az IsEntityId vizsgálat miatt nem lehet null az co.Id!
|
||||
IErettsegiEredmeny entity = isNew ? dal.Get() : dal.Get(co.Id.Value);
|
||||
|
||||
entity.ErettsegiSzint = co.ErettsegiSzintId;
|
||||
entity.ErettsegiTantargy = co.ErettsegiTantargyId;
|
||||
entity.ErettsegiTipus = co.ErettsegiTipusId;
|
||||
entity.GyakorlatPontszam = co.GyakorlatiPontszam;
|
||||
entity.IntezmenyId = co.IntezmenyId;
|
||||
entity.IrasbeliPontszam = co.IrasbeliPontszam;
|
||||
entity.Megjegyzes = co.Megjegyzes;
|
||||
entity.OsszPontszam = co.OsszPontszam;
|
||||
entity.SzobeliPontszam = co.SzobeliPontszam;
|
||||
entity.TanevId = co.TanevId;
|
||||
entity.TanuloId = co.TanuloId;
|
||||
|
||||
if (isNew)
|
||||
{
|
||||
dal.Insert(entity);
|
||||
}
|
||||
else
|
||||
{
|
||||
dal.FullUpdate(entity);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void DeleteErettsegiEredmeny(int id)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, h => h.ErettsegiEredmeny().DeleteErettsegiEredmeny(id));
|
||||
}
|
||||
|
||||
public IDictionary<string, string> GetErettsegiTantargyakForComboBox(string baseText = null)
|
||||
{
|
||||
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.ErettsegiEredmeny();
|
||||
return dal.GetErettsegiTantargyakForComboBox(IntezmenyId, TanevId);
|
||||
});
|
||||
|
||||
return LogicUtil.CreateDropdownContent(result, "ID", "Nev", baseText, sort: false);
|
||||
}
|
||||
|
||||
public DataSet GetErettsegiTantargyakForValidate()
|
||||
{
|
||||
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.ErettsegiEredmeny();
|
||||
return dal.GetErettsegiTantargyakForValidate(IntezmenyId, TanevId);
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public IDictionary<string, string> GetErettsegiSzintekForComboBox(string baseText = null)
|
||||
{
|
||||
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.ErettsegiEredmeny();
|
||||
return dal.GetErettsegiSzintekForComboBox(IntezmenyId, TanevId);
|
||||
});
|
||||
|
||||
return LogicUtil.CreateDropdownContent(result, "ID", "Nev", baseText, false);
|
||||
}
|
||||
|
||||
public IDictionary<string, string> GetErettsegiTipusokForComboBox(string baseText = null)
|
||||
{
|
||||
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.ErettsegiEredmeny();
|
||||
return dal.GetErettsegiTipusokForComboBox(IntezmenyId, TanevId);
|
||||
});
|
||||
|
||||
return LogicUtil.CreateDropdownContent(result, "ID", "Nev", baseText, false);
|
||||
}
|
||||
|
||||
public IDictionary<string, int> GetErettsegiMaxPontszamList()
|
||||
{
|
||||
DataSet ds = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.ErettsegiEredmeny();
|
||||
return dal.GetErettsegiMaxPontszamList(IntezmenyId, TanevId);
|
||||
});
|
||||
var row = ds.Tables[0].Rows[0];
|
||||
var maxPontszamDictionary = new Dictionary<string, int>
|
||||
{
|
||||
{"IrasbeliMaxPontszam", SDAConvert.ToInt32(row["IrasbeliMaxPontszam"])},
|
||||
{"SzobeliMaxPontszam", SDAConvert.ToInt32(row["SzobeliMaxPontszam"])},
|
||||
{"GyakorlatiMaxPontszam", SDAConvert.ToInt32(row["GyakorlatiMaxPontszam"])}
|
||||
};
|
||||
|
||||
return maxPontszamDictionary;
|
||||
}
|
||||
|
||||
public ErettsegiEredmenyItemCo GetErettsegiEredmeny(int erettsegiEredmenyId)
|
||||
{
|
||||
var searchCo = new ErettsegiEredmenyekKeresoCO
|
||||
{
|
||||
Id = erettsegiEredmenyId
|
||||
};
|
||||
|
||||
return GetErettsegiEredmenyCoList(searchCo)[0];
|
||||
}
|
||||
|
||||
public List<ErettsegiEredmenyItemCo> GetErettsegiEredmenyCoList(ErettsegiEredmenyekKeresoCO searchCo)
|
||||
{
|
||||
var coList = new List<ErettsegiEredmenyItemCo>();
|
||||
var ds = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.ErettsegiEredmeny(GridParameters);
|
||||
return dal.GetErettsegiEredmenyekData(IntezmenyId, TanevId, ErettsegiEredmenyekKeresoCO.ConvertCOToPCO(searchCo));
|
||||
});
|
||||
|
||||
foreach (var row in ds.Tables[0].AsEnumerable())
|
||||
{
|
||||
coList.Add(new ErettsegiEredmenyItemCo(row));
|
||||
}
|
||||
|
||||
return FilterErettsegiEredmenyCoList(coList, searchCo);
|
||||
}
|
||||
|
||||
private List<ErettsegiEredmenyItemCo> FilterErettsegiEredmenyCoList(List<ErettsegiEredmenyItemCo> coList, ErettsegiEredmenyekKeresoCO searchCo)
|
||||
{
|
||||
if (searchCo == null)
|
||||
{
|
||||
return coList;
|
||||
}
|
||||
|
||||
IEnumerable<ErettsegiEredmenyItemCo> result = coList;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchCo.Tanulo))
|
||||
{
|
||||
result = result.Where(x => x.Tanulo.ToComparableString().Contains(searchCo.Tanulo.ToComparableString()));
|
||||
}
|
||||
|
||||
if (searchCo.OsztalyId.IsEntityId())
|
||||
{
|
||||
result = result.Where(x => x.OsztalyId == searchCo.OsztalyId);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchCo.OktatasiAzonosito))
|
||||
{
|
||||
result = result.Where(x => x.OktatasiAzonosito.ToComparableString().Contains(searchCo.OktatasiAzonosito.ToComparableString()));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchCo.Tantargy))
|
||||
{
|
||||
result = result.Where(x => x.Tantargy.ToComparableString().Contains(searchCo.Tantargy.ToComparableString()));
|
||||
}
|
||||
|
||||
if (searchCo.SzintId.IsEntityId())
|
||||
{
|
||||
result = result.Where(x => x.ErettsegiSzintId == searchCo.SzintId);
|
||||
}
|
||||
|
||||
if (searchCo.TipusId.IsEntityId())
|
||||
{
|
||||
result = result.Where(x => x.ErettsegiTipusId == searchCo.TipusId);
|
||||
}
|
||||
|
||||
if (searchCo.SzobeliPontszam.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.SzobeliPontszam == searchCo.SzobeliPontszam.Value);
|
||||
}
|
||||
|
||||
if (searchCo.IrasbeliPontszam.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.IrasbeliPontszam == searchCo.IrasbeliPontszam.Value);
|
||||
}
|
||||
|
||||
if (searchCo.GyakorlatiPontszam.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.GyakorlatiPontszam == searchCo.GyakorlatiPontszam.Value);
|
||||
}
|
||||
|
||||
if (searchCo.OsszPontszam.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.OsszPontszam == searchCo.OsszPontszam.Value);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchCo.Megjegyzes))
|
||||
{
|
||||
result = result.Where(x => x.Megjegyzes.ToComparableString().Contains(searchCo.Megjegyzes.ToComparableString()));
|
||||
}
|
||||
|
||||
return result.ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user