init
This commit is contained in:
@@ -0,0 +1,429 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Resources;
|
||||
using Kreta.Core;
|
||||
using Kreta.DataAccess.Interfaces;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using SDA.DataProvider;
|
||||
|
||||
namespace Kreta.DataAccessManual.Util
|
||||
{
|
||||
public abstract class DataAccessBase
|
||||
{
|
||||
protected GridParameters GridParameters;
|
||||
|
||||
protected DalHandler DalHelper { get; private set; }
|
||||
|
||||
protected DataAccessBase(DalHandler handler) : this(handler, null)
|
||||
{
|
||||
}
|
||||
|
||||
protected DataAccessBase(DalHandler handler, GridParameters gridParameters)
|
||||
{
|
||||
DalHelper = handler;
|
||||
GridParameters = gridParameters;
|
||||
}
|
||||
|
||||
protected DataSet GetData(string commandText, List<CommandParameter> parameters = null, string dictionaryItemColumns = null, string booleanColumns = null)
|
||||
{
|
||||
DataTable table;
|
||||
|
||||
using (SDACommand command = UserContext.Instance.SDAConnection.CreateCommand())
|
||||
{
|
||||
command.Transaction = UserContext.Instance.SDATransaction;
|
||||
command.CommandType = CommandType.Text;
|
||||
command.CommandText = commandText;
|
||||
|
||||
if (parameters != null)
|
||||
{
|
||||
foreach (var param in parameters)
|
||||
{
|
||||
if (param.Type != SDADBType.Binary)
|
||||
{
|
||||
command.Parameters.Add(param.Name, param.Type);
|
||||
command.Parameters[param.Name].Value = param.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
command.Parameters.Add(param.Name, param.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (GridParameters == null)
|
||||
{
|
||||
GridParameters = new GridParameters();
|
||||
}
|
||||
|
||||
table = DataUtil.GetData(command, GridParameters);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(dictionaryItemColumns))
|
||||
{
|
||||
SetDNAME(table, dictionaryItemColumns);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(booleanColumns))
|
||||
{
|
||||
SetBoolFields(table, booleanColumns);
|
||||
}
|
||||
|
||||
return table.AsDataSet();
|
||||
}
|
||||
|
||||
protected DataSet GetReadOnlyData(string commandText, List<CommandParameter> parameters = null, string dictionaryItemColumns = null, string booleanColumns = null)
|
||||
{
|
||||
DataTable table;
|
||||
|
||||
using (SDAConnection connection = DataUtil.GetReadOnlyConnection(UserContext.Instance.IntezmenyAzonosito))
|
||||
{
|
||||
connection.Open();
|
||||
|
||||
using (SDACommand command = connection.CreateCommand())
|
||||
{
|
||||
command.CommandType = CommandType.Text;
|
||||
command.CommandText = commandText;
|
||||
|
||||
if (parameters != null)
|
||||
{
|
||||
foreach (var param in parameters)
|
||||
{
|
||||
if (param.Type != SDADBType.Binary)
|
||||
{
|
||||
command.Parameters.Add(param.Name, param.Type);
|
||||
command.Parameters[param.Name].Value = param.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
command.Parameters.Add(param.Name, param.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (GridParameters == null)
|
||||
{
|
||||
GridParameters = new GridParameters();
|
||||
}
|
||||
|
||||
table = DataUtil.GetData(command, GridParameters);
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(dictionaryItemColumns))
|
||||
{
|
||||
SetDNAME(table, dictionaryItemColumns);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(booleanColumns))
|
||||
{
|
||||
SetBoolFields(table, booleanColumns);
|
||||
}
|
||||
|
||||
return table.AsDataSet();
|
||||
}
|
||||
|
||||
protected int CheckRowCount(string commandText, List<CommandParameter> parameters = null)
|
||||
{
|
||||
using (SDACommand command = UserContext.Instance.SDAConnection.CreateCommand())
|
||||
{
|
||||
command.CommandType = CommandType.Text;
|
||||
command.CommandText = commandText;
|
||||
|
||||
if (parameters != null)
|
||||
{
|
||||
foreach (var param in parameters)
|
||||
{
|
||||
if (param.Type != SDADBType.Binary)
|
||||
{
|
||||
command.Parameters.Add(param.Name, param.Type);
|
||||
command.Parameters[param.Name].Value = param.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
command.Parameters.Add(param.Name, param.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return DataUtil.CheckRowCount(command);
|
||||
}
|
||||
}
|
||||
|
||||
[Obsolete(@"A Kreta.Core.Extensions.SortingAndPaging<T>-t kell használni model listákkal, mivel ezeket mostmár tudjuk sorbarendezni a GridParameters-el,
|
||||
így nincs szükség rá, hogy elmenjen a DataSet a Web-re ezért nincs is szükség itt sorrenezni őket!")]
|
||||
protected DataTable SortingAndPaging(DataTable dataTable, GridParameters gridParameteres)
|
||||
{
|
||||
return DataUtil.SortingAndPaging(dataTable, gridParameteres);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A vesszővel átadott oszlopokból csinál egy egy új oszlopot oszlopnév+'_DNAME' névvel amelybe betölti a kódtétel nevét
|
||||
/// </summary>
|
||||
/// <param name="table">Adatforrás amibe bele kell rakni a kódtételeket</param>
|
||||
/// <param name="columns">Oszlopok amelyeknél az ID helyett kódtétel neveket kell nyelvhelyesen betenni</param>
|
||||
public static void SetDNAME(DataTable table, string columns)
|
||||
{
|
||||
DictionaryItemCacheUtil.TableColumnFromDictionaryCache(table, columns);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Az átadott adatforráson a _DNAME-hez hasonlóan egy _BOOL mezőt hoz létre és az átadott oszlopok
|
||||
/// T vagy F értékei alapján beállítja a true-t vagy false-ot
|
||||
/// </summary>
|
||||
/// <param name="srcTable"></param>
|
||||
/// <param name="fields">Oszlopnevek vesszővel elválasztva "mezo1,mezo2,mezo3..."</param>
|
||||
public static void SetBoolFields(DataTable srcTable, string fields)
|
||||
{
|
||||
var list = new ArrayList(fields.Split(','));
|
||||
foreach (string column in list)
|
||||
{
|
||||
string boolColumnName = column + "_BOOL";
|
||||
srcTable.Columns.Add(boolColumnName, typeof(bool));
|
||||
|
||||
string boolTextColumnName = column + "_BNAME";
|
||||
srcTable.Columns.Add(boolTextColumnName, typeof(string));
|
||||
foreach (DataRow myRow in srcTable.Rows)
|
||||
{
|
||||
//ha dbnull akkor nem allitunk be semmit, hagyjuk dbnull-on
|
||||
if (myRow[column] != DBNull.Value)
|
||||
{
|
||||
bool value = Convert.ToBoolean(myRow[column].ToString() == "T");
|
||||
myRow[boolColumnName] = value;
|
||||
myRow[boolTextColumnName] = value ? CommonResource.Igen : CommonResource.Nem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Oszlopnevek lecserélése 'map' alapján a paraméterben kapott 'dataTable'-ben.
|
||||
/// </summary>
|
||||
/// <param name="dataTable">Az átnevezendő oszlopokat tartalmazó DataTable.</param>
|
||||
/// <param name="map">Az átnevezendő oszlopnév párok.</param>
|
||||
public static void RenameDataTableColumns(DataTable dataTable, (string fromColumn, string toColumn)[] map)
|
||||
{
|
||||
foreach (var (fromColumn, toColumn) in map)
|
||||
{
|
||||
dataTable.Columns[fromColumn].ColumnName = toColumn;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetTableRowsFromResourceFile(Type resourceFileType, DataTable processedTable, string columnNames)
|
||||
{
|
||||
var resourceManager = new ResourceManager(resourceFileType);
|
||||
var newColumnNamesList = new List<string>();
|
||||
var oldColumnNamesList = new List<string>();
|
||||
|
||||
oldColumnNamesList.AddRange(columnNames.Split(",;".ToCharArray()));
|
||||
|
||||
oldColumnNamesList.ForEach(name =>
|
||||
{
|
||||
if (!processedTable.Columns.Contains(name))
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(name, ErrorResource.ColumnNamesParameterContainsColumnnameThatNotExistsInTheSpecifiedTable);
|
||||
}
|
||||
|
||||
string newColumnName = name + "Value";
|
||||
|
||||
if (processedTable.Columns[newColumnName] == null)
|
||||
{
|
||||
newColumnNamesList.Add(newColumnName);
|
||||
processedTable.Columns.Add(newColumnName);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception(ErrorResource.TheNewColumnNameExistsInDatatable);
|
||||
}
|
||||
});
|
||||
|
||||
foreach (DataRow dataRow in processedTable.Rows)
|
||||
{
|
||||
newColumnNamesList.ForEach(newColumnName =>
|
||||
oldColumnNamesList.ForEach(oldColumnName =>
|
||||
dataRow[newColumnName] = resourceManager.GetString(dataRow[oldColumnName].ToString())));
|
||||
}
|
||||
|
||||
oldColumnNamesList.ForEach(oldColumnName => processedTable.Columns.Remove(oldColumnName));
|
||||
}
|
||||
|
||||
public void FollowUp<T>(T entity) where T : IEntity
|
||||
{
|
||||
var kovTanevId = GetKovetkezoTanevId();
|
||||
var aktualisTanevId = GetAktivTanevId();
|
||||
|
||||
if (kovTanevId.IsEntityId())
|
||||
{
|
||||
switch (entity)
|
||||
{
|
||||
case IDictionaryItemBase dictionaryItemBaseEntity:
|
||||
if (aktualisTanevId == dictionaryItemBaseEntity.TanevId)
|
||||
{
|
||||
DalHelper.AdatszotarDAL().FollowUpDictionaryItemBase(dictionaryItemBaseEntity.IntezmenyId, dictionaryItemBaseEntity.TanevId, kovTanevId.Value, dictionaryItemBaseEntity.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case IDictionaryItemBaseNyelv dictionaryItemBaseNyelv:
|
||||
if (aktualisTanevId == dictionaryItemBaseNyelv.TanevId)
|
||||
{
|
||||
DalHelper.DictionaryItemBaseNyelvDal().FollowUpDictionaryItemBaseNyelv(dictionaryItemBaseNyelv.IntezmenyId, dictionaryItemBaseNyelv.TanevId, kovTanevId.Value, dictionaryItemBaseNyelv.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case IOraTerv oraTervEntity:
|
||||
if (aktualisTanevId == oraTervEntity.TanevId)
|
||||
{
|
||||
DalHelper.OratervDal().FollowUpOraterv(oraTervEntity.IntezmenyId, oraTervEntity.TanevId, kovTanevId.Value, entity.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case ITerem teremEntity:
|
||||
if (aktualisTanevId == teremEntity.TanevId)
|
||||
{
|
||||
DalHelper.Terem().FollowUpTerem(teremEntity.IntezmenyId, teremEntity.TanevId, kovTanevId.Value, entity.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case IFeladatEllatasiHely feladatEllatasiHelyEntity:
|
||||
if (aktualisTanevId == feladatEllatasiHelyEntity.TanevId)
|
||||
{
|
||||
DalHelper.FeladatEllatasiHelyDal().FollowUpFeladatellatasiHely(feladatEllatasiHelyEntity.IntezmenyId, feladatEllatasiHelyEntity.TanevId, kovTanevId.Value, entity.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case IIntezmenyAdatok intezmenyAdatokEntity:
|
||||
if (aktualisTanevId == intezmenyAdatokEntity.TanevId)
|
||||
{
|
||||
DalHelper.IntezmenyDal().FollowUpIntezmenyAdatok(intezmenyAdatokEntity.IntezmenyId, intezmenyAdatokEntity.TanevId, kovTanevId.Value);
|
||||
}
|
||||
|
||||
break;
|
||||
case ITanterv tantervEntity:
|
||||
if (aktualisTanevId == tantervEntity.TanevId)
|
||||
{
|
||||
DalHelper.TantervDAL().FollowUpTanterv(tantervEntity.IntezmenyId, tantervEntity.TanevId, kovTanevId.Value, entity.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case IMukodesiHely mukodesiHelyEntity:
|
||||
if (aktualisTanevId == mukodesiHelyEntity.TanevId)
|
||||
{
|
||||
DalHelper.MukodesiHelyDAL().FollowUpMukodesiHely(mukodesiHelyEntity.IntezmenyId, mukodesiHelyEntity.TanevId, kovTanevId.Value, entity.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case IEszkoz eszkozEntity:
|
||||
if (aktualisTanevId == eszkozEntity.TanevId)
|
||||
{
|
||||
DalHelper.EszkozDal().FollowUpEszkoz(eszkozEntity.IntezmenyId, eszkozEntity.TanevId, kovTanevId.Value, eszkozEntity.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case IOraTervTargy oraTervTargy:
|
||||
if (aktualisTanevId == oraTervTargy.TanevId)
|
||||
{
|
||||
DalHelper.OratervDal().FollowUpOratervTargy(oraTervTargy.IntezmenyId, oraTervTargy.TanevId, kovTanevId.Value, oraTervTargy.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case IAlkalmazott alkalmazott:
|
||||
if (aktualisTanevId == alkalmazott.TanevId)
|
||||
{
|
||||
DalHelper.Alkalmazott().FollowUpAlkalmazott(alkalmazott.IntezmenyId, alkalmazott.TanevId, kovTanevId.Value, alkalmazott.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case ITantargy tantargy:
|
||||
if (aktualisTanevId == tantargy.TanevId)
|
||||
{
|
||||
DalHelper.Tantargy().FollowUpTantargy(tantargy.IntezmenyId, tantargy.TanevId, kovTanevId.Value, tantargy.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case IKKAMIVegzettseg kkAmiVegzettseg:
|
||||
if (aktualisTanevId == kkAmiVegzettseg.TanevId)
|
||||
{
|
||||
DalHelper.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(kkAmiVegzettseg.IntezmenyId, kkAmiVegzettseg.TanevId, kovTanevId.Value, kkAmiVegzettseg.AlkalmazottId);
|
||||
}
|
||||
|
||||
break;
|
||||
case IKKTanitoVezgettseg kkTanitoVezgettseg:
|
||||
if (aktualisTanevId == kkTanitoVezgettseg.TanevId)
|
||||
{
|
||||
DalHelper.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(kkTanitoVezgettseg.IntezmenyId, kkTanitoVezgettseg.TanevId, kovTanevId.Value, kkTanitoVezgettseg.AlkalmazottId);
|
||||
}
|
||||
|
||||
break;
|
||||
case ICsengetesiRend csengetesiRend:
|
||||
if (aktualisTanevId == csengetesiRend.TanevId)
|
||||
{
|
||||
DalHelper.CsengetesiRend().FollowUpCsengetesiRend(csengetesiRend.IntezmenyId, csengetesiRend.TanevId, kovTanevId.Value, csengetesiRend.ID);
|
||||
}
|
||||
break;
|
||||
case IVegzettseg vegzettseg:
|
||||
if (aktualisTanevId == vegzettseg.TanevId)
|
||||
{
|
||||
DalHelper.Alkalmazott().FollowUpAlkalmazottVegzettseg(vegzettseg.IntezmenyId, vegzettseg.TanevId, kovTanevId.Value, vegzettseg.ID);
|
||||
}
|
||||
break;
|
||||
case IKKGyogypedVegzettseg kkGyogypedVegzettseg:
|
||||
if (aktualisTanevId == kkGyogypedVegzettseg.TanevId)
|
||||
{
|
||||
DalHelper.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(kkGyogypedVegzettseg.IntezmenyId, kkGyogypedVegzettseg.TanevId, kovTanevId.Value, kkGyogypedVegzettseg.AlkalmazottId);
|
||||
}
|
||||
|
||||
break;
|
||||
case IKKTanarVegzettseg kkTanarVegzettseg:
|
||||
if (aktualisTanevId == kkTanarVegzettseg.TanevId)
|
||||
{
|
||||
DalHelper.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(kkTanarVegzettseg.IntezmenyId, kkTanarVegzettseg.TanevId, kovTanevId.Value, kkTanarVegzettseg.AlkalmazottId);
|
||||
}
|
||||
|
||||
break;
|
||||
case IPedagogusEletpalyamodell pedagogusEletpalyamodell:
|
||||
if (aktualisTanevId == pedagogusEletpalyamodell.TanevId)
|
||||
{
|
||||
DalHelper.Alkalmazott().FollowUpAlkalmazottPEP(pedagogusEletpalyamodell.IntezmenyId, pedagogusEletpalyamodell.TanevId, kovTanevId.Value, pedagogusEletpalyamodell.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case ITovabbiMunkaugyiAdatok tovabbiMunkaugyiAdatok:
|
||||
if (aktualisTanevId == tovabbiMunkaugyiAdatok.TanevId)
|
||||
{
|
||||
DalHelper.Alkalmazott().FollowUpAlkalmazottTovabbiMunkaugyiAdatok(tovabbiMunkaugyiAdatok.IntezmenyId, tovabbiMunkaugyiAdatok.TanevId, kovTanevId.Value, tovabbiMunkaugyiAdatok.ID);
|
||||
}
|
||||
|
||||
break;
|
||||
case IRendszerBeallitas rendszerBeallitas:
|
||||
if (aktualisTanevId == rendszerBeallitas.TanevId)
|
||||
{
|
||||
DalHelper.RendszerBeallitas().FollowupRendszerBeallitas(rendszerBeallitas.IntezmenyId, rendszerBeallitas.TanevId, kovTanevId.Value, rendszerBeallitas.ID);
|
||||
}
|
||||
break;
|
||||
|
||||
case ITantargyNyelv tantargyNyelv:
|
||||
if (aktualisTanevId == tantargyNyelv.TanevId)
|
||||
{
|
||||
DalHelper.Tantargy().FollowUpTantargyNyelv(tantargyNyelv.IntezmenyId, tantargyNyelv.TanevId, kovTanevId.Value, tantargyNyelv.ID);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("Ismeretlen típus!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int? GetKovetkezoTanevId()
|
||||
{
|
||||
var dal = DalHelper.TanevDal(GridParameters);
|
||||
var ds = dal.GetKovetkezoTanev();
|
||||
|
||||
return ds != null && ds.Tables[0].Rows.Count > 0 ? Convert.ToInt32(ds.Tables[0].Rows[0]["ID"]) : default;
|
||||
}
|
||||
|
||||
private int GetAktivTanevId() => DalHelper.TanevDal().GetAktivTanevId();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user