init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
243
Kreta.BusinessLogic/Helpers/SzervezetHelper.cs
Normal file
243
Kreta.BusinessLogic/Helpers/SzervezetHelper.cs
Normal file
|
@ -0,0 +1,243 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Exceptions;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.DataAccessManual;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public class SzervezetHelper : LogicBase
|
||||
{
|
||||
public SzervezetHelper(IConnectionType connectionType) : base(connectionType) { }
|
||||
|
||||
#region DualisKepzohely Functions
|
||||
|
||||
public DualisKepzohelyCo GetDualisKepzohelyById(int pId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.SzervezetDal();
|
||||
var dualisKepzohely = dal.Get(pId);
|
||||
|
||||
|
||||
var co = new DualisKepzohelyCo
|
||||
{
|
||||
ID = dualisKepzohely.ID,
|
||||
KepzohelyAdoszama = dualisKepzohely.Azonosito,
|
||||
KepzohelyNeve = dualisKepzohely.Nev,
|
||||
KepzohelyCime = dualisKepzohely.Szervezetcim,
|
||||
HelyszinTipusId = dualisKepzohely.DualishelyszintipusId,
|
||||
ParentSzervezetId = dualisKepzohely.ParentSzervezetId,
|
||||
};
|
||||
|
||||
return co;
|
||||
});
|
||||
}
|
||||
|
||||
public int InsertOrUpdateDualisKepzohely(DualisKepzohelyCo co)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.SzervezetDal();
|
||||
var entity = DualisKepzohelyCo.CoToSzervezetEntity(dal.Get(co.ID), co);
|
||||
|
||||
entity.TanevId = TanevId;
|
||||
if (co.ID.IsEntityId())
|
||||
{
|
||||
dal.Update(entity);
|
||||
UpdateAlszervezetAdoszam(entity.ID, co.KepzohelyAdoszama);
|
||||
}
|
||||
else
|
||||
{
|
||||
dal.Insert(entity);
|
||||
}
|
||||
|
||||
return entity.ID;
|
||||
});
|
||||
}
|
||||
|
||||
public void DeleteDualisKepzohely(int id)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.SzervezetDal();
|
||||
var entity = dal.Get(id);
|
||||
|
||||
var nemToroltTanulok = entity.TanuloTanugyiAdatok.Where(x => x.Torolt == false).ToList();
|
||||
var nemToroltCsoportok = entity.Csoport.Where(x => x.Torolt == false).ToList();
|
||||
var nemToroltMunkaugyiAdatok = entity.MunkaugyiAdatok.Where(x => x.Torolt == false).ToList();
|
||||
var nemToroltTerem = entity.Terem.Where(x => x.Torolt == false).ToList();
|
||||
var nemToroltTantargy = entity.Tantargy.Where(x => x.Torolt == false).ToList();
|
||||
var errorMsg = new List<string>();
|
||||
|
||||
if (nemToroltTanulok.Any()) { errorMsg.Add($"{nemToroltTanulok.Count} db tanulóval"); }
|
||||
|
||||
if (nemToroltCsoportok.Any()) { errorMsg.Add($"{nemToroltCsoportok.Count} db csoporttal"); }
|
||||
|
||||
if (nemToroltMunkaugyiAdatok.Any()) { errorMsg.Add($"{nemToroltMunkaugyiAdatok.Count} db oktatóval"); }
|
||||
|
||||
if (nemToroltTerem.Any()) { errorMsg.Add($"{nemToroltTerem.Count} db helyszinnel"); }
|
||||
|
||||
if (nemToroltTantargy.Any()) { errorMsg.Add($"{nemToroltTantargy.Count} db tantárggyal"); }
|
||||
|
||||
if (errorMsg.Count > 0)
|
||||
{
|
||||
throw new CannotBeDeletedException(string.Format(DualisResource.ATorolniKivantDKRendelkezikXDarabKapcsolatokkalBiztosFolytatja, entity.Nev, string.Join(", ", errorMsg)));
|
||||
}
|
||||
|
||||
dal.Delete(entity);
|
||||
});
|
||||
}
|
||||
|
||||
public List<DualisKepzohelyCo> GetDualisKepzohelyekListajaCoList(DualisKepzohelySearchCo searchCo, int adatokHalmaza, int? felhasznaloSzervezetId)
|
||||
{
|
||||
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dataSet = GetDualisKepzohelyek(searchCo, adatokHalmaza);
|
||||
|
||||
var szervezetIds = !felhasznaloSzervezetId.IsEntityId() ? new List<int>() : h.SzervezetDal().GetLathatoSzervezetek(IntezmenyId, TanevId, felhasznaloSzervezetId, (int)SzervezetAdatokHalmazaEnum.SzervezetEsAlSzervezetek);
|
||||
var intezmenyiAdminIds = felhasznaloSzervezetId.IsEntityId() ? new List<int>() : h.Felhasznalo().GetAllIntezmenyiAdmin(TanevId);
|
||||
return dataSet.Tables[0].AsEnumerable().Select(dataRow =>
|
||||
{
|
||||
var szervezetId = dataRow.Field<int?>("SzervezetId");
|
||||
var isSzerkesztheto = (felhasznaloSzervezetId.IsEntityId() && szervezetId.IsEntityId() && szervezetIds.Contains(szervezetId.Value)) ||
|
||||
(!felhasznaloSzervezetId.IsEntityId() && intezmenyiAdminIds.Contains(FelhasznaloId) && intezmenyiAdminIds.Contains(dataRow.Field<int?>("RogzitoId") ?? FelhasznaloId));
|
||||
|
||||
return new DualisKepzohelyCo(dataRow, isSzerkesztheto);
|
||||
}).ToList();
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private DataSet GetDualisKepzohelyek(DualisKepzohelySearchCo searchCo, int adatokHalmaza)
|
||||
{
|
||||
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
h.SzervezetDal(GridParameters).GetSzervezetAdatok(searchCo.ConvertToPCO(), IntezmenyId, TanevId, adatokHalmaza));
|
||||
return result;
|
||||
}
|
||||
|
||||
public DataSet GetDualisKepzohelyCsoportjai(int szervezetId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.SzervezetDal(GridParameters);
|
||||
return dal.GetSzervezetCsoportjai(TanevId, szervezetId);
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet GetDualisKepzohelyHelyszinjei(int szervezetId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.SzervezetDal(GridParameters);
|
||||
return dal.GetSzervezetHelyszinei(TanevId, szervezetId);
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet GetDualisKepzohelyOktatoi(int szervezetId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.SzervezetDal(GridParameters);
|
||||
return dal.GetSzervezetOktatoi(TanevId, szervezetId);
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet GetDualisKepzohelyTanuloi(int szervezetId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.SzervezetDal(GridParameters);
|
||||
return dal.GetSzervezetTanuloi(TanevId, szervezetId);
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet GetDualisKepzohelyTantargyai(int szervezetId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.SzervezetDal(GridParameters);
|
||||
return dal.GetSzervezetTantargyai(TanevId, szervezetId);
|
||||
});
|
||||
}
|
||||
|
||||
public List<DualisEntityCo> GetEntitySzervezetList(int entityId, string entityName)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.SzervezetDal();
|
||||
var dataSet = dal.GetEntitySzervezetList(entityId, entityName);
|
||||
var result = new List<DualisEntityCo>();
|
||||
result.AddRange(dataSet.Tables[0].AsEnumerable().Select(x => new DualisEntityCo(x)));
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Common Functions
|
||||
|
||||
/// <summary>
|
||||
/// Visszaadjuk a látható szervezet id-k listáját.
|
||||
/// </summary>
|
||||
/// <param name="szervezetId">A szervezetId alapján adjuk vissza a látható szervezet id-k listáját.</param>
|
||||
/// <param name="szervezetAdatokHalmaza">A szervezetAdatokHalmaza dönti el, hogy milyen szervezeti szinten adjuk vissza a szervezet id-k listáját.</param>
|
||||
/// <param name="isDefaultValueNull">A isDefaultValueNull határozza meg, hogyha a szervezetId értéke null, akkor a visszatérési érték null legyen vagy amit a GetLathatoSzervezetek függvény visszaad.</param>
|
||||
public List<int> GetLathatoSzervezetIdList(
|
||||
int? szervezetId,
|
||||
SzervezetAdatokHalmazaEnum szervezetAdatokHalmaza,
|
||||
bool isDefaultValueNull = false)
|
||||
{
|
||||
if (!szervezetId.IsEntityId() && isDefaultValueNull)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
h.SzervezetDal(GridParameters).GetLathatoSzervezetek(IntezmenyId, TanevId, szervezetId, (int)szervezetAdatokHalmaza));
|
||||
return result;
|
||||
}
|
||||
|
||||
public bool IsAlkalmazottSzervezeti(int felhasznaloId)
|
||||
{
|
||||
var szervezetId = GetAlkalmazottSzervezetId(felhasznaloId);
|
||||
var result = szervezetId.IsEntityId();
|
||||
return result;
|
||||
}
|
||||
|
||||
public int? GetAlkalmazottSzervezetId(int felhasznaloId)
|
||||
{
|
||||
var result = Dal.CustomConnection.Run(ConnectionType, h => h.Alkalmazott(GridParameters).GetSzervezetId(TanevId, felhasznaloId));
|
||||
return result;
|
||||
}
|
||||
|
||||
public void UpdateAlszervezetAdoszam(int szervezetId, string adoszam)
|
||||
{
|
||||
var alszervezetek = GetDualisKepzohelyekListajaCoList(new DualisKepzohelySearchCo() { SzervezetId = szervezetId }, (int)SzervezetAdatokHalmazaEnum.Alszervezetek, null);
|
||||
if (alszervezetek.Any(x => x.KepzohelyAdoszama != adoszam))
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.SzervezetDal();
|
||||
foreach (var alszervezet in alszervezetek)
|
||||
{
|
||||
alszervezet.KepzohelyAdoszama = adoszam;
|
||||
var entity = DualisKepzohelyCo.CoToSzervezetEntity(dal.Get(alszervezet.ID), alszervezet);
|
||||
if (alszervezet.ID.IsEntityId())
|
||||
{
|
||||
dal.Update(entity);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Common Functions
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue