using System.Data; using System.Text.RegularExpressions; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.DataAccessManual; using Kreta.DataAccessManual.Interfaces; namespace Kreta.BusinessLogic.Helpers { public class LeptetesHelper : LogicBase { public LeptetesHelper(IConnectionType connectionType) : base(connectionType) { } public DataSet GetOsztalyLeptetesGridData(int aktTanevId) { var kovTanevData = new TanevHelper(base.ConnectionType).GetTanevInfo(); var ds = Dal.CustomConnection.Run(ConnectionType, h => { ILeptetesDal dal = h.Leptetes(GridParameters); return dal.GetOsztalyLeptetesGridData(aktTanevId); }); ds.Tables[0].Columns.Add("KovTanev", typeof(string)); ds.Tables[0].Columns.Add("OsztalyJavasoltNeve", typeof(string)); ds.Tables[0].Columns.Add("JavasoltEvfolyam", typeof(string)); ds.Tables[0].Columns.Add("EditOsztalyNeve", typeof(string)); ds.Tables[0].Columns.Add("EditEvfolyam", typeof(int)); foreach (DataRow row in ds.Tables[0].Rows) { var javOsztalyNev = GetJavasoltNev(row.Field("OsztalyNeve")); row["KovTanev"] = kovTanevData.Nev; row["OsztalyJavasoltNeve"] = javOsztalyNev; row["JavasoltEvfolyam"] = row["KovEvfolyam"]; row["EditOsztalyNeve"] = javOsztalyNev; row["EditEvfolyam"] = row["KovEvfolyamId"]; } return ds; } public DataSet GetCsoportLeptetesGridData(int aktTanevId) { var kovTanevData = new TanevHelper(base.ConnectionType).GetTanevInfo(); var ds = Dal.CustomConnection.Run(ConnectionType, h => { ILeptetesDal dal = h.Leptetes(GridParameters); return dal.GetCsoportLeptetesGridData(aktTanevId); }); ds.Tables[0].Columns.Add("KovTanev", typeof(string)); ds.Tables[0].Columns.Add("CsoportJavasoltNeve", typeof(string)); ds.Tables[0].Columns.Add("JavasoltEvfolyam", typeof(string)); ds.Tables[0].Columns.Add("JavasoltOsztalybontas", typeof(string)); ds.Tables[0].Columns.Add("EditCsoportNeve", typeof(string)); ds.Tables[0].Columns.Add("EditEvfolyam", typeof(int)); ds.Tables[0].Columns.Add("EditOsztalybontas", typeof(int)); var helper = new OsztalyHelper(base.ConnectionType); var osztalyok = helper.GetOsztalyokByTanev(string.Empty); foreach (DataRow row in ds.Tables[0].Rows) { var javCsoportNev = GetJavasoltNev(row.Field("CsoportNeve")); var javCsoportBontas = ""; if (!string.IsNullOrWhiteSpace(row.Field("Osztalybontas"))) javCsoportBontas = GetJavasoltNev(row.Field("Osztalybontas")); foreach (var item in osztalyok) { if (item.Value == javCsoportBontas) { row["JavasoltOsztalybontas"] = javCsoportBontas; row["EditOsztalybontas"] = item.Key; break; } } row["KovTanev"] = kovTanevData.Nev; row["CsoportJavasoltNeve"] = javCsoportNev; row["JavasoltEvfolyam"] = row["KovEvfolyam"]; row["EditCsoportNeve"] = javCsoportNev; row["EditEvfolyam"] = row["KovEvfolyamId"]; } return ds; } public void CopyOsztalyToKovTanev(int sourceID, string targetNev, int targetEvfolyam, int kovTanevId) { Dal.CustomConnection.Run(ConnectionType, h => { IOsztalyDal oDal = h.Osztaly(); ITanevDal tDal = h.TanevDal(); IFeladatEllatasiHelyDal fDal = h.FeladatEllatasiHelyDal(); ITantervDAL taDal = h.TantervDAL(); ITeremDal teDal = h.Terem(); IAlkalmazottDal aDal = h.Alkalmazott(); var kovTanevData = tDal.Get(kovTanevId); var sourceEntity = oDal.Get(sourceID); var targetEntity = oDal.Get(); var kovFeladatEllatasiHelyId = fDal.GetKovTanevIdByAktTanevId(sourceEntity.FeladatEllatasiHelyId); var kovTantervId = taDal.GetKovTanevIdByAktTanevId(sourceEntity.TantervId); var kovTeremId = teDal.GetKovTanevIdByAktTanevId(sourceEntity.TeremId); var kovOsztalyFonokId = aDal.GetKovTanevIdByAktTanevId(sourceEntity.OsztalyFonokId); var kovOfoHelyettesId = aDal.GetKovTanevIdByAktTanevId(sourceEntity.OfoHelyettesId); if (kovTantervId != 0) targetEntity.TantervId = kovTantervId; targetEntity.Megjegyzes = sourceEntity.Megjegyzes; targetEntity.Nev = targetNev.ReplaceMultipleSpacesAndTrim(); targetEntity.VegzosEvfolyam = sourceEntity.VegzosEvfolyam; targetEntity.EvfolyamTipusa = targetEvfolyam; targetEntity.Importalt = sourceEntity.Importalt; targetEntity.TervezettLetszam = sourceEntity.TervezettLetszam; targetEntity.Keresztfeleves = sourceEntity.Keresztfeleves; targetEntity.FeladatKategoriaId = sourceEntity.FeladatKategoriaId; targetEntity.MuveszetiAgId = sourceEntity.MuveszetiAgId; targetEntity.TanszakTipusId = sourceEntity.TanszakTipusId; targetEntity.MufajTipusId = sourceEntity.MufajTipusId; targetEntity.ZenemuveszetiAgTipusId = sourceEntity.ZenemuveszetiAgTipusId; targetEntity.KepzesiForma = sourceEntity.KepzesiForma; targetEntity.IsGyogypedagogiaiLogopediai = sourceEntity.IsGyogypedagogiaiLogopediai; targetEntity.IsTechnikai = sourceEntity.IsTechnikai; targetEntity.FeladatEllatasiHelyId = kovFeladatEllatasiHelyId; targetEntity.OsztalynaploLeirasa = sourceEntity.OsztalynaploLeirasa; targetEntity.OsztalynaploMegnyitasa = kovTanevData.KezdoNap; targetEntity.OsztalynaploZarasa = null; targetEntity.Agazat = sourceEntity.Agazat; targetEntity.Reszszakkepesites = sourceEntity.Reszszakkepesites; targetEntity.Szakkepesites = sourceEntity.Szakkepesites; targetEntity.SzakmaCsoport = sourceEntity.SzakmaCsoport; targetEntity.GimnaziumiEvfolyamTipusId = sourceEntity.GimnaziumiEvfolyamTipusId; targetEntity.Kettannyelvu = sourceEntity.Kettannyelvu; targetEntity.Nemzetisegi = sourceEntity.Nemzetisegi; targetEntity.NyelviElokeszito = sourceEntity.NyelviElokeszito; targetEntity.Sport = sourceEntity.Sport; targetEntity.AJTehettseggondozoProgram = sourceEntity.AJTehettseggondozoProgram; targetEntity.AJProgram = sourceEntity.AJProgram; targetEntity.VegyesEvfolyamu = sourceEntity.VegyesEvfolyamu; targetEntity.VegyesSzakkepzesu = sourceEntity.VegyesSzakkepzesu; targetEntity.SpecialisJellemzo = sourceEntity.SpecialisJellemzo; targetEntity.VegyesEvfolyamuTanterv = sourceEntity.VegyesEvfolyamuTanterv; targetEntity.OsztalypenzBankszamlaszamKedvezmenyezettNeve = sourceEntity.OsztalypenzBankszamlaszamKedvezmenyezettNeve; targetEntity.OsztalypenzBankszamlaszama = sourceEntity.OsztalypenzBankszamlaszama; targetEntity.VPOSEngedelyezett = sourceEntity.VPOSEngedelyezett; targetEntity.AranyJanosProgramTipusId = sourceEntity.AranyJanosProgramTipusId; targetEntity.JogviszonyTipusId = sourceEntity.JogviszonyTipusId; targetEntity.AgazatUjSzktTipusId = sourceEntity.AgazatUjSzktTipusId; targetEntity.SzakmairanyTipusId = sourceEntity.SzakmairanyTipusId; targetEntity.SzakmaTipusId = sourceEntity.SzakmaTipusId; targetEntity.SzakiranyNktTipusId = sourceEntity.SzakiranyNktTipusId; targetEntity.SzakkepesitesNktTipusId = sourceEntity.SzakkepesitesNktTipusId; targetEntity.TanulmanyiTeruletNktTipusId = sourceEntity.TanulmanyiTeruletNktTipusId; if (kovTeremId != 0) targetEntity.TeremId = kovTeremId; if (kovOsztalyFonokId != 0) targetEntity.OsztalyFonokId = kovOsztalyFonokId; if (kovOfoHelyettesId != 0) targetEntity.OfoHelyettesId = kovOfoHelyettesId; targetEntity.IntezmenyId = sourceEntity.IntezmenyId; targetEntity.TanevId = kovTanevId; oDal.Insert(targetEntity); }); } public void CopyCsoportToKovTanev(int sourceID, string targetNev, int targetEvfolyam, int? targetOsztalybontas, int kovTanevId) { Dal.CustomConnection.Run(ConnectionType, h => { ICsoportDal csDal = h.Csoport(); IOsztalyDal oDal = h.Osztaly(); ITanevDal tDal = h.TanevDal(); IFeladatEllatasiHelyDal fDal = h.FeladatEllatasiHelyDal(); ITantervDAL taDal = h.TantervDAL(); ITeremDal teDal = h.Terem(); IAlkalmazottDal aDal = h.Alkalmazott(); var kovTanevData = tDal.Get(kovTanevId); var sourceEntity = csDal.Get(sourceID); var targetEntity = csDal.Get(); var kovFeladatEllatasiHelyId = fDal.GetKovTanevIdByAktTanevId(sourceEntity.FeladatEllatasiHelyId); var kovTeremId = teDal.GetKovTanevIdByAktTanevId(sourceEntity.TeremId); var kovCsoportVezetoId = aDal.GetKovTanevIdByAktTanevId(sourceEntity.CsoportVezetoId); targetEntity.Megjegyzes = sourceEntity.Megjegyzes; targetEntity.Nev = targetNev.ReplaceMultipleSpacesAndTrim(); targetEntity.EvfolyamTipusa = targetEvfolyam; targetEntity.Importalt = sourceEntity.Importalt; targetEntity.TervezettLetszam = sourceEntity.TervezettLetszam; targetEntity.Keresztfeleves = sourceEntity.Keresztfeleves; targetEntity.FeladatKategoriaId = sourceEntity.FeladatKategoriaId; targetEntity.MuveszetiAgId = sourceEntity.MuveszetiAgId; targetEntity.ZenemuveszetiAgTipusId = sourceEntity.ZenemuveszetiAgTipusId; targetEntity.KepzesiForma = sourceEntity.KepzesiForma; targetEntity.IsGyogypedagogiaiLogopediai = sourceEntity.IsGyogypedagogiaiLogopediai; targetEntity.IsTechnikai = sourceEntity.IsTechnikai; targetEntity.FeladatEllatasiHelyId = kovFeladatEllatasiHelyId; targetEntity.Tipusa = sourceEntity.Tipusa; targetEntity.CsoportnaploLeiras = sourceEntity.CsoportnaploLeiras; targetEntity.CsoportnaploMegnyitasa = kovTanevData.KezdoNap; targetEntity.CsoportnaploZarasa = null; targetEntity.IsAutoEgyeniCsoport = sourceEntity.IsAutoEgyeniCsoport; if (targetOsztalybontas.HasValue && targetOsztalybontas != -1) { targetEntity.OsztalyBontasId = targetOsztalybontas.Value; var bonottOsztalyData = oDal.Get(targetOsztalybontas.Value); targetEntity.EvfolyamTipusa = bonottOsztalyData.EvfolyamTipusa; targetEntity.VegzosEvfolyam = bonottOsztalyData.VegzosEvfolyam; targetEntity.FeladatEllatasiHelyId = bonottOsztalyData.FeladatEllatasiHelyId; } else { targetEntity.FeladatEllatasiHelyId = kovFeladatEllatasiHelyId; targetEntity.VegzosEvfolyam = sourceEntity.VegzosEvfolyam; } targetEntity.AlIntezmenyId = sourceEntity.AlIntezmenyId; targetEntity.AlTanevId = kovTanevId; if (kovTeremId != 0) targetEntity.TeremId = kovTeremId; if (kovCsoportVezetoId != 0) targetEntity.CsoportVezetoId = kovCsoportVezetoId; targetEntity.IntezmenyId = sourceEntity.IntezmenyId; targetEntity.TanevId = kovTanevId; csDal.Insert(targetEntity); }); } private string GetJavasoltNev(string nev) { var result = nev; var pattern = @"(\d\/\d+)"; Match match = Regex.Match(nev, pattern); if (match.Success && int.TryParse(nev.Substring(0, 1), out _)) { var splittedStr = match.Value.Split('/'); result = (int.Parse(splittedStr[0]) + 1) + "/" + (int.Parse(splittedStr[1]) + 1) + nev.Replace(match.Value, ""); } else { if (nev.Length >= 3 && int.TryParse(nev.Substring(0, 3), out _)) result = int.Parse(nev.Substring(0, 3)) + 1 + nev.Replace(nev.Substring(0, 3), ""); else if (nev.Length >= 2 && int.TryParse(nev.Substring(0, 2), out _)) result = int.Parse(nev.Substring(0, 2)) + 1 + nev.Replace(nev.Substring(0, 2), ""); else if (nev.Length >= 1 && int.TryParse(nev.Substring(0, 1), out _)) result = int.Parse(nev.Substring(0, 1)) + 1 + nev.Replace(nev.Substring(0, 1), ""); } return result; } } }