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

274 lines
11 KiB
C#

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.ConnectionType;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Util;
using Kreta.Enums.ManualEnums;
namespace Kreta.BusinessLogic.Helpers
{
public class TanevHelper : LogicBase
{
public TanevHelper(IConnectionType connectionType) : base(connectionType) { }
public DateTime GetTanevKezdete()
{
var co = GetTanevInfo();
return co.KezdoNap;
}
public IDictionary<string, string> GetTanevekForDDL(string baseText = null)
=> Dal.CustomConnection.Run(ConnectionType, h =>
{
return LogicUtil.CreateDropdownContent(h.TanevDal(GridParameters).GetTanevek(), "ID", "Nev", baseText);
});
public IDictionary<string, string> GetAktivAndKovTanevekForDDL(string baseText = null)
=> Dal.CustomConnection.Run(ConnectionType, h =>
{
return LogicUtil.CreateDropdownContent(h.TanevDal(GridParameters).GetAktivAndKovTanevek(), "ID", "Nev", baseText);
});
public IDictionary<string, string> GetAktivTanevekForDDL(string baseText = null)
=> Dal.CustomConnection.Run(ConnectionType, h =>
{
return LogicUtil.CreateDropdownContent(h.TanevDal(GridParameters).GetAktivTanevek(), "ID", "Nev", baseText);
});
public IDictionary<string, string> GetCsengetesiRendForDDL(string baseText)
{
var ds = Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.CsengetesiRend(GridParameters);
return dal.GetCsengetesiRendek(TanevId);
});
return LogicUtil.CreateDropdownContent(ds, "ID", "C_NEV", baseText);
}
public int GetAktivTanevId()
=> Dal.CustomConnection.Run(ConnectionType, h =>
{
return h.TanevDal().GetAktivTanevId();
});
public List<DateTime> GetTanevRendkivuliNapok() =>
Dal.CustomConnection.Run(ConnectionType, dalHandler =>
{
var tanevRendjeNaptipusTulajdonsagokkalCOs = new TanevrendHelper(new DalHandlerConnectionType(ConnectionType, dalHandler)).GetTanevRendjeNaptipusTulajdonsagokkal();
return tanevRendjeNaptipusTulajdonsagokkalCOs.Where(x => x.Naptipus == (int)Enums.NapTipusEnum.RendkivuliTanitasiNap).Select(x => (DateTime)x.Datum).ToList();
});
public TanevCO GetTanevInfo(int? tanevId = null)
=> Dal.CustomConnection.Run(ConnectionType, h =>
{
DataSet dataSet = h.TanevDal().GetTanevData(tanevId.HasValue ? tanevId.Value : TanevId);
var co = new TanevCO();
var id = dataSet.Tables[0].Rows[0]["Id"];
if (id != DBNull.Value && string.IsNullOrWhiteSpace(id.ToString()) == false)
{
co.Id = (int)id;
}
var nev = dataSet.Tables[0].Rows[0]["Nev"];
if (nev != DBNull.Value && string.IsNullOrWhiteSpace(nev.ToString()) == false)
{
co.Nev = (string)nev;
}
var kezdoNap = dataSet.Tables[0].Rows[0]["KezdoNap"];
if (kezdoNap != DBNull.Value && string.IsNullOrWhiteSpace(kezdoNap.ToString()) == false)
{
co.KezdoNap = (DateTime)kezdoNap;
}
var utolsoNap = dataSet.Tables[0].Rows[0]["UtolsoNap"];
if (utolsoNap != DBNull.Value && string.IsNullOrWhiteSpace(utolsoNap.ToString()) == false)
{
co.UtolsoNap = (DateTime)utolsoNap;
}
var elsoTanitasiNap = dataSet.Tables[0].Rows[0]["ElsoTanitasiNap"];
if (elsoTanitasiNap != DBNull.Value && string.IsNullOrWhiteSpace(elsoTanitasiNap.ToString()) == false)
{
co.ElsoTanitasiNap = (DateTime)elsoTanitasiNap;
}
var utolsoTanitasiNap = dataSet.Tables[0].Rows[0]["UtolsoTanitasiNap"];
if (utolsoTanitasiNap != DBNull.Value && string.IsNullOrWhiteSpace(utolsoTanitasiNap.ToString()) == false)
{
co.UtolsoTanitasiNap = (DateTime)utolsoTanitasiNap;
}
var utolsoTanitasiNapVegzos = dataSet.Tables[0].Rows[0]["UtolsoTanitasiNapVegzos"];
if (utolsoTanitasiNapVegzos != DBNull.Value && string.IsNullOrWhiteSpace(utolsoTanitasiNapVegzos.ToString()) == false)
{
co.UtolsoTanitasiNapVegzos = (DateTime)utolsoTanitasiNapVegzos;
}
var sorszam = dataSet.Tables[0].Rows[0]["Sorszam"];
if (sorszam != DBNull.Value && string.IsNullOrWhiteSpace(sorszam.ToString()) == false)
{
co.Sorszam = (int)sorszam;
}
var isAktiv = dataSet.Tables[0].Rows[0]["IsAktiv_BOOL"];
if (isAktiv != DBNull.Value && string.IsNullOrWhiteSpace(isAktiv.ToString()) == false)
{
co.IsAktiv = Convert.ToBoolean(isAktiv);
}
var isKovetkezo = dataSet.Tables[0].Rows[0]["IsKovetkezo_BOOL"];
if (isKovetkezo != DBNull.Value && string.IsNullOrWhiteSpace(isKovetkezo.ToString()) == false)
{
co.IsKovetkezo = Convert.ToBoolean(isKovetkezo);
}
var isKivalaszthato = dataSet.Tables[0].Rows[0]["IsKivalaszthato_BOOL"];
if (isKivalaszthato != DBNull.Value && string.IsNullOrWhiteSpace(isKivalaszthato.ToString()) == false)
{
co.IsKivalaszthato = Convert.ToBoolean(isKivalaszthato);
}
var foglalkozasokRogziteseHetvegereEnum = dataSet.Tables[0].Rows[0]["FoglalkozasokRogziteseHetvegereEnumValue"];
if (foglalkozasokRogziteseHetvegereEnum != DBNull.Value && string.IsNullOrWhiteSpace(foglalkozasokRogziteseHetvegereEnum.ToString()) == false)
{
co.FoglalkozasokRogziteseHetvegereEnum = (FoglalkozasokRogziteseHetvegere)Convert.ToInt32(foglalkozasokRogziteseHetvegereEnum);
}
return co;
});
public DateTime GetDatumInTanev(DateTime? datum = null)
{
if (!datum.HasValue)
{
datum = DateTime.Now.Date;
}
var tanevData = GetTanevInfo();
if (datum < tanevData.KezdoNap)
{
datum = tanevData.KezdoNap;
}
else if (datum > tanevData.UtolsoTanitasiNap)
{
datum = tanevData.UtolsoTanitasiNap;
}
return datum.Value;
}
public List<FelhasznaloTanevekCo> GetFelhasznaloIdBySelectedTanevIdAndFelhasznaloId(int felhasznaloId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
List<FelhasznaloTanevekCo> list = new List<FelhasznaloTanevekCo>();
var dal = h.TanevDal();
DataSet ds = dal.GetFelhasznalokTanevekByFelhasznaloId(felhasznaloId);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
list.Add(new FelhasznaloTanevekCo
{
FelhasznaloId = SDAConvert.ToInt32(row["FelhasznaloId"]),
FelhasznaloNev = SDAConvert.ToString(row["FelhasznaloNev"]),
FelhasznaloEgyediAzonosito = SDAConvert.ToString(row["FelhasznaloEgyediAzonosito"]),
TanevId = SDAConvert.ToInt32(row["TanevId"]),
TanevIsActiv = SDAConvert.ToBooleanFromTF(row["TanevIsActiv"]),
TanevIsKovetkezo = SDAConvert.ToBooleanFromTF(row["TanevIsKovetkezo"]),
TanevNev = SDAConvert.ToString(row["TanevNev"])
});
}
}
return list;
});
}
public KeyValuePair<int, string> GetKovetkezoTanev()
=> Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevDal(GridParameters);
var ds = dal.GetKovetkezoTanev();
KeyValuePair<int, string> p;
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
p = new KeyValuePair<int, string>(SDAConvert.ToInt32(ds.Tables[0].Rows[0]["ID"]), ds.Tables[0].Rows[0]["Nev"].ToString());
}
else
{
p = new KeyValuePair<int, string>();
}
return p;
});
public int GetKovTanevId()
=> Dal.CustomConnection.Run(ConnectionType, h =>
{
return h.TanevDal().GetKovTanevId();
});
public int GetPrevTanevId()
=> Dal.CustomConnection.Run(ConnectionType, h =>
{
return h.TanevDal().GetPrevTanevId();
});
public KeyValuePair<int, string> GetElozoTanev()
=> Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanevDal(GridParameters);
var ds = dal.GetElozoTanev();
KeyValuePair<int, string> p;
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
p = new KeyValuePair<int, string>(SDAConvert.ToInt32(ds.Tables[0].Rows[0]["ID"]), ds.Tables[0].Rows[0]["Nev"].ToString());
}
else
{
p = new KeyValuePair<int, string>();
}
return p;
});
public string GetAktivTanevNev()
=> Dal.CustomConnection.Run(ConnectionType, h =>
{
return h.TanevDal().GetAktivTanevNev();
});
public bool GetAktivTanevValtasMenupontMegjelenik()
=> Dal.CustomConnection.Run(ConnectionType, h =>
{
var kovTanevDataSet = h.TanevDal().GetKovetkezoTanevAktivalhatosagAdatok(IntezmenyId);
var isLathato = false;
if (kovTanevDataSet?.Tables.Count > 0 && kovTanevDataSet?.Tables[0].Rows.Count > 0)
{
var kovTanevRow = kovTanevDataSet.Tables[0].Rows[0];
var aktivalhatosagKezdete = SDAConvert.ToDateTime(kovTanevRow["C_AKTIVALHATOSAGKEZDETE"]);
var kezdonap = SDAConvert.ToDateTime(kovTanevRow["C_KEZDONAP"]);
if (aktivalhatosagKezdete.HasValue)
{
isLathato = aktivalhatosagKezdete <= DateTime.Now;
}
else
{
isLathato = kezdonap.HasValue && kezdonap.Value.AddDays(-9) <= DateTime.Now;
}
}
return isLathato;
});
}
}