using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web.Mvc; using Kreta.BusinessLogic.Helpers.DokumentumHelpers; using Kreta.Enums; using Kreta.Resources; using Kreta.Web.Areas.Adminisztracio.Helpers; using ModelStateDictionary = System.Web.Http.ModelBinding.ModelStateDictionary; namespace Kreta.Web.Areas.Adminisztracio.Models { public abstract class BaseTanuloErtekelesMondatbankItemModel { [Display(Name = nameof(TanuloErtekelesResource.ErtekelesTipus), ResourceType = typeof(TanuloErtekelesResource))] public abstract int? TanuloErtekelesTipusId { get; set; } [Display(Name = nameof(TanuloErtekelesResource.EvfolyamTipus), ResourceType = typeof(TanuloErtekelesResource))] public abstract int? EvfolyamTipusId { get; set; } [Display(Name = nameof(TanuloErtekelesResource.Tantargy), ResourceType = typeof(TanuloErtekelesResource))] public abstract int? TantargyId { get; set; } [Display(Name = nameof(TanuloErtekelesResource.Szoveg), ResourceType = typeof(TanuloErtekelesResource))] public abstract string Szoveg { get; set; } [MaxLength(3, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))] [Display(Name = nameof(TanuloErtekelesResource.RovidNev), ResourceType = typeof(TanuloErtekelesResource))] public string RovidNev { get; set; } public List TipusList { get; set; } public List EvfolyamTipusList { get; set; } public List TantargyList { get; set; } protected BaseTanuloErtekelesMondatbankItemModel(bool mustSetSelectListItemLists = true) { if (mustSetSelectListItemLists) { SetSelectListItemLists(this); } TanuloErtekelesTipusId = null; EvfolyamTipusId = null; TantargyId = null; } protected void SetSelectListItemLists(BaseTanuloErtekelesMondatbankItemModel model) { var defaultList = new List { new SelectListItem { Value = "0", Text = CommonResource.Mind } }; model.TipusList = defaultList.Union(TanuloErtekelesMondatbankWebHelper.GetTipusList()).ToList(); model.EvfolyamTipusList = defaultList.Union(TanuloErtekelesMondatbankWebHelper.GetEvfolyamTipusList()).ToList(); model.TantargyList = defaultList.Union(TanuloErtekelesMondatbankWebHelper.GetTantargyList()).ToList(); } public List NemzetiDokumentumNyelvek { get; set; } = new List(); public bool IsNyelviesitesActive => NemzetiDokumentumNyelvek.Any(); public bool IsNemetNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.nemet); public bool IsHorvatNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.horvat); public bool IsRomanNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.roman); public bool IsSzerbNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.szerb); [MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))] [Display(Name = nameof(TanuloErtekelesResource.SzovegNemet), ResourceType = typeof(TanuloErtekelesResource))] public string SzovegNemet { get; set; } [MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))] [Display(Name = nameof(TanuloErtekelesResource.SzovegHorvat), ResourceType = typeof(TanuloErtekelesResource))] public string SzovegHorvat { get; set; } [MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))] [Display(Name = nameof(TanuloErtekelesResource.SzovegRoman), ResourceType = typeof(TanuloErtekelesResource))] public string SzovegRoman { get; set; } [MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))] [Display(Name = nameof(TanuloErtekelesResource.SzovegSzerb), ResourceType = typeof(TanuloErtekelesResource))] public string SzovegSzerb { get; set; } public abstract ModelStateDictionary Validate(); } }