kreta/KretaWeb/Areas/Alkalmazott/Models/VegzettsegWizardModel.cs
2024-03-13 00:33:46 +01:00

227 lines
9.2 KiB
C#

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<int> 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<int> KlasszikusZeneIds { get; set; }
[Display(Name = nameof(AlkalmazottResource.NepZene), ResourceType = typeof(AlkalmazottResource))]
public List<int> NepZeneIds { get; set; }
[Display(Name = nameof(AlkalmazottResource.JazzZene), ResourceType = typeof(AlkalmazottResource))]
public List<int> JazzZeneIds { get; set; }
[Display(Name = nameof(AlkalmazottResource.ElektroAkusztikusZene), ResourceType = typeof(AlkalmazottResource))]
public List<int> ElektroAkusztikusZeneIds { get; set; }
public IEnumerable<ValidationResult> 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<int> 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<int> 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;
}
}
}