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 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 _nemzetiDokumentumNyelvek; public bool IsTorolheto { get; set; } public SorolasZaradek() { ZaradekSzovegList = new List(); } 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>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek); ZaradekSzovegList = new List { new ZaradekNyelvItem { NyelvId = (int)AnyanyelvEnum.magyar, Szoveg = string.Empty } }; ZaradekSzovegList.AddRange(_nemzetiDokumentumNyelvek.ConvertAll(zaradekNyelv => new ZaradekNyelvItem { NyelvId = zaradekNyelv, Szoveg = string.Empty })); IsOfoRogzithetEvkoziZaradekot = systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_zaradekat); IsOfoRogzithetKiVagyAtsorolasiZaradekot = systemSettingsHelper.GetSystemSettingValue(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; } } }