65 lines
3.3 KiB
C#
65 lines
3.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Web.Areas.Intezmeny.Logic;
|
|
using Kreta.Web.Areas.Orarend.Models;
|
|
using Kreta.Web.Helpers;
|
|
|
|
namespace Kreta.Web.Areas.Orarend.Logic
|
|
{
|
|
public class AdminKozpontiOraLogic
|
|
{
|
|
public KozpontiOraValidationCo CreateOraValidationCoListForKozpontiOrak(DateTime start, DateTime end, int hanyadikOra, List<AdminKozpontiOrakRogzitesGridModel> kozpontiOrakList, bool isTeremutkozesFigyelese, out List<OraValidationCo> validatedKozpontiOraToBeSaved)
|
|
{
|
|
validatedKozpontiOraToBeSaved = new List<OraValidationCo>();
|
|
var validationCo = new KozpontiOraValidationCo();
|
|
validationCo.IsValid = true;
|
|
validationCo.ErrorMessage = string.Empty;
|
|
|
|
if (kozpontiOrakList == null || !kozpontiOrakList.Any())
|
|
{
|
|
return validationCo;
|
|
}
|
|
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var csengetesirendId = new AdminKozpontiOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType()).CsengetesirendId;
|
|
var kozpontiOraGroupId = Guid.NewGuid();
|
|
foreach (var kozpontiOra in kozpontiOrakList)
|
|
{
|
|
OrarendiOraModel orarendiOramodel = KozpontiOraConverter.ConvertToOrarendiOra(kozpontiOra, csengetesirendId, start, end, hanyadikOra);
|
|
OrarendiOraLogic.SetHetNapja(orarendiOramodel, start.DayOfWeek);
|
|
orarendiOramodel.HetirendList = OrarendiOraLogic.GetAktualHetirendList();
|
|
orarendiOramodel.IsEgyediNap = TanevRendjeLogic.IsEgyediNapByDateAndOsztalyCsoportId(start.Date, kozpontiOra.OsztalyId);
|
|
|
|
OrarendiOraLogic.PostProcessHetirend(orarendiOramodel);
|
|
OrarendiOraLogic.PostProcessOraszam(orarendiOramodel);
|
|
OrarendiOraLogic.PostProcessHetnapja(orarendiOramodel);
|
|
orarendiOramodel.ModositasiIdoszakTipus = (int)OraModositasiIdoszakTipus.EgyOra;
|
|
|
|
OraValidationCo oraValidationCo = orarendiOramodel.CreateOraValidationCo();
|
|
|
|
if (orarendiOraHelper.CheckUtkozesValidation(oraValidationCo, null, isPrevalidation: false, isThrowExceptionOnCollision: false, isCheckKozponti: true, isTeremutkozesFigyelese: isTeremutkozesFigyelese))
|
|
{
|
|
|
|
if (oraValidationCo.IsKozpontiDuplicate || !string.IsNullOrWhiteSpace(oraValidationCo.Msg.ToString()))
|
|
{
|
|
validationCo.IsValid = false;
|
|
validationCo.ErrorMessage = oraValidationCo.Msg.ToString();
|
|
validationCo.HasTeremutkozes = oraValidationCo.OrarendiOraValidationCo.HasTeremutkozes;
|
|
validationCo.TeremutkozesSystemSettingsValue = oraValidationCo.OrarendiOraValidationCo.TeremutkozesSystemSetting;
|
|
validatedKozpontiOraToBeSaved.Add(oraValidationCo);
|
|
return validationCo;
|
|
|
|
}
|
|
|
|
oraValidationCo.OrarendiOraValidationCo.KozpontiOraGroupId = kozpontiOraGroupId;
|
|
validatedKozpontiOraToBeSaved.Add(oraValidationCo);
|
|
}
|
|
}
|
|
|
|
return validationCo;
|
|
}
|
|
}
|
|
}
|