using System; using System.Collections.Generic; using System.Text; using Kreta.Core; using Kreta.DataAccessManual.Util; namespace Kreta.DataAccessManual.ParameterClasses { public class OsztalySearchPco { public DateTime SearchDate { get; set; } public string OsztalyNev { get; set; } public int? EvfolyamId { get; set; } public int? OsztalyfonokId { get; set; } public int? TeremId { get; set; } public int? Vegzos { get; set; } public int? OsztalyfonokHelyettesId { get; set; } public int? KepzesId { get; set; } public int? TantervId { get; set; } public DateTime? NaploMegnyitasDatum { get; set; } public int? FeladatEllatasiHelyId { get; set; } public DateTime? NaploLezarasDatum { get; set; } public bool? UresOsztaly { get; set; } public bool? NincsEvfolyamJellmezo { get; set; } public bool? NincsOsztalyfonok { get; set; } public int? FeladatKategoriaId { get; set; } public int? SearchMuveszetiAgId { get; set; } /// Paraméterek listája. /// T_OSZTALYCSOPORT_OSSZES -re használt alias, ha van. /// T_OSZTALY_OSSZES -re használt alias, ha van. public StringBuilder ToWhereClause(IList parameters, string osztalycsoportAlias = "T_OSZTALYCSOPORT_OSSZES", string osztalyAlias = "T_OSZTALY_OSSZES") { StringBuilder whereClause = new StringBuilder(); if (!string.IsNullOrWhiteSpace(OsztalyNev)) { whereClause.Append($" AND LOWER({osztalycsoportAlias}.C_NEV) LIKE '%' + @{nameof(OsztalyNev)} + '%'"); parameters.Add(new CommandParameter(nameof(OsztalyNev), OsztalyNev.ToLowerInvariant())); } if (EvfolyamId.HasValue) { whereClause.Append($@" AND {osztalycsoportAlias}.C_EVFOLYAMTIPUSA = :pEvfolyamID"); parameters.Add(new CommandParameter("pEvfolyamID", EvfolyamId)); } if (OsztalyfonokId.HasValue) { whereClause.Append($@" AND {osztalyAlias}.C_OSZTALYFONOKID = :pOsztFoID"); parameters.Add(new CommandParameter("pOsztFoID", OsztalyfonokId)); } if (TeremId.HasValue) { whereClause.Append($@" AND {osztalycsoportAlias}.C_TEREMID = :pTeremID"); parameters.Add(new CommandParameter("pTeremID", TeremId)); } if (Vegzos.HasValue) { if (Vegzos == 1) { whereClause.Append($@" AND {osztalycsoportAlias}.C_VEGZOSEVFOLYAM = 'T'"); } else if (Vegzos == 0) { whereClause.Append($@" AND {osztalycsoportAlias}.C_VEGZOSEVFOLYAM = 'F'"); } } if (OsztalyfonokHelyettesId.HasValue) { whereClause.Append($@" AND {osztalyAlias}.C_OFOHELYETTESID = :pOsztFoHelyID"); parameters.Add(new CommandParameter("pOsztFoHelyID", OsztalyfonokHelyettesId)); } if (KepzesId.HasValue) { whereClause.Append($@" AND {osztalycsoportAlias}.C_KEPZESIFORMA = :pKepzesID"); parameters.Add(new CommandParameter("pKepzesID", KepzesId)); } if (TantervId.HasValue) { whereClause.Append($@" AND {osztalyAlias}.C_TANTERVID = :pTantervID"); parameters.Add(new CommandParameter("pTantervID", TantervId)); } if (NaploMegnyitasDatum.HasValue) { whereClause.Append($@" AND {osztalyAlias}.C_OSZTALYNAPLOMEGNYITASA >= :pMegynitDatum"); parameters.Add(new CommandParameter("pMegynitDatum", NaploMegnyitasDatum)); } if (NaploLezarasDatum.HasValue) { whereClause.Append($@" AND {osztalyAlias}.C_OSZTALYNAPLOZARASA <= :pZarasDatum"); parameters.Add(new CommandParameter("pZarasDatum", NaploLezarasDatum)); } if (FeladatEllatasiHelyId.HasValue) { whereClause.Append($@" AND {osztalycsoportAlias}.C_FELADATELLATASIHELYID = :pFeladatEllatasiHelyID"); parameters.Add(new CommandParameter("pFeladatEllatasiHelyID", FeladatEllatasiHelyId)); } if (FeladatKategoriaId.IsEntityId()) { whereClause.Append($@" AND {osztalycsoportAlias}.C_FELADATKATEGORIAID = :pFeladatKategoriaId"); parameters.Add(new CommandParameter("pFeladatKategoriaId", FeladatKategoriaId)); } if (SearchMuveszetiAgId.HasValue) { whereClause.Append($@" AND {osztalycsoportAlias}.C_MUVESZETIAGID = :pMuveszetiAgId"); parameters.Add(new CommandParameter("pMuveszetiAgId", SearchMuveszetiAgId)); } return whereClause; } } }