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

219 lines
7.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Utils;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual;
using Kreta.Enums;
using Kreta.KretaServer.Exceptions;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Helpers
{
public class MukodesiHelyHelper : LogicBase
{
public MukodesiHelyHelper(IConnectionType connectionType) : base(connectionType) { }
public IDictionary<string, string> GetMukodesiHelyekDDL(string baseText)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
return LogicUtil.CreateDropdownContent(h.MukodesiHelyDAL(GridParameters).GetMukodesiHelyekForDropDown(TanevId), "ID", "C_NEV", baseText);
});
}
public List<FelHelyValasztoItemCo> GetMukodesiHelyekForFelhelyValaszto()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.MukodesiHelyDAL(GridParameters);
var ds = dal.GetMukodesiHelyekForFelhelyValaszto(TanevId, (int)OktatasiNevelesiFeladatEnum.PedagogiaiSzakszolgaltatas);
var result = new List<FelHelyValasztoItemCo>() {
new FelHelyValasztoItemCo {
MukodesiHelyID = 0,
FelhelyId = 0,
MukodesiHelyNev = CommonResource.Minden
}
};
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dataRow in ds.Tables[0].Rows)
{
var item = new FelHelyValasztoItemCo(dataRow);
result.Add(item);
}
}
return result;
});
}
public DataSet GetMukodesiHelyek()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.MukodesiHelyDAL(GridParameters);
var ds = dal.GetMukodesiHelyek(TanevId);
return ds;
});
}
public MukodesiHelyCO GetMukodesiHelyAdatok(int ID)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.MukodesiHelyDAL();
var mukodesiHely = dal.Get(ID);
return new MukodesiHelyCO(mukodesiHely);
});
}
public void SaveMukodesiHely(MukodesiHelyCO model)
{
if (string.IsNullOrWhiteSpace(model.Nev))
{
throw new ArgumentNullException("Nev");
}
if (model.Telefonszam != null && model.Telefonszam.Length > 50)
{
throw new FormatException("Telefonszam");
}
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.MukodesiHelyDAL();
bool isModification = model.ID.HasValue;
var mukodesiHely = dal.Get();
if (isModification)
{
mukodesiHely = dal.Get(model.ID.Value);
}
else // Új felvétele (lehet hogy már volt ilyen nevű, ami ki lett törölve és ez esetben Update-eljük azt és legyen újra TOROLT = 'F')
{
var entity = dal.GetMukodesiHelyByNev(model.Nev, TanevId);
if (entity != null)
{
mukodesiHely = entity;
mukodesiHely.Torolt = false;
isModification = true;
}
}
var intezmeny = h.IntezmenyDal().Get(model.IntezmenyID);
var intAdatokId = intezmeny.IntezmenyAdatok.Where(x => x.Torolt == false && x.TanevId == TanevId).Select(y => y.ID).FirstOrDefault();
mukodesiHely.IntezmenyAdatokId = intAdatokId;
mukodesiHely.Nev = model.Nev;
mukodesiHely.MukodesiHelyAzonosito = model.MukodesiHelyAzonosito;
mukodesiHely.MukodesiHelyTipusa = model.MukodesiHelyTipusa;
mukodesiHely.Telefonszam = model.Telefonszam;
mukodesiHely.Varos = model.Varos;
mukodesiHely.VezetoNeve = model.VezetoNeve;
mukodesiHely.IntezmenyId = model.IntezmenyID;
mukodesiHely.IranyitoSzam = model.Iranyitoszam;
mukodesiHely.EmailCim = model.Email;
mukodesiHely.Fax = model.Fax;
mukodesiHely.Szekhely = model.MukodesiHelyTipusa == (int)MukodesiHelyTipusEnum.Szekhely;
mukodesiHely.Ajto = model.Ajto;
mukodesiHely.Emelet = model.Emelet;
mukodesiHely.KozteruletNev = model.Kozterulet;
mukodesiHely.KozteruletJellegeNev = model.KozteruletJellegeNev;
mukodesiHely.Hazszam = model.Szam;
mukodesiHely.TanevId = model.TanevId.Value;
if (model.TelephelyAnyaintezmeny.HasValue && model.MukodesiHelyTipusa == (int)MukodesiHelyTipusEnum.Telephely)
{
mukodesiHely.TelephelyAnyaintezmenyId = model.TelephelyAnyaintezmeny.Value;
}
else if (isModification)
{
mukodesiHely.TelephelyAnyaintezmeny = null;
}
if (dal.MukodesiHelyAzonositoExists(mukodesiHely))
{
throw new KretaException(ErrorResource.AMegadottMukodesiHelyAzonositoMarLetezik);
}
if (!isModification)
{
dal.Insert(mukodesiHely);
}
else
{
dal.FullUpdate(mukodesiHely);
}
});
}
public bool MukodesiHelyAzonositoExists(MukodesiHelyCO model)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.MukodesiHelyDAL();
bool isModification = model.ID.HasValue;
var mukodesiHely = dal.Get();
if (isModification)
{
mukodesiHely = dal.Get(model.ID.Value);
}
else // Új felvétele (lehet hogy már volt ilyen nevű, ami ki lett törölve és ez esetben Update-eljük azt és legyen újra TOROLT = 'F')
{
var entity = dal.GetMukodesiHelyByNev(model.Nev, TanevId);
if (entity != null)
{
mukodesiHely = entity;
mukodesiHely.Torolt = false;
isModification = true;
}
}
mukodesiHely.MukodesiHelyAzonosito = model.MukodesiHelyAzonosito;
mukodesiHely.TanevId = model.TanevId.Value;
return dal.MukodesiHelyAzonositoExists(mukodesiHely);
});
}
public void DeleteMukodesiHely(int ID)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.MukodesiHelyDAL();
var mukodesihely = dal.Get(ID);
if (mukodesihely.FeladatEllatasiHely.Count > 0 && mukodesihely.FeladatEllatasiHely.Any(x => x.Torolt == false))
{
throw new CannotBeDeletedException(message: IntezmenyResource.MukodesihelyNemTorolheto);
}
dal.Delete(mukodesihely);
});
}
public void SetSzekhely(int mukodesiHelyID)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.MukodesiHelyDAL();
dal.SetSzekhely(mukodesiHelyID);
});
}
}
}