using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Foolproof; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas; using Kreta.Resources; using Kreta.Web.Areas.Tanulo.Models; using Kreta.Web.Attributes; using Kreta.Web.Helpers.OsztalyCsoportSorolas; namespace Kreta.Web.Areas.OsztalyCsoport.Models { public abstract class SorolasBase : IOsztalyCsoportbaSorolasBase { public DateTime? Datum { get; set; } public int? FromDDL { get; set; } public string[] FromElements { get; set; } public int? ToDDL { get; set; } public List ToElements { get; set; } public string FromUrl { get; set; } public string FromChangeEvent { get; set; } public string FromPlaceholder { get; set; } public string ToUrl { get; set; } public string ToChangeEvent { get; set; } public string ToPlaceholder { get; set; } public string MinDatum { get; set; } public string MaxDatum { get; set; } public string GetTanulokListFromUrl { get; set; } public string GetTanulokListToUrl { get; set; } public string SaveUrl { get; set; } public DateTime TanevElsoNapja { get; set; } public string FormatedTanevElsoNapja { get { return TanevElsoNapja.ToString("yyyy. MM. dd."); } } /*Viewban kell*/ public bool EgyeniCsoportAutoLetrehozas { get; set; } public string ZenemuveszetisOsztalyokJson { get; set; } [ValidateObject] public SorolasZaradek Zaradek { get; set; } public int? SzervezetId { get; set; } public bool IsFromSzervezet { get; set; } } public abstract class KovTanevSorolasBase : SorolasBase { public bool DropKovTanevAlert { get; set; } } [MetadataType(typeof(AktTanevCsoportAtsorolasMeta))] public class AktTanevCsoportAtsorolasModel : SorolasBase { private class AktTanevCsoportAtsorolasMeta { [KretaRequired(StringResourcesId = 3827 /*Az átsorolás dátumának megadása kötelező!*/)] [KretaDisplayName(3826)] public DateTime? Datum { get; set; } [KretaRequiredIf("IsFromSzervezet", true, ErrorMessageResourceName = nameof(ErrorResource.DualisKepzohelyMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] [Display(Name = nameof(SzervezetResource.Szervezet), ResourceType = typeof(SzervezetResource))] public int? SzervezetId { get; set; } } } [MetadataType(typeof(AktTanevCsoportBesorolasMeta))] public class AktTanevCsoportBesorolasModel : SorolasBase { private class AktTanevCsoportBesorolasMeta { [Required(ErrorMessageResourceName = nameof(OsztalyCsoportResource.ABelepesdatumanakMegadasaKotelezo), ErrorMessageResourceType = typeof(OsztalyCsoportResource))] [Display(Name = nameof(OsztalyCsoportResource.BeleptetesDatuma), ResourceType = typeof(OsztalyCsoportResource))] public DateTime? Datum { get; set; } [KretaRequiredIf("IsFromSzervezet", true, ErrorMessageResourceName = nameof(ErrorResource.DualisKepzohelyMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] [Display(Name = nameof(SzervezetResource.Szervezet), ResourceType = typeof(SzervezetResource))] public int? SzervezetId { get; set; } } } [MetadataType(typeof(AktTanevCsoportKisorolasMeta))] public class AktTanevCsoportKisorolasModel : SorolasBase { private class AktTanevCsoportKisorolasMeta { [KretaRequired(StringResourcesId = 3822 /*A kisorolás dátumának megadása kötelező!*/)] [KretaDisplayName(3821)] public DateTime? Datum { get; set; } [KretaRequiredIf("IsFromSzervezet", true, ErrorMessageResourceName = nameof(ErrorResource.DualisKepzohelyMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] [Display(Name = nameof(SzervezetResource.Szervezet), ResourceType = typeof(SzervezetResource))] public int? SzervezetId { get; set; } } } [MetadataType(typeof(AktTanevCsoportTevesBesorolasJavitasMeta))] public class AktTanevCsoportTevesBesorolasJavitasModel : SorolasBase { private class AktTanevCsoportTevesBesorolasJavitasMeta { [KretaRequiredIf("IsFromSzervezet", true, ErrorMessageResourceName = nameof(ErrorResource.DualisKepzohelyMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] [Display(Name = nameof(SzervezetResource.Szervezet), ResourceType = typeof(SzervezetResource))] public int? SzervezetId { get; set; } } } [MetadataType(typeof(AktTanevOsztalyAtsorolasMeta))] public class AktTanevOsztalyAtsorolasModel : SorolasBase { private class AktTanevOsztalyAtsorolasMeta { [KretaRequired(StringResourcesId = 3827 /*Az átsorolás dátumának megadása kötelező!*/)] [KretaDisplayName(3826)] public DateTime? Datum { get; set; } } public AktTanevOsztalyAtsorolasModel() { Zaradek = new SorolasZaradek { IsZaradekKotelezo = true }; } } [MetadataType(typeof(AktTanevOsztalyBesorolasElsoAlkalomMeta))] public class AktTanevOsztalyBesorolasElsoAlkalomModel : SorolasBase { private class AktTanevOsztalyBesorolasElsoAlkalomMeta { [Required(ErrorMessageResourceName = nameof(OsztalyCsoportResource.ABelepesdatumanakMegadasaKotelezo), ErrorMessageResourceType = typeof(OsztalyCsoportResource))] [Display(Name = nameof(OsztalyCsoportResource.BeleptetesDatuma), ResourceType = typeof(OsztalyCsoportResource))] public DateTime? Datum { get; set; } [KretaDisplayName(8277)] public bool EgyeniCsoportAutoLetrehozas { get; set; } } } [MetadataType(typeof(AktTanevOsztalyKisorolasMeta))] public class AktTanevOsztalyKisorolasModel : SorolasBase { private class AktTanevOsztalyKisorolasMeta { [KretaRequired(StringResourcesId = 3822 /*A kisorolás dátumának megadása kötelező!*/)] [KretaDisplayName(3821)] public DateTime? Datum { get; set; } } [Display(Name = nameof(TanuloResource.JogviszonyVege), ResourceType = typeof(TanuloResource))] [RequiredIf(nameof(IsJogviszonyVizsgalat), true, ErrorMessageResourceName = nameof(ErrorResource.JogviszonyVegeMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] public DateTime? JogviszonyVege { get; set; } [Display(Name = nameof(TanuloResource.JogviszonyMegszunesenekJogcime), ResourceType = typeof(TanuloResource))] [RequiredIf(nameof(IsJogviszonyVizsgalat), true, ErrorMessageResourceName = nameof(ErrorResource.JogvMegszuneseJogcimTipusMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] public int? JogvMegszuneseJogcimTipusId { get; set; } public bool IsJogviszonyVizsgalat { get; set; } public JogviszonyCo ConvertModelToJogviszonyCo() => new JogviszonyCo() { JogviszonyMegszunesenekJogcimeId = JogvMegszuneseJogcimTipusId, Vege = JogviszonyVege, IsJogviszonyVizsgalat = IsJogviszonyVizsgalat }; public AktTanevOsztalyKisorolasModel() { Zaradek = new SorolasZaradek { IsZaradekKotelezo = true }; } } public class AktTanevOsztalyTevesBesorolasJavitasModel : SorolasBase { } [MetadataType(typeof(AktTanevOsztalyVisszairatkoztatasMeta))] public class AktTanevOsztalyVisszairatkoztatasModel : SorolasBase { private class AktTanevOsztalyVisszairatkoztatasMeta { [Required(ErrorMessageResourceName = nameof(OsztalyCsoportResource.ABelepesdatumanakMegadasaKotelezo), ErrorMessageResourceType = typeof(OsztalyCsoportResource))] [Display(Name = nameof(OsztalyCsoportResource.BeleptetesDatuma), ResourceType = typeof(OsztalyCsoportResource))] public DateTime? Datum { get; set; } } [Display(Name = nameof(TanuloResource.JogviszonyTipusa), ResourceType = typeof(TanuloResource))] [Required(ErrorMessageResourceName = nameof(ErrorResource.JogviszonyTipusaKitolteseKotelez), ErrorMessageResourceType = typeof(ErrorResource))] public int? JogviszonyTipusaId { get; set; } [Display(Name = nameof(TanuloResource.JogviszonyKezdete), ResourceType = typeof(TanuloResource))] [Required(ErrorMessageResourceName = nameof(ErrorResource.JogviszonyKezdeteKitolteseKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] public DateTime? JogviszonyKezdete { get; set; } [Display(Name = nameof(TanuloResource.JogviszonyKeletkezesenekJogcime), ResourceType = typeof(TanuloResource))] [Required(ErrorMessageResourceName = nameof(ErrorResource.JogviszonyKeletkezesenekJogcimeKitolteseKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] public int? JogviszonyKeletkezesenekJogcimeId { get; set; } [Display(Name = nameof(TanuloResource.Megjegyzes), ResourceType = typeof(TanuloResource))] public string Megjegyzes { get; set; } public JogviszonyCo ConvertModelToJogviszonyCo() => new JogviszonyCo() { JogviszonyKeletkezesenekJogcimeId = JogviszonyKeletkezesenekJogcimeId.Value, JogviszonyTipusId = JogviszonyTipusaId.Value, Megjegyzes = Megjegyzes, IsAktiv = true, Kezdete = JogviszonyKezdete.Value }; } public class KovTanevCsoportAtleptetesModel : KovTanevSorolasBase { } [MetadataType(typeof(KovTanevCsoportBesorolasMeta))] public class KovTanevCsoportBesorolasModel : KovTanevSorolasBase { private class KovTanevCsoportBesorolasMeta { [Required(ErrorMessageResourceName = nameof(OsztalyCsoportResource.ABelepesdatumanakMegadasaKotelezo), ErrorMessageResourceType = typeof(OsztalyCsoportResource))] [Display(Name = nameof(OsztalyCsoportResource.BeleptetesDatuma), ResourceType = typeof(OsztalyCsoportResource))] public DateTime? Datum { get; set; } } } public class KovTanevCsoportTevesBesorolasJavitasModel : KovTanevSorolasBase { } [MetadataType(typeof(KovTanevNebuloBesorolasMeta))] public class KovTanevNebuloBesorolasModel : KovTanevSorolasBase { private class KovTanevNebuloBesorolasMeta { [Required(ErrorMessageResourceName = nameof(OsztalyCsoportResource.ABelepesdatumanakMegadasaKotelezo), ErrorMessageResourceType = typeof(OsztalyCsoportResource))] [Display(Name = nameof(OsztalyCsoportResource.BeleptetesDatuma), ResourceType = typeof(OsztalyCsoportResource))] public DateTime? Datum { get; set; } } [Display(Name = nameof(OsztalyCsoportResource.Tanterv), ResourceType = typeof(OsztalyCsoportResource))] [Required(ErrorMessageResourceName = nameof(ErrorResource.TantervMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] public int? TantervId { get; set; } [Display(Name = nameof(OsztalyCsoportResource.NevelesiTerv), ResourceType = typeof(OsztalyCsoportResource))] [Required(ErrorMessageResourceName = nameof(ErrorResource.NevelesiTervMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] public int? NevelesiTervId { get { return TantervId; } set { TantervId = value; } } } [MetadataType(typeof(KovTanevOsztalyAtleptetesMeta))] public class KovTanevOsztalyAtleptetesModel : KovTanevSorolasBase { private class KovTanevOsztalyAtleptetesMeta { } public KovTanevOsztalyAtleptetesModel() { Zaradek = new SorolasZaradek { IsZaradekKotelezo = true }; } public string EgyeniCsoportLetrejonFigyelmeztetes { get; set; } public string AutoEgyeniCsoportFigyelmeztetes { get; set; } } [MetadataType(typeof(KovTanevOsztalyBesorolasElsoAlkalomMeta))] public class KovTanevOsztalyBesorolasElsoAlkalomModel : KovTanevSorolasBase { private class KovTanevOsztalyBesorolasElsoAlkalomMeta { [Required(ErrorMessageResourceName = nameof(OsztalyCsoportResource.ABelepesdatumanakMegadasaKotelezo), ErrorMessageResourceType = typeof(OsztalyCsoportResource))] [Display(Name = nameof(OsztalyCsoportResource.BeleptetesDatuma), ResourceType = typeof(OsztalyCsoportResource))] public DateTime? Datum { get; set; } [KretaDisplayName(8277)] public bool EgyeniCsoportAutoLetrehozas { get; set; } } } public class KovTanevOsztalyTevesBesorolasJavitasModel : KovTanevSorolasBase { } [MetadataType(typeof(KovTanevVisszairatkoztatasMeta))] public class KovTanevVisszairatkoztatasModel : KovTanevSorolasBase { private class KovTanevVisszairatkoztatasMeta { [Required(ErrorMessageResourceName = nameof(OsztalyCsoportResource.ABelepesdatumanakMegadasaKotelezo), ErrorMessageResourceType = typeof(OsztalyCsoportResource))] [Display(Name = nameof(OsztalyCsoportResource.BeleptetesDatuma), ResourceType = typeof(OsztalyCsoportResource))] public DateTime? Datum { get; set; } } [Display(Name = nameof(TanuloResource.JogviszonyTipusa), ResourceType = typeof(TanuloResource))] [Required(ErrorMessageResourceName = nameof(ErrorResource.JogviszonyTipusaKitolteseKotelez), ErrorMessageResourceType = typeof(ErrorResource))] public int? JogviszonyTipusaId { get; set; } [Display(Name = nameof(TanuloResource.JogviszonyKezdete), ResourceType = typeof(TanuloResource))] [Required(ErrorMessageResourceName = nameof(ErrorResource.JogviszonyKezdeteKitolteseKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] public DateTime? JogviszonyKezdete { get; set; } [Display(Name = nameof(TanuloResource.JogviszonyKeletkezesenekJogcime), ResourceType = typeof(TanuloResource))] [Required(ErrorMessageResourceName = nameof(ErrorResource.JogviszonyKeletkezesenekJogcimeKitolteseKotelezo), ErrorMessageResourceType = typeof(ErrorResource))] public int? JogviszonyKeletkezesenekJogcimeId { get; set; } [Display(Name = nameof(TanuloResource.Megjegyzes), ResourceType = typeof(TanuloResource))] public string Megjegyzes { get; set; } public JogviszonyCo ConvertModelToJogviszonyCo() => new JogviszonyCo() { JogviszonyKeletkezesenekJogcimeId = JogviszonyKeletkezesenekJogcimeId.Value, JogviszonyTipusId = JogviszonyTipusaId.Value, Megjegyzes = Megjegyzes, IsAktiv = true, Kezdete = JogviszonyKezdete.Value }; } }