namespace Kreta.Web.Areas.Alkalmazott.Models { using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using Kreta.BusinessLogic.HelperClasses; using Kreta.Enums; using Kreta.Resources; public class VegzettsegWizardBaseModel { public int AlkalmazottId { get; set; } public KKKepesitesTipusEnum KepesitesTipusId { get; set; } public KKVegzettsegBaseCo ToCo() { var co = new KKVegzettsegBaseCo(); co.AlkalmazottId = AlkalmazottId; co.KepesitesTipusId = KepesitesTipusId; return co; } } public abstract class VegzettsegWizardPedagogusBaseModel : VegzettsegWizardBaseModel { public KKKepesitesJellTipusEnum VegzettsegTipusId { get; private set; } public VegzettsegWizardPedagogusBaseModel(KKKepesitesJellTipusEnum vegzettsegTipusId) { KepesitesTipusId = KKKepesitesTipusEnum.Pedagogus; VegzettsegTipusId = vegzettsegTipusId; } } public class TanarVegzettsegWizardModel : VegzettsegWizardPedagogusBaseModel { public TanarVegzettsegWizardModel() : base(KKKepesitesJellTipusEnum.Tanar) { } public int? EntityId { get; set; } [Display(Name = nameof(AlkalmazottResource.Vegzettseg), ResourceType = typeof(AlkalmazottResource))] [Required(ErrorMessageResourceName = nameof(AlkalmazottResource.VegzettsegMegadasaKotelezo), ErrorMessageResourceType = typeof(AlkalmazottResource))] public int? TanariVegzettsegTipusId { get; set; } [Display(Name = nameof(AlkalmazottResource.TantargyKategoria), ResourceType = typeof(AlkalmazottResource))] public List TantargyKategoriaIds { get; set; } [Display(Name = nameof(AlkalmazottResource.Egyeb), ResourceType = typeof(AlkalmazottResource))] [StringLength(maximumLength: 255, ErrorMessageResourceName = nameof(ErrorResource.Maximum255KarakterHosszusaguLehet), ErrorMessageResourceType = typeof(ErrorResource))] public string Egyeb { get; set; } public new KKTanarVegzettsegCO ToCo() { var co = new KKTanarVegzettsegCO(); co.EntityId = EntityId; co.AlkalmazottId = AlkalmazottId; co.KepesitesTipusId = KepesitesTipusId; co.TanariVegzettsegTipusId = TanariVegzettsegTipusId; co.Egyeb = Egyeb; co.TantargyKategoriaIds = TantargyKategoriaIds; return co; } public void FromCo(KKTanarVegzettsegCO co) { EntityId = co.EntityId; AlkalmazottId = co.AlkalmazottId; KepesitesTipusId = co.KepesitesTipusId; TanariVegzettsegTipusId = co.TanariVegzettsegTipusId; Egyeb = co.Egyeb; TantargyKategoriaIds = co.TantargyKategoriaIds; } } public class AMITanarVegzettsegWizardModel : VegzettsegWizardPedagogusBaseModel, IValidatableObject { public AMITanarVegzettsegWizardModel() : base(KKKepesitesJellTipusEnum.TanarAMI) { } public int? EntityId { get; set; } [Display(Name = nameof(AlkalmazottResource.Vegzettseg), ResourceType = typeof(AlkalmazottResource))] [Required(ErrorMessageResourceName = nameof(AlkalmazottResource.VegzettsegMegadasaKotelezo), ErrorMessageResourceType = typeof(AlkalmazottResource))] public int? AMITanariVegzettsegTipusId { get; set; } [Display(Name = nameof(AlkalmazottResource.ZenemuveszetiTerulet), ResourceType = typeof(AlkalmazottResource))] public bool ZenemuveszetiTerulet { get; set; } [Display(Name = nameof(AlkalmazottResource.TancmuveszetiTerulet), ResourceType = typeof(AlkalmazottResource))] public bool TancmuveszetiTerulet { get; set; } [Display(Name = nameof(AlkalmazottResource.KepzoEsIparMuveszetiTerulet), ResourceType = typeof(AlkalmazottResource))] public bool KepzoEsIparMuveszetiTerulet { get; set; } [Display(Name = nameof(AlkalmazottResource.SzinEsBabMuveszetiTerulet), ResourceType = typeof(AlkalmazottResource))] public bool SzinEsBabMuveszetiTerulet { get; set; } [Display(Name = nameof(AlkalmazottResource.KlasszikusZene), ResourceType = typeof(AlkalmazottResource))] public List KlasszikusZeneIds { get; set; } [Display(Name = nameof(AlkalmazottResource.NepZene), ResourceType = typeof(AlkalmazottResource))] public List NepZeneIds { get; set; } [Display(Name = nameof(AlkalmazottResource.JazzZene), ResourceType = typeof(AlkalmazottResource))] public List JazzZeneIds { get; set; } [Display(Name = nameof(AlkalmazottResource.ElektroAkusztikusZene), ResourceType = typeof(AlkalmazottResource))] public List ElektroAkusztikusZeneIds { get; set; } public IEnumerable Validate(ValidationContext validationContext) { if (!(ZenemuveszetiTerulet || TancmuveszetiTerulet || KepzoEsIparMuveszetiTerulet || SzinEsBabMuveszetiTerulet)) { yield return new ValidationResult(string.Format(AlkalmazottResource.NincsMuveszetiAgMegadva)); } if (ZenemuveszetiTerulet) { if (!(KlasszikusZeneIds.Any() || NepZeneIds.Any() || JazzZeneIds.Any() || ElektroAkusztikusZeneIds.Any())) { yield return new ValidationResult(string.Format(AlkalmazottResource.NincsZeneTipusMegadva)); } } } public new KKAMITanarVegzettsegCo ToCo() { var co = new KKAMITanarVegzettsegCo(); co.EntityId = EntityId; co.AlkalmazottId = AlkalmazottId; co.KepesitesTipusId = KepesitesTipusId; co.AMITanariVegzettsegTipusId = AMITanariVegzettsegTipusId; co.ZenemuveszetiTerulet = ZenemuveszetiTerulet; co.TancmuveszetiTerulet = TancmuveszetiTerulet; co.KepzoEsIparMuveszetiTerulet = KepzoEsIparMuveszetiTerulet; co.SzinEsBabMuveszetiTerulet = SzinEsBabMuveszetiTerulet; co.KlasszikusZeneIds = KlasszikusZeneIds; co.NepZeneIds = NepZeneIds; co.JazzZeneIds = JazzZeneIds; co.ElektroAkusztikusZeneIds = ElektroAkusztikusZeneIds; return co; } public void FromCo(KKAMITanarVegzettsegCo co) { EntityId = co.EntityId; AlkalmazottId = co.AlkalmazottId; KepesitesTipusId = co.KepesitesTipusId; AMITanariVegzettsegTipusId = co.AMITanariVegzettsegTipusId; ZenemuveszetiTerulet = co.ZenemuveszetiTerulet; TancmuveszetiTerulet = co.TancmuveszetiTerulet; KepzoEsIparMuveszetiTerulet = co.KepzoEsIparMuveszetiTerulet; SzinEsBabMuveszetiTerulet = co.SzinEsBabMuveszetiTerulet; KlasszikusZeneIds = co.KlasszikusZeneIds; NepZeneIds = co.NepZeneIds; JazzZeneIds = co.JazzZeneIds; ElektroAkusztikusZeneIds = co.ElektroAkusztikusZeneIds; } } public class TanitoVegzettsegWizardModel : VegzettsegWizardPedagogusBaseModel { public TanitoVegzettsegWizardModel() : base(KKKepesitesJellTipusEnum.Tanito) { } [Display(Name = nameof(AlkalmazottResource.Terulet), ResourceType = typeof(AlkalmazottResource))] [Required(ErrorMessageResourceName = nameof(AlkalmazottResource.TeruletMegadasaKotelezo), ErrorMessageResourceType = typeof(AlkalmazottResource))] public List MuveltsegiTeruletIds { get; set; } public new KKTanitoVegzettsegCo ToCo() { var co = new KKTanitoVegzettsegCo(); co.AlkalmazottId = AlkalmazottId; co.KepesitesTipusId = KepesitesTipusId; co.MuveltsegiTeruletIds = MuveltsegiTeruletIds; return co; } public void FromCo(KKTanitoVegzettsegCo co) { AlkalmazottId = co.AlkalmazottId; KepesitesTipusId = co.KepesitesTipusId; MuveltsegiTeruletIds = co.MuveltsegiTeruletIds; } } public class GyogyPedagogusVegzettsegWizardModel : VegzettsegWizardPedagogusBaseModel { public GyogyPedagogusVegzettsegWizardModel() : base(KKKepesitesJellTipusEnum.Gyogypedagogus) { } [Display(Name = nameof(AlkalmazottResource.Terulet), ResourceType = typeof(AlkalmazottResource))] [Required(ErrorMessageResourceName = nameof(AlkalmazottResource.TeruletMegadasaKotelezo), ErrorMessageResourceType = typeof(AlkalmazottResource))] public List GyogypedagogusTeruletIds { get; set; } public new KKGyogyPedagogusVegzettsegCo ToCo() { var co = new KKGyogyPedagogusVegzettsegCo(); co.AlkalmazottId = AlkalmazottId; co.KepesitesTipusId = KepesitesTipusId; co.GyogypedagogusTeruletIds = GyogypedagogusTeruletIds; return co; } public void FromCo(KKGyogyPedagogusVegzettsegCo co) { AlkalmazottId = co.AlkalmazottId; KepesitesTipusId = co.KepesitesTipusId; GyogypedagogusTeruletIds = co.GyogypedagogusTeruletIds; } } }