305 lines
12 KiB
C#
305 lines
12 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using Kreta.Core;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Enums;
|
|
|
|
namespace Kreta.DataAccessManual.ParameterClasses
|
|
{
|
|
public class TanuloKeresesPCO
|
|
{
|
|
public string Nev { get; set; }
|
|
public DateTime? SzuletesiIdoKezdet { get; set; }
|
|
public DateTime? SzuletesiIdoVeg { get; set; }
|
|
public string AnyjaNeve { get; set; }
|
|
public string SzuletesiHely { get; set; }
|
|
public int? OsztalyId { get; set; }
|
|
public int? EvfolyamId { get; set; }
|
|
public int? Neme { get; set; }
|
|
public int? FelvetelEve { get; set; }
|
|
public bool? Vegzos { get; set; }
|
|
public bool Aktiv { get; set; }
|
|
public bool? SNI { get; set; }
|
|
public bool? BTM { get; set; }
|
|
public int? FeladatellatasiHelyId { get; set; }
|
|
public int? HatranyosHelyzetId { get; set; }
|
|
public bool Torolt { get; set; } = false;
|
|
public string OktatasiAzonosito { get; set; }
|
|
public bool? OsztalybaSoroltTantervNelkul { get; set; }
|
|
public bool? NincsNem { get; set; }
|
|
public bool? NincsSzakmaCsoport { get; set; }
|
|
public bool? NincsAnyanyelv { get; set; }
|
|
public bool? NincsAllampolgarsag { get; set; }
|
|
public bool? TanuloBelepesNelkul { get; set; }
|
|
public int? TanevId { get; set; }
|
|
public DateTime? LekerdezesNapja { get; set; }
|
|
public int? FeladatKategoriaId { get; set; }
|
|
public int? SearchMuveszetiAgId { get; set; }
|
|
public bool ForOktober { get; set; }
|
|
public bool? NincsOsztondijAlapAdat { get; set; }
|
|
public bool? NincsOsztondijUtalasAdat { get; set; }
|
|
public bool? VanKettosOsztalybesorolas { get; set; }
|
|
public bool IsFromSzervezet { get; set; }
|
|
public int? SzervezetId { get; set; }
|
|
public string SzervezetNev { get; set; }
|
|
public string SzervezetAzonosito { get; set; }
|
|
public bool IsAktivTanev { get; set; }
|
|
public int? TanterviJellegSearchId { get; set; }
|
|
public int IntezmenyId { get; set; }
|
|
|
|
/// <summary>
|
|
/// "Közös" paraméterek kifejtése
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
internal List<CommandParameter> ExtractParameters(bool IsFromSzervezet = false)
|
|
{
|
|
var parameters = new List<CommandParameter>();
|
|
if (!IsFromSzervezet)
|
|
{
|
|
parameters.Add(new CommandParameter("pTorolt", Torolt ? "T" : "F"));
|
|
if (NincsNem.HasValue && NincsNem.Value)
|
|
{
|
|
parameters.Add(new CommandParameter("pNeme", NemEnum.NA));
|
|
}
|
|
else if (Neme.HasValue)
|
|
{
|
|
parameters.Add(new CommandParameter("pNeme", Neme));
|
|
}
|
|
if (SNI.HasValue)
|
|
{
|
|
string SNIValue = SNI.Value ? "T" : "F";
|
|
parameters.Add(new CommandParameter("pSNI", SNIValue));
|
|
}
|
|
|
|
if (BTM.HasValue)
|
|
{
|
|
string BTMValue = BTM.Value ? "T" : "F";
|
|
parameters.Add(new CommandParameter("pBTM", BTMValue));
|
|
}
|
|
|
|
if (HatranyosHelyzetId.HasValue)
|
|
{
|
|
parameters.Add(new CommandParameter("pHatranyosHelyzetId", HatranyosHelyzetId.Value));
|
|
}
|
|
|
|
if (OsztalybaSoroltTantervNelkul.HasValue && OsztalybaSoroltTantervNelkul.Value)
|
|
{
|
|
parameters.Add(new CommandParameter("pOsztalybaSoroltTantervNelkul", true));
|
|
}
|
|
|
|
if (Vegzos.HasValue)
|
|
{
|
|
string VegzosValue = Vegzos.Value ? "T" : "F";
|
|
parameters.Add(new CommandParameter("pVegzosEvfolyam", VegzosValue));
|
|
}
|
|
|
|
if (FeladatellatasiHelyId.HasValue)
|
|
{
|
|
parameters.Add(new CommandParameter("pFeladatellatasiHelyId", FeladatellatasiHelyId.Value));
|
|
}
|
|
|
|
if (EvfolyamId.HasValue)
|
|
{
|
|
parameters.Add(new CommandParameter("pEvfolyamTipusaId", EvfolyamId.Value));
|
|
}
|
|
|
|
if (Aktiv)
|
|
{
|
|
parameters.Add(new CommandParameter("pAktiv", true));
|
|
}
|
|
|
|
if (FeladatKategoriaId.IsEntityId())
|
|
{
|
|
parameters.Add(new CommandParameter("pFeladatKategoriaId", FeladatKategoriaId.Value));
|
|
}
|
|
|
|
if (SearchMuveszetiAgId.HasValue)
|
|
{
|
|
parameters.Add(new CommandParameter("pMuveszetiAgId", SearchMuveszetiAgId.Value));
|
|
}
|
|
|
|
if (TanterviJellegSearchId.HasValue)
|
|
{
|
|
parameters.Add(new CommandParameter("pTanterviJellegId", TanterviJellegSearchId.Value));
|
|
}
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(Nev))
|
|
{
|
|
parameters.Add(new CommandParameter("pTanuloNeve", Nev));
|
|
}
|
|
|
|
if (SzuletesiIdoKezdet.HasValue)
|
|
{
|
|
parameters.Add(new CommandParameter("pSzuletesiIdoKezdet", SzuletesiIdoKezdet));
|
|
}
|
|
|
|
if (SzuletesiIdoVeg.HasValue)
|
|
{
|
|
parameters.Add(new CommandParameter("pSzuletesiIdoVeg", SzuletesiIdoVeg));
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(AnyjaNeve))
|
|
{
|
|
parameters.Add(new CommandParameter("pAnyjaNeve", AnyjaNeve));
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(SzuletesiHely))
|
|
{
|
|
parameters.Add(new CommandParameter("pSzuletesiHely", SzuletesiHely));
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(OktatasiAzonosito))
|
|
{
|
|
parameters.Add(new CommandParameter("pOktatasiAzonosito", OktatasiAzonosito));
|
|
}
|
|
|
|
if (OsztalyId.HasValue)
|
|
{
|
|
parameters.Add(new CommandParameter("pOsztalyCsoportId", OsztalyId.Value));
|
|
}
|
|
|
|
return parameters;
|
|
}
|
|
|
|
/// <param name="parameters">Paraméterek listája.</param>
|
|
/// <param name="osztalycsoportAlias">Egy OsztalyCsoport subselect-re használt alias!</param>
|
|
/// <param name="tanuloAlias">T_TANULO_OSSZES -re használt alias, ha van.</param>
|
|
/// <param name="felhasznaloAlias">T_FELHASZNALO_OSSZES -re használt alias, ha van.</param>
|
|
internal StringBuilder ToWhereClause(IList<CommandParameter> parameters, string osztalycsoportAlias, string tanuloAlias = "T_TANULO_OSSZES", string felhasznaloAlias = "T_FELHASZNALO_OSSZES", string tanuloTanugyiadatokAlias = "tta")
|
|
{
|
|
StringBuilder whereClause = new StringBuilder();
|
|
|
|
if (FeladatKategoriaId.IsEntityId())
|
|
{
|
|
parameters.Add(new CommandParameter(nameof(FeladatKategoriaId), FeladatKategoriaId.Value));
|
|
}
|
|
else
|
|
{
|
|
parameters.Add(new CommandParameter(nameof(FeladatKategoriaId), DBNull.Value));
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(Nev))
|
|
{
|
|
whereClause.Append($" AND LOWER({felhasznaloAlias}.C_NYOMTATASINEV) LIKE '%' + @{nameof(Nev)} + '%'");
|
|
parameters.Add(new CommandParameter(nameof(Nev), Nev.ToLowerInvariant()));
|
|
}
|
|
|
|
if (NincsNem.HasValue && NincsNem.Value)
|
|
{
|
|
whereClause.Append($@" AND {felhasznaloAlias}.C_NEME = :pNem");
|
|
parameters.Add(new CommandParameter("pNem", NemEnum.NA));
|
|
}
|
|
else if (Neme.HasValue)
|
|
{
|
|
whereClause.Append($@" AND {felhasznaloAlias}.C_NEME = :pNem");
|
|
parameters.Add(new CommandParameter("pNem", Neme));
|
|
}
|
|
|
|
if (SzuletesiIdoKezdet.HasValue)
|
|
{
|
|
whereClause.Append($@" AND {felhasznaloAlias}.C_SZULETESIDATUM >= :pSzuletesiDatumKezdet");
|
|
parameters.Add(new CommandParameter("pSzuletesiDatumKezdet", SzuletesiIdoKezdet));
|
|
}
|
|
|
|
if (SzuletesiIdoVeg.HasValue)
|
|
{
|
|
whereClause.Append($@" AND {felhasznaloAlias}.C_SZULETESIDATUM <= :pSzuletesiIdoVeg");
|
|
parameters.Add(new CommandParameter("pSzuletesiIdoVeg", SzuletesiIdoVeg));
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(AnyjaNeve))
|
|
{
|
|
whereClause.Append($" AND LOWER({felhasznaloAlias}.C_ANYJANEVE) LIKE '%' + @{nameof(AnyjaNeve)} + '%'");
|
|
parameters.Add(new CommandParameter(nameof(AnyjaNeve), AnyjaNeve.ToLowerInvariant()));
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(SzuletesiHely))
|
|
{
|
|
whereClause.Append($" AND LOWER({felhasznaloAlias}.C_SZULETESIHELY) LIKE '%' + @{nameof(SzuletesiHely)} + '%'");
|
|
parameters.Add(new CommandParameter(nameof(SzuletesiHely), SzuletesiHely.ToLowerInvariant()));
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(OktatasiAzonosito))
|
|
{
|
|
whereClause.Append($" AND LOWER({felhasznaloAlias}.C_OKTATASIAZONOSITO) LIKE '' + @{nameof(OktatasiAzonosito)} + '%'");
|
|
parameters.Add(new CommandParameter(nameof(OktatasiAzonosito), OktatasiAzonosito.ToLowerInvariant()));
|
|
}
|
|
|
|
if (OsztalyId.HasValue)
|
|
{
|
|
whereClause.Append($@" AND {osztalycsoportAlias}.ID = :pOsztalyID");
|
|
parameters.Add(new CommandParameter("pOsztalyID", OsztalyId.Value));
|
|
}
|
|
|
|
if (Vegzos.HasValue)
|
|
{
|
|
whereClause.Append($@" AND {osztalycsoportAlias}.C_VEGZOSEVFOLYAM = :pVegzos");
|
|
string VegzosValue = Vegzos.Value ? "T" : "F";
|
|
parameters.Add(new CommandParameter("pVegzos", VegzosValue));
|
|
}
|
|
|
|
if (SNI.HasValue)
|
|
{
|
|
whereClause.Append($@" AND {tanuloAlias}.C_SAJATOSNEVELESU = :pSNI");
|
|
string SNIValue = SNI.Value ? "T" : "F";
|
|
parameters.Add(new CommandParameter("pSNI", SNIValue));
|
|
}
|
|
|
|
if (BTM.HasValue)
|
|
{
|
|
whereClause.Append($@" AND {tanuloAlias}.C_BTMPROBLEMAS = :pBTM");
|
|
string BTMValue = BTM.Value ? "T" : "F";
|
|
parameters.Add(new CommandParameter("pBTM", BTMValue));
|
|
}
|
|
|
|
if (FeladatellatasiHelyId.HasValue)
|
|
{
|
|
whereClause.Append($@" AND {osztalycsoportAlias}.C_FELADATELLATASIHELYID = :pFelHelyID");
|
|
parameters.Add(new CommandParameter("pFelHelyID", FeladatellatasiHelyId.Value));
|
|
}
|
|
|
|
if (HatranyosHelyzetId.HasValue)
|
|
{
|
|
whereClause.Append($@" AND {tanuloAlias}.C_HATRANYOSHELYZETU = :pHatranyosHelyzetID");
|
|
parameters.Add(new CommandParameter("pHatranyosHelyzetID", HatranyosHelyzetId.Value));
|
|
}
|
|
|
|
if (EvfolyamId.HasValue)
|
|
{
|
|
whereClause.Append($@" AND {osztalycsoportAlias}.C_EVFOLYAMTIPUSA = :pEvfolyamID");
|
|
parameters.Add(new CommandParameter("pEvfolyamID", EvfolyamId.Value));
|
|
}
|
|
|
|
if (OsztalybaSoroltTantervNelkul.HasValue && OsztalybaSoroltTantervNelkul.Value)
|
|
{
|
|
whereClause.Append($@" AND {tanuloAlias}.C_TANTERVID IS NULL AND {osztalycsoportAlias}.ID IS NOT NULL");
|
|
}
|
|
|
|
if (Aktiv)
|
|
{
|
|
whereClause.Append($@" AND {osztalycsoportAlias}.ID IS NOT NULL");
|
|
}
|
|
|
|
if (FeladatKategoriaId.IsEntityId())
|
|
{
|
|
whereClause.Append($" AND {osztalycsoportAlias}.C_FELADATKATEGORIAID = @{nameof(FeladatKategoriaId)}");
|
|
}
|
|
|
|
if (SearchMuveszetiAgId.HasValue)
|
|
{
|
|
whereClause.Append($" AND {osztalycsoportAlias}.C_MUVESZETIAGID = @{nameof(SearchMuveszetiAgId)}");
|
|
parameters.Add(new CommandParameter(nameof(SearchMuveszetiAgId), SearchMuveszetiAgId.Value));
|
|
}
|
|
|
|
if (TanterviJellegSearchId.HasValue)
|
|
{
|
|
whereClause.Append($" AND {tanuloTanugyiadatokAlias}.C_TANTERVIJELLEGID = @{nameof(TanterviJellegSearchId)}");
|
|
parameters.Add(new CommandParameter(nameof(TanterviJellegSearchId), TanterviJellegSearchId.Value));
|
|
}
|
|
|
|
return whereClause;
|
|
}
|
|
}
|
|
}
|