init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
269
Kreta.BusinessLogic/Helpers/AdminKozpontiOrakHelper.cs
Normal file
269
Kreta.BusinessLogic/Helpers/AdminKozpontiOrakHelper.cs
Normal file
|
@ -0,0 +1,269 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.DataAccess.Interfaces;
|
||||
using Kreta.DataAccessManual;
|
||||
using Kreta.DataAccessManual.Util;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public class AdminKozpontiOrakHelper : LogicBase
|
||||
{
|
||||
public AdminKozpontiOrakHelper(IConnectionType connectionType) : base(connectionType) { }
|
||||
|
||||
public int CsengetesirendId
|
||||
=> Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.CsengetesiRend();
|
||||
return dal.GetAktivCsengetesiRendId(TanevId, IntezmenyId);
|
||||
});
|
||||
|
||||
public OrarendCO GetAdminKozpontiOrak(DateTime start, DateTime end)
|
||||
{
|
||||
OrarendCO orarendCO = new OrarendCO();
|
||||
|
||||
var csengetesirendOrak = GetCsengetesirendOrak();
|
||||
|
||||
var startEndDifference = (end - start).Days;
|
||||
|
||||
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var orarendiOraDal = h.OrarendiOra();
|
||||
var dsOrarend = orarendiOraDal.GetOrarendForKozpontiOrak(IntezmenyId, TanevId, start, end);
|
||||
var tanevrendHelper = new TanevrendHelper(new DalHandlerConnectionType(ConnectionType, h));
|
||||
|
||||
// Tanév rendje:
|
||||
OrarendHelper orarendHelper = new OrarendHelper(new DalHandlerConnectionType(ConnectionType, h));
|
||||
orarendCO.Events.AddRange(orarendHelper.HandleAndAddTanevRendje(h, start, end, new List<OrarendCO.ExtendedEvent>()));
|
||||
|
||||
for (int i = 0; i < startEndDifference; i++)
|
||||
{
|
||||
DateTime currentDate = new DateTime(start.Year, start.Month, start.Day).AddDays(i);
|
||||
if (tanevrendHelper.IsTanitasiNap(currentDate, null))
|
||||
{
|
||||
var events = new List<OrarendCO.ExtendedEvent>(csengetesirendOrak.Count);
|
||||
|
||||
foreach (var csrO in csengetesirendOrak)
|
||||
{
|
||||
List<OrarendCO.ExtendedEvent> csengeteseiRendhezTartozoOrarendiOrak = new List<OrarendCO.ExtendedEvent>();
|
||||
|
||||
foreach (DataRow row in dsOrarend.Tables[0].Rows)
|
||||
{
|
||||
var oraKezdete = Convert.ToDateTime(row["OraKezdete"]);
|
||||
if (Convert.ToDateTime(oraKezdete.ToShortDateString()) == currentDate &&
|
||||
SDAConvert.ToInt32(row["Oraszam"], -1) == csrO.Oraszam)
|
||||
{
|
||||
csengeteseiRendhezTartozoOrarendiOrak.Add(new OrarendCO.ExtendedEvent
|
||||
{
|
||||
KozpontiOraGroupId = SDAConvert.StringToNullableGuid(row["KozpontiOraGroupId"]),
|
||||
KozpontilagToroltOraGroupId = SDAConvert.StringToNullableGuid(row["KozpontilagToroltOraGroupId"]),
|
||||
Torolt = string.Equals(row["TOROLT"], "T")
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
int kozpontiOrakSzama = csengeteseiRendhezTartozoOrarendiOrak.Where(x => x.KozpontiOraGroupId != null && !x.Torolt).GroupBy(x => x.KozpontiOraGroupId).Distinct().Count();
|
||||
int kozpontiOrakOrainakSzama = csengeteseiRendhezTartozoOrarendiOrak.Count(x => x.KozpontiOraGroupId != null && !x.Torolt);
|
||||
int toroltKozpontiOrakSzama = csengeteseiRendhezTartozoOrarendiOrak.Count(x => x.KozpontilagToroltOraGroupId != null);
|
||||
int orarendiOraSzama = csengeteseiRendhezTartozoOrarendiOrak.Count(x => x.KozpontiOraGroupId == null && x.KozpontilagToroltOraGroupId == null && !x.Torolt);
|
||||
|
||||
bool isUresOra = IsUresOra(orarendiOraSzama, kozpontiOrakSzama, kozpontiOrakOrainakSzama, toroltKozpontiOrakSzama);
|
||||
|
||||
EventColorEnum color = orarendiOraSzama > 0 && kozpontiOrakSzama == 0 && kozpontiOrakOrainakSzama == 0 && toroltKozpontiOrakSzama == 0 ? EventColorEnum.Kek :
|
||||
orarendiOraSzama > 0 && kozpontiOrakSzama > 0 ? EventColorEnum.Narancs :
|
||||
toroltKozpontiOrakSzama > 0 && kozpontiOrakSzama == 0 ? EventColorEnum.Piros :
|
||||
orarendiOraSzama == 0 && kozpontiOrakSzama > 0 ? EventColorEnum.Zold : EventColorEnum.Feher;
|
||||
|
||||
var orarendiEvent = new OrarendCO.ExtendedEvent
|
||||
{
|
||||
id = csrO.ID.Value,
|
||||
start = new DateTime(start.Year, start.Month, start.Day, csrO.Kezd.Hour, csrO.Kezd.Minute, 0).AddDays(i),
|
||||
end = new DateTime(start.Year, start.Month, start.Day, csrO.Veg.Hour, csrO.Veg.Minute, 0).AddDays(i),
|
||||
allDay = false,
|
||||
color = color.GetStringValue(),
|
||||
colorEnum = color,
|
||||
oraType = isUresOra ? CalendarOraTypeEnum.UresOra : CalendarOraTypeEnum.OrarendiOra,
|
||||
textColor = isUresOra ? EventColorEnum.Szurke.GetStringValue() : "#000000",
|
||||
borderColor = EventColorEnum.Szurke.GetStringValue(),
|
||||
borderStyle = "dashed",
|
||||
hanyadikora = csrO.Oraszam,
|
||||
text = isUresOra ? csrO.Oraszam.ToString() : string.Empty,
|
||||
title = isUresOra ? string.Empty : GetTextForKozpontiOra(orarendiOraSzama, kozpontiOrakSzama, kozpontiOrakOrainakSzama, toroltKozpontiOrakSzama, csrO.Oraszam),
|
||||
oraszam = $"{csrO.Oraszam}. {CommonResource.Ora.ToLower()}"
|
||||
};
|
||||
|
||||
events.Add(orarendiEvent);
|
||||
}
|
||||
|
||||
orarendCO.Events.AddRange(events);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
return orarendCO;
|
||||
}
|
||||
|
||||
public IList<AdminKozpontiOrakOrarendiOraCo> GetToroltOrarendiOrakVisszaallitashoz(DateTime start, DateTime end, int hanyadikOra, Guid? kozpontilagToroltOraGroupId = null)
|
||||
{
|
||||
OrarendCO orarendCO = new OrarendCO();
|
||||
|
||||
var dsOrarend = Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var orarendiOraDal = h.OrarendiOra();
|
||||
return orarendiOraDal.GetOrarendForKozpontiOrak(IntezmenyId, TanevId, start, end);
|
||||
});
|
||||
|
||||
IList<AdminKozpontiOrakOrarendiOraCo> list = AdminKozpontiOrakOrarendiOraCo.MapGridModelFromOrarendiOraTanitasiOraCoList(dsOrarend.Tables[0])
|
||||
.Where(i => i.OraSorszam == hanyadikOra && i.KozpontilagToroltOraGroupId.HasValue)
|
||||
.ToList();
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public void OrarendiOrakVisszaallitasa(List<int> orarendiOrakIdList)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var orarendiOraDal = h.OrarendiOra();
|
||||
orarendiOraDal.KozpontilagToroltOraVisszaallitasa(orarendiOrakIdList, FelhasznaloId);
|
||||
DataSet orarendiOrak = null;
|
||||
|
||||
foreach (var orarendiOraId in orarendiOrakIdList)
|
||||
{
|
||||
IOrarendiOra orarendiOra = orarendiOraDal.Get(orarendiOraId);
|
||||
|
||||
if (orarendiOrak == null)
|
||||
{
|
||||
orarendiOrak = orarendiOraDal.GetOrarend(IntezmenyId, TanevId,
|
||||
orarendiOra.OraErvenyessegKezdete, orarendiOra.OraErvenyessegVege.Value.AddDays(1),
|
||||
null, null, null, true, OrarendTipusEnum.Minden, null,
|
||||
null, false, null,
|
||||
null, null, null);
|
||||
}
|
||||
|
||||
foreach (DataRow row in orarendiOrak.Tables[0].Rows)
|
||||
{
|
||||
var tantargyId = SDAConvert.ToNullableInt32(row["TantargyId"]);
|
||||
var osztalyCsoportId = SDAConvert.ToNullableInt32(row["OsztCsopId"]);
|
||||
var hetirendId = SDAConvert.ToInt32(row["Hetirend"]);
|
||||
var oraSorszam = SDAConvert.ToNullableInt32(row["OraSzam"]);
|
||||
var tanarId = SDAConvert.ToInt32(row["TanarID"]);
|
||||
var Id = SDAConvert.ToInt32(row["ID"]);
|
||||
|
||||
if (tantargyId.HasValue && tantargyId.Value == orarendiOra.TantargyId &&
|
||||
osztalyCsoportId.HasValue && osztalyCsoportId.Value == orarendiOra.OsztalyCsoportId &&
|
||||
hetirendId == orarendiOra.Hetirend &&
|
||||
tanarId == orarendiOra.TanarId &&
|
||||
oraSorszam == orarendiOra.Oraszam &&
|
||||
Id != orarendiOraId)
|
||||
{
|
||||
orarendiOraDal.Delete(Id);
|
||||
}
|
||||
}
|
||||
|
||||
orarendiOraDal.UpdateOrarend(IntezmenyId, TanevId, orarendiOra.OraErvenyessegKezdete, orarendiOra.OraErvenyessegVege, orarendiOraId, null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public List<string> OrarendiOrakVisszaallitasaValidacio(List<int> orarendiOrakIdList)
|
||||
{
|
||||
var utkozoOrak = new List<string>();
|
||||
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var orarendiOraDal = h.OrarendiOra();
|
||||
DataSet orarendiOrak = null;
|
||||
|
||||
foreach (var orarendiOraId in orarendiOrakIdList)
|
||||
{
|
||||
IOrarendiOra orarendiOra = orarendiOraDal.Get(orarendiOraId);
|
||||
|
||||
if (orarendiOrak == null)
|
||||
{
|
||||
orarendiOrak = orarendiOraDal.GetOrarend(IntezmenyId, TanevId,
|
||||
orarendiOra.OraErvenyessegKezdete, orarendiOra.OraErvenyessegVege.Value.AddDays(1),
|
||||
null, null, null, true, OrarendTipusEnum.Minden, null,
|
||||
null, false, null,
|
||||
null, null, null);
|
||||
}
|
||||
|
||||
foreach (DataRow row in orarendiOrak.Tables[0].Rows)
|
||||
{
|
||||
var tantargyId = SDAConvert.ToNullableInt32(row["TantargyId"]);
|
||||
var osztalyCsoportId = SDAConvert.ToNullableInt32(row["OsztCsopId"]);
|
||||
var hetirendId = SDAConvert.ToInt32(row["Hetirend"]);
|
||||
var oraSorszam = SDAConvert.ToNullableInt32(row["OraSzam"]);
|
||||
var oraErvenyessegKezdete = SDAConvert.ToDateTime(row["ErvenyessegKezdete"]);
|
||||
var oraErvenyessegVege = SDAConvert.ToDateTime(row["ErvenyessegVege"]);
|
||||
var tanarId = SDAConvert.ToInt32(row["TanarID"]);
|
||||
var hetNapjaTipusId = SDAConvert.ToInt32(row["HetNapja"]);
|
||||
|
||||
if (tantargyId.HasValue && tantargyId.Value == orarendiOra.TantargyId &&
|
||||
osztalyCsoportId.HasValue && osztalyCsoportId.Value == orarendiOra.OsztalyCsoportId &&
|
||||
hetirendId == orarendiOra.Hetirend &&
|
||||
tanarId == orarendiOra.TanarId &&
|
||||
oraSorszam == orarendiOra.Oraszam)
|
||||
{
|
||||
utkozoOrak.Add($"{oraErvenyessegKezdete.ToShortDateString()} {oraErvenyessegVege.ToShortDateString()} ({hetNapjaTipusId.GetDisplayName<HetNapjaTipusEnum>(TanevId)} {oraSorszam}. óra)");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return utkozoOrak;
|
||||
}
|
||||
|
||||
private List<CsengetesiRendOraCO> GetCsengetesirendOrak()
|
||||
{
|
||||
var csengetesirendId = CsengetesirendId;
|
||||
|
||||
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.CsengetesiRendOrak();
|
||||
var ds = dal.GetCsengetesirendOrakNaptarhoz(TanevId, csengetesirendId);
|
||||
|
||||
var result = new List<CsengetesiRendOraCO>(ds.Tables[0].Rows.Count);
|
||||
foreach (DataRow dataRow in ds.Tables[0].Rows)
|
||||
{
|
||||
result.Add(new CsengetesiRendOraCO
|
||||
{
|
||||
ID = SDAConvert.ToInt32(dataRow["ID"]),
|
||||
Kezd = SDAConvert.ToDateTime(dataRow["C_KEZDETE"]).Value,
|
||||
Veg = SDAConvert.ToDateTime(dataRow["C_VEGE"]).Value,
|
||||
Oraszam = SDAConvert.ToInt32(dataRow["C_ORASZAM"])
|
||||
});
|
||||
}
|
||||
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
private string GetTextForKozpontiOra(int csengeteseiRendhezTartozoOrarendiOrakSzama, int kozpontiOrakSzama, int kozpontiOrakOrainakSzama, int toroltKozpontiOrakSzama, int oraSzam)
|
||||
{
|
||||
return $@"Központi órák száma: {kozpontiOrakSzama} ({kozpontiOrakOrainakSzama})
|
||||
Órarendi órák száma: {csengeteseiRendhezTartozoOrarendiOrakSzama}
|
||||
Törölt órák száma: {toroltKozpontiOrakSzama}";
|
||||
}
|
||||
|
||||
private bool IsUresOra(int csengeteseiRendhezTartozoOrarendiOrakSzama, int kozpontiOrakSzama, int kozpontiOrakOrainakSzama, int toroltKozpontiOrakSzama)
|
||||
{
|
||||
if (csengeteseiRendhezTartozoOrarendiOrakSzama == 0 && kozpontiOrakSzama == 0 &&
|
||||
kozpontiOrakOrainakSzama == 0 && toroltKozpontiOrakSzama == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue