init
This commit is contained in:
		@@ -0,0 +1,27 @@
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class AmiBesorolhatoTanulokList : Dictionary<int, TanuloListItem>
 | 
			
		||||
    {
 | 
			
		||||
        public List<OsztalybaSorolasDDLItem> ConvertToDDLItemList()
 | 
			
		||||
        {
 | 
			
		||||
            List<OsztalybaSorolasDDLItem> Result = new List<OsztalybaSorolasDDLItem>();
 | 
			
		||||
            foreach (var item in this)
 | 
			
		||||
            {
 | 
			
		||||
                Result.Add(new OsztalybaSorolasDDLItem()
 | 
			
		||||
                {
 | 
			
		||||
                    Value = item.Key.ToString(),
 | 
			
		||||
                    Text = item.Value.Nev,
 | 
			
		||||
                    NevElotagNelkul = item.Value.NevElotagNelkul,
 | 
			
		||||
                    BesorolasDatum = item.Value.BesorolasDatum,
 | 
			
		||||
                    KisorolasDatum = item.Value.KisorolasDatum,
 | 
			
		||||
                    Aktiv = item.Value.Aktiv,
 | 
			
		||||
                    SzulDatum = item.Value.SzuletesiDatum,
 | 
			
		||||
                    Neme = item.Value.Neme
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            return Result;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,27 @@
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class BeNemSoroltTanulokList : Dictionary<int, TanuloListItem>
 | 
			
		||||
    {
 | 
			
		||||
        public List<OsztalybaSorolasDDLItem> ConvertToDDLItemList()
 | 
			
		||||
        {
 | 
			
		||||
            List<OsztalybaSorolasDDLItem> Result = new List<OsztalybaSorolasDDLItem>();
 | 
			
		||||
            foreach (var item in this)
 | 
			
		||||
            {
 | 
			
		||||
                Result.Add(new OsztalybaSorolasDDLItem()
 | 
			
		||||
                {
 | 
			
		||||
                    Value = item.Key.ToString(),
 | 
			
		||||
                    Text = item.Value.Nev,
 | 
			
		||||
                    NevElotagNelkul = item.Value.NevElotagNelkul,
 | 
			
		||||
                    BesorolasDatum = item.Value.BesorolasDatum,
 | 
			
		||||
                    KisorolasDatum = item.Value.KisorolasDatum,
 | 
			
		||||
                    Aktiv = item.Value.Aktiv,
 | 
			
		||||
                    SzulDatum = item.Value.SzuletesiDatum,
 | 
			
		||||
                    Neme = item.Value.Neme
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            return Result;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,97 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public static class BesorolasDateRangeUtil
 | 
			
		||||
    {
 | 
			
		||||
        public static BesorolasOverlapResult CalculateMaxOverlap(DateTime besorolasKezdete, DateTime besorolasVege, IEnumerable<BesorolasDateRange> besorolasok)
 | 
			
		||||
        {
 | 
			
		||||
            var maxOverlapCount = 0;
 | 
			
		||||
            DateTime? maxOverlapBeginDate = null;
 | 
			
		||||
            int? maxOverlapOsztalyId = null;
 | 
			
		||||
 | 
			
		||||
            var dateList = CreateDateList(besorolasKezdete, besorolasVege);
 | 
			
		||||
            foreach (var date in dateList)
 | 
			
		||||
            {
 | 
			
		||||
                var overlappedRanges = GetOverlappedRanges(date, besorolasok);
 | 
			
		||||
                var overlapCount = overlappedRanges.Count();
 | 
			
		||||
                if (overlapCount > maxOverlapCount)
 | 
			
		||||
                {
 | 
			
		||||
                    maxOverlapCount = overlapCount;
 | 
			
		||||
                    maxOverlapBeginDate = date;
 | 
			
		||||
                    var overlappedBesorolas = overlappedRanges.FirstOrDefault(x => x.OsztalyCsoportId.HasValue);
 | 
			
		||||
                    if (overlappedBesorolas != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        maxOverlapOsztalyId = overlappedBesorolas.OsztalyCsoportId.Value;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return new BesorolasOverlapResult(maxOverlapCount, maxOverlapBeginDate, maxOverlapOsztalyId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static BesorolasOverlapResult CalculateMinOverlap(DateTime besorolasKezdete, DateTime besorolasVege, IEnumerable<BesorolasDateRange> besorolasok)
 | 
			
		||||
        {
 | 
			
		||||
            var minOverlapCount = int.MaxValue;
 | 
			
		||||
            DateTime? minOverlapBeginDate = null;
 | 
			
		||||
 | 
			
		||||
            var dateList = CreateDateList(besorolasKezdete, besorolasVege);
 | 
			
		||||
            foreach (var date in dateList)
 | 
			
		||||
            {
 | 
			
		||||
                var overlappedRanges = GetOverlappedRanges(date, besorolasok);
 | 
			
		||||
                var overlapCount = overlappedRanges.Count();
 | 
			
		||||
                if (overlapCount < minOverlapCount)
 | 
			
		||||
                {
 | 
			
		||||
                    minOverlapCount = overlapCount;
 | 
			
		||||
                    minOverlapBeginDate = date;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return new BesorolasOverlapResult(minOverlapCount, minOverlapBeginDate);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static IEnumerable<DateTime> CreateDateList(DateTime begin, DateTime end)
 | 
			
		||||
        {
 | 
			
		||||
            return Enumerable.Range(0, end.Subtract(begin).Days).Select(d => begin.AddDays(d));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static IEnumerable<BesorolasDateRange> GetOverlappedRanges(DateTime examinedDate, IEnumerable<BesorolasDateRange> ranges)
 | 
			
		||||
        {
 | 
			
		||||
            // NOTE: Ha egyszer a besorolás jobbról is zárt lesz, akkor az End-nél egyenlőséget is kell vizsgálni.
 | 
			
		||||
            return ranges.Where(r => r.Begin <= examinedDate && r.End > examinedDate);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class BesorolasDateRange
 | 
			
		||||
    {
 | 
			
		||||
        public DateTime Begin { get; set; }
 | 
			
		||||
 | 
			
		||||
        public DateTime End { get; set; }
 | 
			
		||||
 | 
			
		||||
        public int? OsztalyCsoportId { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class BesorolasOverlapResult
 | 
			
		||||
    {
 | 
			
		||||
        public int OverlapCount { get; private set; }
 | 
			
		||||
 | 
			
		||||
        public DateTime? OverlapBeginDate { get; private set; }
 | 
			
		||||
 | 
			
		||||
        public int? MaxOverlapOsztalyId { get; private set; }
 | 
			
		||||
 | 
			
		||||
        public BesorolasOverlapResult(int overlapCount, DateTime? overlapBeginDate)
 | 
			
		||||
        {
 | 
			
		||||
            OverlapCount = overlapCount;
 | 
			
		||||
            OverlapBeginDate = overlapBeginDate;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public BesorolasOverlapResult(int overlapCount, DateTime? overlapBeginDate, int? maxOverlapOsztalyId)
 | 
			
		||||
        {
 | 
			
		||||
            OverlapCount = overlapCount;
 | 
			
		||||
            OverlapBeginDate = overlapBeginDate;
 | 
			
		||||
            MaxOverlapOsztalyId = maxOverlapOsztalyId;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,14 @@
 | 
			
		||||
using System;
 | 
			
		||||
using Kreta.Enums.ManualEnums;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class CsoportBesorolasModositasValidacioItemCo : TanuloCsoportSorolasValidacioItemCo
 | 
			
		||||
    {
 | 
			
		||||
        public CsoportBesorolasModositasValidacioHibaEnum Oka { get; set; }
 | 
			
		||||
 | 
			
		||||
        public DateTime? Datum { get; set; }
 | 
			
		||||
 | 
			
		||||
        public int? Darab { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,20 @@
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class CsoportListItem
 | 
			
		||||
    {
 | 
			
		||||
        public int Id { get; set; }
 | 
			
		||||
        public string Nev { get; set; }
 | 
			
		||||
        public int? OsztalybontasId { get; set; }
 | 
			
		||||
        public string OsztalyNev { get; set; }
 | 
			
		||||
        public OsztalybaSorolasDDLItem ConvertToDDLItem()
 | 
			
		||||
        {
 | 
			
		||||
            return new OsztalybaSorolasDDLItem()
 | 
			
		||||
            {
 | 
			
		||||
                Text = Nev,
 | 
			
		||||
                Value = Id.ToString(),
 | 
			
		||||
                FilterId = OsztalybontasId,
 | 
			
		||||
                Group = ""
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,30 @@
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class CsoportTanuloiList : Dictionary<int, TanuloListItem>
 | 
			
		||||
    {
 | 
			
		||||
        public int Id { get; set; }
 | 
			
		||||
        public int? OsztalybontasId { get; set; }
 | 
			
		||||
 | 
			
		||||
        public List<OsztalybaSorolasDDLItem> ConvertToDDLItemList()
 | 
			
		||||
        {
 | 
			
		||||
            List<OsztalybaSorolasDDLItem> Result = new List<OsztalybaSorolasDDLItem>();
 | 
			
		||||
            foreach (var item in this)
 | 
			
		||||
            {
 | 
			
		||||
                Result.Add(new OsztalybaSorolasDDLItem()
 | 
			
		||||
                {
 | 
			
		||||
                    Value = item.Key.ToString(),
 | 
			
		||||
                    Text = item.Value.Nev,
 | 
			
		||||
                    NevElotagNelkul = item.Value.NevElotagNelkul,
 | 
			
		||||
                    FilterId = OsztalybontasId,
 | 
			
		||||
                    BesorolasDatum = item.Value.BesorolasDatum,
 | 
			
		||||
                    KisorolasDatum = item.Value.KisorolasDatum,
 | 
			
		||||
                    Aktiv = item.Value.Aktiv,
 | 
			
		||||
                    SzulDatum = item.Value.SzuletesiDatum
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            return Result;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,25 @@
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class KiiratkoztatottTanulokList : Dictionary<int, TanuloListItem>
 | 
			
		||||
    {
 | 
			
		||||
        public List<OsztalybaSorolasDDLItem> ConvertToDDLItemList()
 | 
			
		||||
        {
 | 
			
		||||
            List<OsztalybaSorolasDDLItem> Result = new List<OsztalybaSorolasDDLItem>();
 | 
			
		||||
            foreach (var item in this)
 | 
			
		||||
            {
 | 
			
		||||
                Result.Add(new OsztalybaSorolasDDLItem()
 | 
			
		||||
                {
 | 
			
		||||
                    Value = item.Key.ToString(),
 | 
			
		||||
                    Text = item.Value.Nev,
 | 
			
		||||
                    NevElotagNelkul = item.Value.NevElotagNelkul,
 | 
			
		||||
                    KisorolasDatum = item.Value.KisorolasDatum,
 | 
			
		||||
                    Aktiv = item.Value.Aktiv,
 | 
			
		||||
                    SzulDatum = item.Value.SzuletesiDatum
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            return Result;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,26 @@
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class NebulokList : Dictionary<int, TanuloListItem>
 | 
			
		||||
    {
 | 
			
		||||
        public List<OsztalybaSorolasDDLItem> ConvertToDDLItemList()
 | 
			
		||||
        {
 | 
			
		||||
            var result = new List<OsztalybaSorolasDDLItem>();
 | 
			
		||||
            foreach (var item in this)
 | 
			
		||||
            {
 | 
			
		||||
                result.Add(new OsztalybaSorolasDDLItem()
 | 
			
		||||
                {
 | 
			
		||||
                    Value = item.Key.ToString(),
 | 
			
		||||
                    Text = item.Value.Nev,
 | 
			
		||||
 | 
			
		||||
                    BesorolasDatum = item.Value.BesorolasDatum,
 | 
			
		||||
                    KisorolasDatum = item.Value.KisorolasDatum,
 | 
			
		||||
                    Aktiv = item.Value.Aktiv,
 | 
			
		||||
                    SzulDatum = item.Value.SzuletesiDatum
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            return result;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,8 @@
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class OsztalyCsoportList : Dictionary<int, OsztalyCsoportListItem>
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,9 @@
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class OsztalyCsoportListItem
 | 
			
		||||
    {
 | 
			
		||||
        public int Id { get; set; }
 | 
			
		||||
 | 
			
		||||
        public string Nev { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,39 @@
 | 
			
		||||
using System;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class OsztalyListItem
 | 
			
		||||
    {
 | 
			
		||||
        public int Id { get; set; }
 | 
			
		||||
        public string Nev { get; set; }
 | 
			
		||||
 | 
			
		||||
        public OsztalybaSorolasDDLItem ConvertToDDLItem()
 | 
			
		||||
        {
 | 
			
		||||
            return new OsztalybaSorolasDDLItem()
 | 
			
		||||
            {
 | 
			
		||||
                Text = Nev,
 | 
			
		||||
                Value = Id.ToString(),
 | 
			
		||||
                FilterId = null,
 | 
			
		||||
                Group = ""
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class OsztalybaSorolasDDLItem
 | 
			
		||||
    {
 | 
			
		||||
        public int? FilterId { get; set; }
 | 
			
		||||
        public string Value { get; set; }
 | 
			
		||||
        public string Text { get; set; }
 | 
			
		||||
        public string Group { get; set; }
 | 
			
		||||
        public DateTime? BesorolasDatum { get; set; }
 | 
			
		||||
        public DateTime? KisorolasDatum { get; set; }
 | 
			
		||||
        public bool Aktiv { get; set; }
 | 
			
		||||
        public DateTime SzulDatum { get; set; }
 | 
			
		||||
        public string Neme { get; set; }
 | 
			
		||||
        public string Osztalya { get; set; }
 | 
			
		||||
        public string Vegzaradek { get; set; }
 | 
			
		||||
        public string NevElotagNelkul { get; set; }
 | 
			
		||||
        public int JogviszonyCount { get; set; }
 | 
			
		||||
        public int JogviszonyId { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,31 @@
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class OsztalyTanuloiList : Dictionary<int, TanuloListItem>
 | 
			
		||||
    {
 | 
			
		||||
        public int Id { get; set; }
 | 
			
		||||
        public List<OsztalybaSorolasDDLItem> ConvertToDDLItemList()
 | 
			
		||||
        {
 | 
			
		||||
            List<OsztalybaSorolasDDLItem> Result = new List<OsztalybaSorolasDDLItem>();
 | 
			
		||||
            foreach (var item in this)
 | 
			
		||||
            {
 | 
			
		||||
                Result.Add(new OsztalybaSorolasDDLItem()
 | 
			
		||||
                {
 | 
			
		||||
                    Value = item.Key.ToString(),
 | 
			
		||||
                    Text = item.Value.Nev,
 | 
			
		||||
                    NevElotagNelkul = item.Value.NevElotagNelkul,
 | 
			
		||||
                    BesorolasDatum = item.Value.BesorolasDatum,
 | 
			
		||||
                    KisorolasDatum = item.Value.KisorolasDatum,
 | 
			
		||||
                    Aktiv = item.Value.Aktiv,
 | 
			
		||||
                    SzulDatum = item.Value.SzuletesiDatum,
 | 
			
		||||
                    Neme = item.Value.Neme,
 | 
			
		||||
                    Vegzaradek = item.Value.Vegzaradek,
 | 
			
		||||
                    JogviszonyCount = item.Value.JogviszonyCount,
 | 
			
		||||
                    JogviszonyId = item.Value.JogviszonyId
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            return Result;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,18 @@
 | 
			
		||||
using System;
 | 
			
		||||
using Kreta.Enums.ManualEnums;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class OsztalybaSorolasModositasValidacioItemCo : TanuloCsoportSorolasValidacioItemCo
 | 
			
		||||
    {
 | 
			
		||||
        public OsztalybaSorolasModositasValidacioHibaEnum Oka { get; set; }
 | 
			
		||||
 | 
			
		||||
        public int? OsztalyId { get; set; }
 | 
			
		||||
 | 
			
		||||
        public int? OsztalybontottCsoportId { get; set; }
 | 
			
		||||
 | 
			
		||||
        public int Darab { get; set; }
 | 
			
		||||
 | 
			
		||||
        public DateTime? Datum { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,12 @@
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class OsztalybaSororlasItem
 | 
			
		||||
    {
 | 
			
		||||
        public int Id { get; set; }
 | 
			
		||||
        public int? Fromid { get; set; }
 | 
			
		||||
        public bool IsVanMentettVegzaradek { get; set; }
 | 
			
		||||
        public bool IsKellFeluletenMegadottZaradekRogzitese { get; set; }
 | 
			
		||||
        public int? JogviszonyCount { get; set; }
 | 
			
		||||
        public string JogviszonyIds { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,527 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Data;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using Kreta.BusinessLogic.Classes;
 | 
			
		||||
using Kreta.BusinessLogic.Helpers;
 | 
			
		||||
using Kreta.BusinessLogic.Interfaces;
 | 
			
		||||
using Kreta.Core;
 | 
			
		||||
using Kreta.Core.ConnectionType;
 | 
			
		||||
using Kreta.Core.Exceptions;
 | 
			
		||||
using Kreta.DataAccessManual.Interfaces;
 | 
			
		||||
using Kreta.Enums;
 | 
			
		||||
using Kreta.Enums.ManualEnums;
 | 
			
		||||
using Kreta.Resources;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    internal class SorolasValidate
 | 
			
		||||
    {
 | 
			
		||||
        internal static void ValidateModel(IOsztalyCsoportbaSorolas model, bool datum = true, bool fromDdl = true, bool toDdl = true)
 | 
			
		||||
        {
 | 
			
		||||
            List<string> errormessages = new List<string>();
 | 
			
		||||
            if (toDdl && !model.ToDDL.HasValue)
 | 
			
		||||
            {
 | 
			
		||||
                errormessages.Add(BesorolasResource.CelPanelKitolteseKotelezo);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (fromDdl && !model.FromDDL.HasValue)
 | 
			
		||||
            {
 | 
			
		||||
                errormessages.Add(BesorolasResource.ForrasPanelKitolteseKotelezo);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (datum && !model.Datum.HasValue)
 | 
			
		||||
            {
 | 
			
		||||
                errormessages.Add(ErrorResource.DatumMegadasaKotelezo);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (model.Zaradek == null)
 | 
			
		||||
            {
 | 
			
		||||
                model.Zaradek = new SorolasZaradek();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (model.Zaradek.IsZaradekKotelezo
 | 
			
		||||
                && model.ToElements.Any(x => !x.IsVanMentettVegzaradek)
 | 
			
		||||
                && (model.Zaradek.ZaradekSzovegList == null || !model.Zaradek.ZaradekSzovegList.Any(x => x.NyelvId == (int)AnyanyelvEnum.magyar && !string.IsNullOrWhiteSpace(x.Szoveg))))
 | 
			
		||||
            {
 | 
			
		||||
                errormessages.Add(OsztalyCsoportResource.ZaradekSzovegeKotelezo);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (model.ToElements.Any(x => x.JogviszonyCount > 0 && (string.IsNullOrWhiteSpace(x.JogviszonyIds) || x.JogviszonyIds == "0")))
 | 
			
		||||
            {
 | 
			
		||||
                errormessages.Add(OsztalyCsoportResource.Legalabb1JogviszonyValasztasaKotelezo);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (!model.Zaradek.KeltezesDatuma.HasValue && model.Zaradek.IsZaradekKotelezo)
 | 
			
		||||
            {
 | 
			
		||||
                errormessages.Add(OsztalyCsoportResource.KeltezesDatumaKotelezo);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (string.IsNullOrWhiteSpace(model.Zaradek.KeltezesHelye) && model.Zaradek.IsZaradekKotelezo)
 | 
			
		||||
            {
 | 
			
		||||
                errormessages.Add(OsztalyCsoportResource.KeltezesHelyeKotelezo);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (errormessages.Count > 0)
 | 
			
		||||
            {
 | 
			
		||||
                throw new BlException(string.Join(Constants.General.Sortores, errormessages));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal static void SzervezetValidateModel(IConnectionType connectionType, int tanevId, IOsztalyCsoportbaSorolas model)
 | 
			
		||||
        {
 | 
			
		||||
            var errormessages = new List<string>();
 | 
			
		||||
            var osztalyCsoportHelper = new OsztalyCsoportHelper(connectionType);
 | 
			
		||||
            var tanulokSzakmajegyzekek = osztalyCsoportHelper.GetTanulokSzakmajegyzeke(tanevId, model.ToElements.Select(x => x.Id).ToList(), model.Datum ?? DateTime.Now);
 | 
			
		||||
 | 
			
		||||
            var tanuloSzakmaNelkulList = new List<string>();
 | 
			
		||||
            foreach (var szakmajegyzek in tanulokSzakmajegyzekek)
 | 
			
		||||
            {
 | 
			
		||||
                if (szakmajegyzek.SzakmaTipusId == null || szakmajegyzek.SzakmaTipusId == (int)SzakmaTipusEnum.na)
 | 
			
		||||
                {
 | 
			
		||||
                    tanuloSzakmaNelkulList.Add(szakmajegyzek.NevElotagNelkul);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if(tanuloSzakmaNelkulList.Any())
 | 
			
		||||
            {
 | 
			
		||||
                errormessages.Add($"{string.Join(", ", tanuloSzakmaNelkulList.ToArray())} {OsztalyCsoportResource.TanuloSzakmaAdatNincsBeallitvaDualisCsoport}");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var csoportSzakmajegyzekek = osztalyCsoportHelper.GetCsoportTanuloinakSzakmajegyzeke(model.ToDDL.Value, model.Datum ?? DateTime.Now);
 | 
			
		||||
            var groupoltTanulokSzakmajegyzekek = tanulokSzakmajegyzekek.GroupBy(t => new
 | 
			
		||||
            {
 | 
			
		||||
                SzakmaTipusId = t.SzakmaTipusId,
 | 
			
		||||
                SzakmairanyTipusId = t.SzakmairanyTipusId
 | 
			
		||||
            }).ToList();
 | 
			
		||||
            if (groupoltTanulokSzakmajegyzekek.Count > 1 && csoportSzakmajegyzekek.Count == 0)
 | 
			
		||||
            {
 | 
			
		||||
                errormessages.Add(OsztalyCsoportResource.TanulokNemEgyezoSzakmaSzakmairany);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (csoportSzakmajegyzekek.Count == 1)
 | 
			
		||||
            {
 | 
			
		||||
                var tanulokNemEgyezoSzakmaSzakmairany = tanulokSzakmajegyzekek.Where(x => !x.SzakmaTipusId.HasValue
 | 
			
		||||
                    || !csoportSzakmajegyzekek.First().SzakmaTipusId.HasValue || x.SzakmaTipusId != csoportSzakmajegyzekek.First().SzakmaTipusId
 | 
			
		||||
                    || !(x.SzakmairanyTipusId == csoportSzakmajegyzekek.First().SzakmairanyTipusId)).ToList();
 | 
			
		||||
                if (tanulokNemEgyezoSzakmaSzakmairany.Count > 0)
 | 
			
		||||
                {
 | 
			
		||||
                    var csoportSzakmajegyzeke = csoportSzakmajegyzekek[0].SzakmaTipusId.GetDisplayName<SzakmaTipusEnum>(tanevId) +
 | 
			
		||||
                            (!csoportSzakmajegyzekek[0].SzakmairanyTipusId.HasValue ? "" : "/" + csoportSzakmajegyzekek[0].SzakmairanyTipusId.GetDisplayName<SzakmaTipusEnum>(tanevId));
 | 
			
		||||
                    errormessages.Add(string.Format(OsztalyCsoportResource.TanulokSzakmaSzakmairanyNemEgyezikACsoportSzakmaSzakmairanyal, string.Join(", ", tanulokNemEgyezoSzakmaSzakmairany.Select(x => x.NevElotagNelkul).ToList()), csoportSzakmajegyzeke));
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (errormessages.Count > 0)
 | 
			
		||||
            {
 | 
			
		||||
                throw new BlException(string.Join(Constants.General.Sortores, errormessages));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal static void IsDatumInTanev(IConnectionType connectionType, DateTime date)
 | 
			
		||||
        {
 | 
			
		||||
            var tanevHelper = new TanevHelper(connectionType);
 | 
			
		||||
            var data = tanevHelper.GetTanevInfo();
 | 
			
		||||
            if (date < data.KezdoNap || date > data.UtolsoNap)
 | 
			
		||||
            {
 | 
			
		||||
                throw new BlException(string.Format(OsztalyCsoportResource.SorolasDatumTanevbeKellEssen, data.KezdoNap.ToString("yyyy.MM.dd."), data.UtolsoNap.ToString("yyyy.MM.dd.")));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private readonly int _tanevId;
 | 
			
		||||
        private readonly IDalHandler _dalHandler;
 | 
			
		||||
        private readonly DateTime _actualDate;
 | 
			
		||||
        private readonly DateTime _tanevUtolsoNap;
 | 
			
		||||
        private readonly List<int> _tanuloIds;
 | 
			
		||||
        private readonly OktNevelesiKategoriaEnum? _kategoriaTipus;
 | 
			
		||||
        private List<TanuloOsztalya> _tanulokOsztalyai;
 | 
			
		||||
        private List<TanuloOsztalya> _tanulokElozoTanevOsztalyai;
 | 
			
		||||
        private TanulokList _tanuloAdatok;
 | 
			
		||||
        private OsztalyCsoportList _osztalyCsoportAdatok;
 | 
			
		||||
        private List<TanuloOsztalyCsoport> _tanuloOsztalyCSoport;
 | 
			
		||||
        private readonly int _jogviszonyLimit;
 | 
			
		||||
 | 
			
		||||
        private IEnumerable<TanuloOsztalya> TanulokOsztalyai
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (_tanulokOsztalyai != null)
 | 
			
		||||
                {
 | 
			
		||||
                    return _tanulokOsztalyai;
 | 
			
		||||
                }
 | 
			
		||||
                _tanulokOsztalyai = GetTanulokOsztalyai();
 | 
			
		||||
                return _tanulokOsztalyai;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private IEnumerable<TanuloOsztalya> TanulokElozoTanevOsztalyai(int aktivTanevId)
 | 
			
		||||
        {
 | 
			
		||||
            if (_tanulokElozoTanevOsztalyai != null)
 | 
			
		||||
            {
 | 
			
		||||
                return _tanulokElozoTanevOsztalyai;
 | 
			
		||||
            }
 | 
			
		||||
            _tanulokElozoTanevOsztalyai = GetTanulokElozoTanevOsztalyai(aktivTanevId);
 | 
			
		||||
            return _tanulokElozoTanevOsztalyai;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private IEnumerable<TanuloOsztalya> TanulokOsztalyaiDate
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return TanulokOsztalyai.Where(i => i.Belepes <= _actualDate.Date && (!i.Kilepes.HasValue || i.Kilepes.Value > _actualDate.Date)).ToList();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private IEnumerable<TanuloOsztalya> TanulokOsztalyaiFuture
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return TanulokOsztalyai.Where(i => i.Belepes > _actualDate.Date).ToList();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private IEnumerable<TanuloOsztalyCsoport> TanuloOsztalyCSoport
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (_tanuloOsztalyCSoport != null)
 | 
			
		||||
                {
 | 
			
		||||
                    return _tanuloOsztalyCSoport;
 | 
			
		||||
                }
 | 
			
		||||
                _tanuloOsztalyCSoport = TanulokOsztalyCsoportjai();
 | 
			
		||||
                return _tanuloOsztalyCSoport;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private IEnumerable<TanuloOsztalyCsoport> TanuloOsztalyCSoportDate
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return TanuloOsztalyCSoport.Where(i => i.Belepes <= _actualDate.Date && (!i.Kilepes.HasValue || i.Kilepes.Value > _actualDate.Date)).ToList();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private IEnumerable<TanuloOsztalyCsoport> TanuloOsztalyCSoportFuture
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return TanuloOsztalyCSoport.Where(i => i.Belepes > _actualDate.Date).ToList();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal TanulokList TanuloAdatok
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (_tanuloAdatok != null)
 | 
			
		||||
                {
 | 
			
		||||
                    return _tanuloAdatok;
 | 
			
		||||
                }
 | 
			
		||||
                _tanuloAdatok = GetTanulokAdatai();
 | 
			
		||||
                return _tanuloAdatok;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal OsztalyCsoportList OsztalyCsoportAdatok
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (_osztalyCsoportAdatok != null)
 | 
			
		||||
                {
 | 
			
		||||
                    return _osztalyCsoportAdatok;
 | 
			
		||||
                }
 | 
			
		||||
                _osztalyCsoportAdatok = GetOsztalyCsoportAdatok();
 | 
			
		||||
                return _osztalyCsoportAdatok;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal TanuloOsztalyCsoport GetOsztalyCsoportTanuloCsoportAdatok(int osztalyCsoportId, int tanuloId)
 | 
			
		||||
        {
 | 
			
		||||
            var tcss = TanuloOsztalyCSoport.Where(x => (x.TanuloId == tanuloId) && (x.OsztalyCsoportId == osztalyCsoportId)).ToList();
 | 
			
		||||
            if (tcss.Count > 0)
 | 
			
		||||
            {
 | 
			
		||||
                var first = tcss.OrderByDescending(x => x.Belepes).First();
 | 
			
		||||
                if (!first.Kilepes.HasValue)
 | 
			
		||||
                {
 | 
			
		||||
                    first.Kilepes = GetTanevUtolsoNap();
 | 
			
		||||
                }
 | 
			
		||||
                return first;
 | 
			
		||||
            }
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal SorolasValidate(DateTime date, List<int> tanuloIds, int tanevId, OktNevelesiKategoriaEnum? kategoriaTipus, IDalHandler dalHandler)
 | 
			
		||||
        {
 | 
			
		||||
            _actualDate = date;
 | 
			
		||||
            _tanuloIds = tanuloIds.Distinct().ToList();
 | 
			
		||||
            _tanevId = tanevId;
 | 
			
		||||
            _dalHandler = dalHandler;
 | 
			
		||||
            _kategoriaTipus = kategoriaTipus;
 | 
			
		||||
            _jogviszonyLimit = dalHandler.TanuloCsoport().GetJogviszonyLimit(tanevId, kategoriaTipus ?? OktNevelesiKategoriaEnum.NevelesOktatas);
 | 
			
		||||
            _tanevUtolsoNap = GetTanevUtolsoNap();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool NemTagjaAzOsztalynakABeallitottDatumIdejen(int tanuloId)
 | 
			
		||||
        {
 | 
			
		||||
            return !TanulokOsztalyaiDate.Any(t => t.TanuloId == tanuloId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool TanuloNemTagjaOCsADatumAlatt(int tanuloId, int ocsId)
 | 
			
		||||
        {
 | 
			
		||||
            return !TanuloOsztalyCSoportDate.Any(t => t.TanuloId == tanuloId && t.OsztalyCsoportId == ocsId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool JogviszonyLimitTullepes(int tanuloId)
 | 
			
		||||
        {
 | 
			
		||||
            var aktualisOsztalyok = TanulokOsztalyaiDate.Count(t => t.TanuloId == tanuloId);
 | 
			
		||||
            var jovobeliOsztalyok = TanulokOsztalyaiFuture.Count(t => t.TanuloId == tanuloId);
 | 
			
		||||
 | 
			
		||||
            return (aktualisOsztalyok + jovobeliOsztalyok) >= _jogviszonyLimit;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool JogviszonyLimitTullepes(int tanuloId, out DateTime? limitBesorolasDatum, out int? limitBesorolasOsztalyId)
 | 
			
		||||
        {
 | 
			
		||||
            var besorolasok = CreateOsztalyBesorolasDateRangeList(tanuloId, withCurrentOne: true);
 | 
			
		||||
            var overlapResult = BesorolasDateRangeUtil.CalculateMaxOverlap(_actualDate, _tanevUtolsoNap, besorolasok);
 | 
			
		||||
 | 
			
		||||
            limitBesorolasDatum = overlapResult.OverlapBeginDate;
 | 
			
		||||
            limitBesorolasOsztalyId = overlapResult.MaxOverlapOsztalyId;
 | 
			
		||||
            return overlapResult.OverlapCount > _jogviszonyLimit;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool BesorolasJavitasValidate(int tanuloId, DateTime startDate, out DateTime? limitBesorolasDatum, out int? limitBesorolasOsztalyId)
 | 
			
		||||
        {
 | 
			
		||||
            var besorolasok = CreateOsztalyBesorolasDateRangeList(tanuloId, withCurrentOne: false);
 | 
			
		||||
            var overlapResult = BesorolasDateRangeUtil.CalculateMaxOverlap(startDate, _tanevUtolsoNap, besorolasok);
 | 
			
		||||
 | 
			
		||||
            limitBesorolasDatum = overlapResult.OverlapBeginDate;
 | 
			
		||||
            limitBesorolasOsztalyId = overlapResult.MaxOverlapOsztalyId;
 | 
			
		||||
            return overlapResult.OverlapCount > _jogviszonyLimit;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool TanuloMarOsztalyCsoportTagja(int tanuloId, int ocsId)
 | 
			
		||||
        {
 | 
			
		||||
            return TanuloOsztalyCSoportDate.Any(a => a.TanuloId == tanuloId && a.OsztalyCsoportId == ocsId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool TanuloOsztalyCsoportTagjaLesz(int tanuloId, int ocsId)
 | 
			
		||||
        {
 | 
			
		||||
            return TanuloOsztalyCSoportFuture.Any(a => a.TanuloId == tanuloId && a.OsztalyCsoportId == ocsId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool MarKiLettAzOsztalybolSorolva(int aktivTanevId, int tanuloId, int ocsId, DateTime kilepesDatuma)
 | 
			
		||||
        {
 | 
			
		||||
            return TanulokElozoTanevOsztalyai(aktivTanevId).Any(a => a.TanuloId == tanuloId && a.OsztalyId == ocsId && a.Kilepes != null && a.Kilepes > kilepesDatuma);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal int GetTanuloCsoportId(int csoportId, int tanuloId)
 | 
			
		||||
        {
 | 
			
		||||
            var tanuloCSoport = TanuloOsztalyCSoportDate.SingleOrDefault(a => a.TanuloId == tanuloId && a.OsztalyCsoportId == csoportId);
 | 
			
		||||
 | 
			
		||||
            if (tanuloCSoport != null)
 | 
			
		||||
            {
 | 
			
		||||
                return tanuloCSoport.Id;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal ValidMethode TanuloMarLetezikKovTanevben(int tanuloId, int kovTanevId)
 | 
			
		||||
        {
 | 
			
		||||
            var tanulo = _dalHandler.Tanulo().Get(tanuloId);
 | 
			
		||||
            var newTanuloId = string.IsNullOrEmpty(tanulo.OktatasiAzonosito) ? (int)default : _dalHandler.TanuloCsoport().CheckOktatasiAzonosito(tanulo.OktatasiAzonosito, kovTanevId);
 | 
			
		||||
 | 
			
		||||
            if (newTanuloId.IsEntityId())
 | 
			
		||||
            {
 | 
			
		||||
                return new ValidMethode
 | 
			
		||||
                {
 | 
			
		||||
                    IsValid = false,
 | 
			
		||||
                    Message = string.Format(BesorolasResource.TanuloMarLetezikKovetkezoTanevbenOktatasiAzonosito, tanulo.OktatasiAzonosito),
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            newTanuloId = _dalHandler.TanuloCsoport().Check4TValidacio((int)Validation4TEnum.Tanulo, tanulo.Vezeteknev, tanulo.Utonev, tanulo.AnyjaNeve, tanulo.SzuletesiHely, tanulo.SzuletesiDatum, null, kovTanevId, tanulo.Elotag);
 | 
			
		||||
 | 
			
		||||
            if (newTanuloId.IsEntityId())
 | 
			
		||||
            {
 | 
			
		||||
                return new ValidMethode
 | 
			
		||||
                {
 | 
			
		||||
                    IsValid = false,
 | 
			
		||||
                    Message = string.Format(BesorolasResource.TanuloMarLetezikKovetkezoTanevben4TAdatok, tanulo.NyomtatasiNev),
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return new ValidMethode
 | 
			
		||||
            {
 | 
			
		||||
                IsValid = true,
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool TanuloNemTagjaEgyetlenOsztalynakSem(int tanuloId, out DateTime? osztalyNelkulBeginDate)
 | 
			
		||||
        {
 | 
			
		||||
            var besorolasok = CreateOsztalyBesorolasDateRangeList(tanuloId, withCurrentOne: false);
 | 
			
		||||
            var overlapResult = BesorolasDateRangeUtil.CalculateMinOverlap(_actualDate, _tanevUtolsoNap, besorolasok);
 | 
			
		||||
 | 
			
		||||
            osztalyNelkulBeginDate = overlapResult.OverlapBeginDate;
 | 
			
		||||
            return overlapResult.OverlapCount == 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool TanuloMarTagjaCsoportnak(int tanuloId, int csoportId)
 | 
			
		||||
        {
 | 
			
		||||
            var tanuloCsoportjai = TanuloOsztalyCSoport.Where(tcs => tcs.TanuloId == tanuloId && tcs.OsztalyCsoportId == csoportId
 | 
			
		||||
                && ((tcs.Belepes <= _actualDate && (!tcs.Kilepes.HasValue || tcs.Kilepes.Value > _actualDate)) || tcs.Belepes > _actualDate));
 | 
			
		||||
 | 
			
		||||
            return tanuloCsoportjai.Any();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool TanuloNemTagjaAzOsztalybontottOsztalynak(int tanuloId, int osztalybontasId, out DateTime? nemTagjaOsztalynakBeginDate)
 | 
			
		||||
        {
 | 
			
		||||
            var besorolasok = CreateOsztalyBesorolasDateRangeList(tanuloId, withCurrentOne: false, examinedOsztalyId: osztalybontasId);
 | 
			
		||||
            var overlapResult = BesorolasDateRangeUtil.CalculateMinOverlap(_actualDate, _tanevUtolsoNap, besorolasok);
 | 
			
		||||
 | 
			
		||||
            nemTagjaOsztalynakBeginDate = overlapResult.OverlapBeginDate;
 | 
			
		||||
            return overlapResult.OverlapCount == 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool OsztalyokSzamaLimitTullepes(int tanuloId, OktNevelesiKategoriaEnum feladatKategoria)
 | 
			
		||||
        {
 | 
			
		||||
            var limit = _dalHandler.TanuloCsoport().GetJogviszonyLimit(_tanevId, feladatKategoria);
 | 
			
		||||
 | 
			
		||||
            var tanulo = _dalHandler.Tanulo().Get(tanuloId);
 | 
			
		||||
            var newTanuloId = string.IsNullOrEmpty(tanulo.OktatasiAzonosito) ? (int)default : _dalHandler.TanuloCsoport().CheckOktatasiAzonosito(tanulo.OktatasiAzonosito, _tanevId);
 | 
			
		||||
 | 
			
		||||
            if (newTanuloId <= 0)
 | 
			
		||||
            {
 | 
			
		||||
                newTanuloId = _dalHandler.TanuloCsoport().Check4TValidacio((int)Validation4TEnum.Tanulo, tanulo.Vezeteknev, tanulo.Utonev, tanulo.AnyjaNeve, tanulo.SzuletesiHely, tanulo.SzuletesiDatum, null, _tanevId, tanulo.Elotag);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var osztalyBesorolasainakSzama = _dalHandler.TanuloCsoport().GetTanuloOsztalybaSorolasainakSzama(newTanuloId, _tanevId, feladatKategoria);
 | 
			
		||||
 | 
			
		||||
            var result = osztalyBesorolasainakSzama >= limit;
 | 
			
		||||
 | 
			
		||||
            return result;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal bool TanuloMarTagjaMentorcsoportnak(int tanuloId)
 | 
			
		||||
        {
 | 
			
		||||
            var tanulo = _dalHandler.Tanulo().Get(tanuloId);
 | 
			
		||||
            return tanulo.OsztalyCsoport.Any(x =>
 | 
			
		||||
            {
 | 
			
		||||
                if (((x.BelepesDatum <= _actualDate && (!x.KilepesDatum.HasValue || x.KilepesDatum.Value > _actualDate)) || x.BelepesDatum > _actualDate)
 | 
			
		||||
                    && _dalHandler.OsztalyCsoport().GetIsCsoport(x.OsztalyCsoportId))
 | 
			
		||||
                {
 | 
			
		||||
                    return _dalHandler.Csoport().Get(x.OsztalyCsoportId).Tipusa == (int)CsoportTipusEnum.apaczai_mentorcsoport;
 | 
			
		||||
                }
 | 
			
		||||
                return false;
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private TanulokList GetTanulokAdatai()
 | 
			
		||||
        {
 | 
			
		||||
            DataSet ds = _dalHandler.TanuloCsoport().GetTanulokAdatai(_tanuloIds);
 | 
			
		||||
            var result = new TanulokList();
 | 
			
		||||
            foreach (DataRow row in ds.Tables[0].Rows)
 | 
			
		||||
            {
 | 
			
		||||
                result.Add(row.Field<int>("ID"), new TanuloListItem()
 | 
			
		||||
                {
 | 
			
		||||
                    Nev = row.Field<string>("Nev"),
 | 
			
		||||
                    SzuletesiDatum = row.Field<DateTime>("SzulDatum")
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            return result;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private OsztalyCsoportList GetOsztalyCsoportAdatok()
 | 
			
		||||
        {
 | 
			
		||||
            var result = new OsztalyCsoportList();
 | 
			
		||||
            var ds = _dalHandler.OsztalyCsoport().GetOsztalyCsoportDataSet(_tanevId, (int?)_kategoriaTipus);
 | 
			
		||||
            foreach (DataRow row in ds.Tables[0].AsEnumerable())
 | 
			
		||||
            {
 | 
			
		||||
                result.Add(row.Field<int>("ID"), new OsztalyCsoportListItem
 | 
			
		||||
                {
 | 
			
		||||
                    Id = row.Field<int>("Id"),
 | 
			
		||||
                    Nev = row.Field<string>("Nev")
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            return result;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private List<TanuloOsztalya> GetTanulokOsztalyai()
 | 
			
		||||
        {
 | 
			
		||||
            var ds = _dalHandler.TanuloCsoport().FilterTanuloIsInClass(_tanevId, _tanuloIds, _kategoriaTipus);
 | 
			
		||||
            return (from row in ds.Tables[0].AsEnumerable()
 | 
			
		||||
                    select new TanuloOsztalya
 | 
			
		||||
                    {
 | 
			
		||||
                        TanuloId = row.Field<int>("ID"),
 | 
			
		||||
                        OsztalyId = row.Field<int>("OsztalyID"),
 | 
			
		||||
                        Kilepes = row.Field<DateTime?>("KilepesDatum"),
 | 
			
		||||
                        Belepes = row.Field<DateTime>("BelepesDatum")
 | 
			
		||||
                    }).ToList();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private List<TanuloOsztalya> GetTanulokElozoTanevOsztalyai(int aktTanevId)
 | 
			
		||||
        {
 | 
			
		||||
            var ds = _dalHandler.TanuloCsoport().FilterTanuloIsInClass(aktTanevId, _tanuloIds, _kategoriaTipus);
 | 
			
		||||
            return (from row in ds.Tables[0].AsEnumerable()
 | 
			
		||||
                    select new TanuloOsztalya
 | 
			
		||||
                    {
 | 
			
		||||
                        TanuloId = row.Field<int>("ID"),
 | 
			
		||||
                        OsztalyId = row.Field<int>("OsztalyID"),
 | 
			
		||||
                        Kilepes = row.Field<DateTime?>("KilepesDatum"),
 | 
			
		||||
                        Belepes = row.Field<DateTime>("BelepesDatum")
 | 
			
		||||
                    }).ToList();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private List<TanuloOsztalyCsoport> TanulokOsztalyCsoportjai()
 | 
			
		||||
        {
 | 
			
		||||
            var ds = _dalHandler.TanuloCsoport().GetTanulokOsztalyCSoport(_tanevId, _tanuloIds, _kategoriaTipus);
 | 
			
		||||
            return (from row in ds.Tables[0].AsEnumerable()
 | 
			
		||||
                    select new TanuloOsztalyCsoport
 | 
			
		||||
                    {
 | 
			
		||||
                        TanuloId = row.Field<int>("TanuloId"),
 | 
			
		||||
                        OsztalyCsoportId = row.Field<int>("OsztalyCsoportId"),
 | 
			
		||||
                        Id = row.Field<int>("ID"),
 | 
			
		||||
                        Kilepes = row.Field<DateTime?>("KilepesDatum"),
 | 
			
		||||
                        Belepes = row.Field<DateTime>("BelepesDatum")
 | 
			
		||||
                    }).ToList();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private DateTime GetTanevUtolsoNap()
 | 
			
		||||
        {
 | 
			
		||||
            var tanev = _dalHandler.TanevDal().Get(_tanevId);
 | 
			
		||||
            if (!tanev.UtolsoNap.HasValue)
 | 
			
		||||
            {
 | 
			
		||||
                throw new ArgumentNullException();
 | 
			
		||||
            }
 | 
			
		||||
            return tanev.UtolsoNap.Value;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private IEnumerable<BesorolasDateRange> CreateOsztalyBesorolasDateRangeList(int tanuloId, bool withCurrentOne, int? examinedOsztalyId = null)
 | 
			
		||||
        {
 | 
			
		||||
            var result = new List<BesorolasDateRange>();
 | 
			
		||||
            if (withCurrentOne)
 | 
			
		||||
            {
 | 
			
		||||
                result.Add(new BesorolasDateRange
 | 
			
		||||
                {
 | 
			
		||||
                    Begin = _actualDate,
 | 
			
		||||
                    End = _tanevUtolsoNap,
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var tanuloOsztalyai = TanulokOsztalyaiDate.Where(t => t.TanuloId == tanuloId).Concat(TanulokOsztalyaiFuture.Where(t => t.TanuloId == tanuloId));
 | 
			
		||||
            if (examinedOsztalyId.HasValue)
 | 
			
		||||
            {
 | 
			
		||||
                tanuloOsztalyai = tanuloOsztalyai.Where(o => o.OsztalyId == examinedOsztalyId);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            result.AddRange(tanuloOsztalyai.Select(o => new BesorolasDateRange
 | 
			
		||||
            {
 | 
			
		||||
                Begin = o.Belepes,
 | 
			
		||||
                End = o.Kilepes ?? _tanevUtolsoNap,
 | 
			
		||||
                OsztalyCsoportId = o.OsztalyId
 | 
			
		||||
            }));
 | 
			
		||||
 | 
			
		||||
            return result;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,171 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.ComponentModel.DataAnnotations;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using Kreta.BusinessLogic.Classes;
 | 
			
		||||
using Kreta.BusinessLogic.Helpers;
 | 
			
		||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
 | 
			
		||||
using Kreta.Core;
 | 
			
		||||
using Kreta.Core.ConnectionType;
 | 
			
		||||
using Kreta.Enums;
 | 
			
		||||
using Kreta.Resources;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class SorolasZaradek
 | 
			
		||||
    {
 | 
			
		||||
        public int? Id { get; set; }
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.Bizonyitvany), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public bool IsBizonyitvanybanMegjelenik { get; set; }
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.Bizonyitvanyban), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public string IsBizonyitvanMegjelenesString => IsBizonyitvanybanMegjelenik ? CommonResource.Igen : CommonResource.Nem;
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.Vegzaradek), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public bool IsKiVagyAtsorolasiZaradek { get; set; }
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.Vegzaradek), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public string IsVegzaradekString => IsKiVagyAtsorolasiZaradek ? CommonResource.Igen : CommonResource.Nem;
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.Naplo), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public bool IsOsztalynaplobanMegjelenik { get; set; }
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.Naploban), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public string IsNaploMegjelenesString => IsOsztalynaplobanMegjelenik ? CommonResource.Igen : CommonResource.Nem;
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.Torzslap), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public bool IsTorzslaponMegjelenik { get; set; }
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.Torzslapon), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public string IsTorzslapMegjelenesString => IsTorzslaponMegjelenik ? CommonResource.Igen : CommonResource.Nem;
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.KeltezesDatuma), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        [KretaDateRange(ErrorMessageResourceName = nameof(OsztalyCsoportResource.KeltezesDatumaNemLehetKorabbiMint_1900), ErrorMessageResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public DateTime? KeltezesDatuma { get; set; }
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.KeltezesDatuma), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public string KeltezesDatumaShortDateString => KeltezesDatuma.ToShortDateString();
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.KeltezesHelye), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        [StringLength(maximumLength: 255, ErrorMessageResourceName = nameof(OsztalyCsoportResource.KeltezesHelyeMax255Karakter), ErrorMessageResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public string KeltezesHelye { get; set; }
 | 
			
		||||
 | 
			
		||||
        public DateTime RogzitesDatuma { get; set; }
 | 
			
		||||
 | 
			
		||||
        public DateTime UtolsoModositasDatuma { get; set; }
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.RogzitesDatum), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public string RogzitesDatumaStr => RogzitesDatuma.ToString(Constants.ToStringPattern.HungarianDate);
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.UtolsoModositasDatum), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public string UtolsoModositasDatumaStr => UtolsoModositasDatuma.ToString(Constants.ToStringPattern.HungarianDate);
 | 
			
		||||
 | 
			
		||||
        public int RogzitoId { get; set; }
 | 
			
		||||
 | 
			
		||||
        public int UtolsoModositoId { get; set; }
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.UtolsoModositoNev), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public string UtolsoModositoNev { get; set; }
 | 
			
		||||
 | 
			
		||||
        [Display(Name = nameof(OsztalyCsoportResource.RogzitoNev), ResourceType = typeof(OsztalyCsoportResource))]
 | 
			
		||||
        public string RogzitoNev { get; set; }
 | 
			
		||||
 | 
			
		||||
        public int? TanuloCsoportId { get; set; }
 | 
			
		||||
 | 
			
		||||
        public List<ZaradekNyelvItem> ZaradekSzovegList { get; set; }
 | 
			
		||||
 | 
			
		||||
        public string ZaradekUrl { get; set; }
 | 
			
		||||
 | 
			
		||||
        public string ZaradekPlaceholder { get; set; }
 | 
			
		||||
 | 
			
		||||
        public bool IsOfoRogzithetEvkoziZaradekot { get; set; }
 | 
			
		||||
 | 
			
		||||
        public bool IsOfoRogzithetKiVagyAtsorolasiZaradekot { get; set; }
 | 
			
		||||
 | 
			
		||||
        public bool IsOsztalyfonok { get; set; }
 | 
			
		||||
 | 
			
		||||
        public bool IsAdministrator { get; set; }
 | 
			
		||||
 | 
			
		||||
        public bool IsZaradekKotelezo { get; set; }
 | 
			
		||||
 | 
			
		||||
        private List<int> _nemzetiDokumentumNyelvek;
 | 
			
		||||
 | 
			
		||||
        public bool IsTorolheto { get; set; }
 | 
			
		||||
 | 
			
		||||
        public SorolasZaradek() { ZaradekSzovegList = new List<ZaradekNyelvItem>(); }
 | 
			
		||||
 | 
			
		||||
        public SorolasZaradek(IConnectionType connectionType, bool pIsKiVagyAtsorolasiZaradek, string pZaradekUrl)
 | 
			
		||||
        {
 | 
			
		||||
            SetBaseData(connectionType, pIsKiVagyAtsorolasiZaradek, pZaradekUrl, null);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public SorolasZaradek(IConnectionType connectionType, bool pIsKiVagyAtsorolasiZaradek)
 | 
			
		||||
        {
 | 
			
		||||
            SetBaseData(connectionType, pIsKiVagyAtsorolasiZaradek, null, null);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public SorolasZaradek(IConnectionType connectionType, ZaradekCo zaradekCo)
 | 
			
		||||
        {
 | 
			
		||||
            SetBaseData(connectionType, zaradekCo.IsKiVagyAtsorolasiZaradek, null, null);
 | 
			
		||||
 | 
			
		||||
            Id = zaradekCo.Id;
 | 
			
		||||
            IsBizonyitvanybanMegjelenik = zaradekCo.IsBizonyitvanybanMegjelenik;
 | 
			
		||||
            IsOsztalynaplobanMegjelenik = zaradekCo.IsOsztalynaplobanMegjelenik;
 | 
			
		||||
            IsTorzslaponMegjelenik = zaradekCo.IsTorzslaponMegjelenik;
 | 
			
		||||
            KeltezesDatuma = zaradekCo.KeltezesDatuma.Value;
 | 
			
		||||
            KeltezesHelye = zaradekCo.KeltezesHelye;
 | 
			
		||||
            TanuloCsoportId = zaradekCo.TanuloCsoportId;
 | 
			
		||||
            UtolsoModositasDatuma = zaradekCo.UtolsoModositasDatuma;
 | 
			
		||||
            UtolsoModositoId = zaradekCo.UtolsoModositoId;
 | 
			
		||||
            UtolsoModositoNev = zaradekCo.UtolsoModositoNev;
 | 
			
		||||
            RogzitoNev = zaradekCo.RogzitoNev;
 | 
			
		||||
            RogzitesDatuma = zaradekCo.RogzitesDatuma;
 | 
			
		||||
            _nemzetiDokumentumNyelvek.Add((int)AnyanyelvEnum.magyar);
 | 
			
		||||
            IsTorolheto = !zaradekCo.IsKiVagyAtsorolasiZaradek || new ZaradekHelper(connectionType).IsKiVagyAtsorolasiZaradekTorolheto(zaradekCo.TanuloCsoportId.Value, zaradekCo.Id.Value);
 | 
			
		||||
            foreach (var nemzetiDokumentumNyelv in _nemzetiDokumentumNyelvek)
 | 
			
		||||
            {
 | 
			
		||||
                ZaradekSzovegList.Single(x => x.NyelvId == nemzetiDokumentumNyelv).Szoveg = zaradekCo.ZaradekSzovegList.SingleOrDefault(x => x.NyelvId == nemzetiDokumentumNyelv)?.Szoveg ?? string.Empty;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public ZaradekCo ConvertToCo()
 | 
			
		||||
        {
 | 
			
		||||
            var co = new ZaradekCo
 | 
			
		||||
            {
 | 
			
		||||
                Id = Id,
 | 
			
		||||
                TanuloCsoportId = TanuloCsoportId,
 | 
			
		||||
                IsBizonyitvanybanMegjelenik = IsBizonyitvanybanMegjelenik,
 | 
			
		||||
                IsKiVagyAtsorolasiZaradek = IsKiVagyAtsorolasiZaradek,
 | 
			
		||||
                IsOsztalynaplobanMegjelenik = IsOsztalynaplobanMegjelenik,
 | 
			
		||||
                IsTorzslaponMegjelenik = IsTorzslaponMegjelenik,
 | 
			
		||||
                KeltezesDatuma = KeltezesDatuma,
 | 
			
		||||
                KeltezesHelye = KeltezesHelye,
 | 
			
		||||
                RogzitoId = RogzitoId,
 | 
			
		||||
                UtolsoModositoId = UtolsoModositoId,
 | 
			
		||||
                ZaradekSzovegList = this.ZaradekSzovegList.Where(x => !string.IsNullOrWhiteSpace(x.Szoveg)).Select(x => new ZaradekNyelvCo { NyelvId = x.NyelvId, Szoveg = x.Szoveg.Trim() }).ToList()
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            return co;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void SetBaseData(IConnectionType connectionType, bool isKiVagyAtsorolasiZaradek, string zaradekUrl, string zaradekPlaceholder)
 | 
			
		||||
        {
 | 
			
		||||
            var systemSettingsHelper = new SystemSettingsHelper(connectionType);
 | 
			
		||||
 | 
			
		||||
            _nemzetiDokumentumNyelvek = systemSettingsHelper.GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
 | 
			
		||||
 | 
			
		||||
            ZaradekSzovegList = new List<ZaradekNyelvItem> { new ZaradekNyelvItem { NyelvId = (int)AnyanyelvEnum.magyar, Szoveg = string.Empty } };
 | 
			
		||||
            ZaradekSzovegList.AddRange(_nemzetiDokumentumNyelvek.ConvertAll(zaradekNyelv => new ZaradekNyelvItem { NyelvId = zaradekNyelv, Szoveg = string.Empty }));
 | 
			
		||||
 | 
			
		||||
            IsOfoRogzithetEvkoziZaradekot = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_zaradekat);
 | 
			
		||||
            IsOfoRogzithetKiVagyAtsorolasiZaradekot = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Osztalyfonok_kiegeszitheti_osztalyaba_jaro_tanulok_ki_vagy_atsorolsasi_zaradekat);
 | 
			
		||||
            ZaradekUrl = zaradekUrl;
 | 
			
		||||
            ZaradekPlaceholder = zaradekPlaceholder ?? OsztalyCsoportResource.ValasszaKiAZaradekot;
 | 
			
		||||
            IsKiVagyAtsorolasiZaradek = isKiVagyAtsorolasiZaradek;
 | 
			
		||||
            IsZaradekKotelezo = isKiVagyAtsorolasiZaradek;
 | 
			
		||||
            KeltezesDatuma = DateTime.Now.Date;
 | 
			
		||||
            KeltezesHelye = new IntezmenyHelper(connectionType).GetIntezmenyiAdatok().Varos;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,11 @@
 | 
			
		||||
using System;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class TanuloCsoportSorolasValidacioItemCo
 | 
			
		||||
    {
 | 
			
		||||
        public DateTime? TanuloCsoportBelepesDatum { get; set; }
 | 
			
		||||
 | 
			
		||||
        public DateTime? TanuloCsoportKilepesDatum { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,18 @@
 | 
			
		||||
using System;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class TanuloListItem
 | 
			
		||||
    {
 | 
			
		||||
        public string Nev { get; set; }
 | 
			
		||||
        public string NevElotagNelkul { get; set; }
 | 
			
		||||
        public DateTime SzuletesiDatum { get; set; }
 | 
			
		||||
        public DateTime? BesorolasDatum { get; set; }
 | 
			
		||||
        public DateTime? KisorolasDatum { get; set; }
 | 
			
		||||
        public bool Aktiv { get; set; }
 | 
			
		||||
        public string Neme { get; set; }
 | 
			
		||||
        public string Vegzaradek { get; set; }
 | 
			
		||||
        public int JogviszonyCount { get; set; }
 | 
			
		||||
        public int JogviszonyId { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,28 @@
 | 
			
		||||
using System;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public class TanuloOsztalya
 | 
			
		||||
    {
 | 
			
		||||
        public int TanuloId { get; set; }
 | 
			
		||||
        public int OsztalyId { get; set; }
 | 
			
		||||
        public DateTime? Kilepes { get; set; }
 | 
			
		||||
        public DateTime Belepes { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class TanuloOsztalyCsoport
 | 
			
		||||
    {
 | 
			
		||||
        public int Id { get; set; }
 | 
			
		||||
        public int TanuloId { get; set; }
 | 
			
		||||
        public int OsztalyCsoportId { get; set; }
 | 
			
		||||
        public DateTime? Kilepes { get; set; }
 | 
			
		||||
        public DateTime Belepes { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class ValidMethode
 | 
			
		||||
    {
 | 
			
		||||
        public bool IsValid;
 | 
			
		||||
        public string Message;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,9 @@
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class TanulokList : Dictionary<int, TanuloListItem>
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,18 @@
 | 
			
		||||
using Kreta.DataAccess.Interfaces;
 | 
			
		||||
 | 
			
		||||
namespace Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas
 | 
			
		||||
{
 | 
			
		||||
    public class ZaradekNyelvItem : IZaradekNyelv
 | 
			
		||||
    {
 | 
			
		||||
        public int NyelvId { get; set; }
 | 
			
		||||
        public string Szoveg { get; set; }
 | 
			
		||||
        public int ZaradekId { get; set; }
 | 
			
		||||
        public IZaradek Zaradek { get; set; }
 | 
			
		||||
        public int IntezmenyId { get; set; }
 | 
			
		||||
        public IIntezmeny Intezmeny { get; set; }
 | 
			
		||||
        public int TanevId { get; set; }
 | 
			
		||||
        public ITanev Tanev { get; set; }
 | 
			
		||||
        public int ID { get; set; }
 | 
			
		||||
        public bool Torolt { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user