using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.Resources; using Kreta.Web.Helpers; using Microsoft.Ajax.Utilities; using ModelStateDictionary = System.Web.Http.ModelBinding.ModelStateDictionary; namespace Kreta.Web.Areas.Feljegyzes.Models { public class BaseFeljegyzesModel { public int? Id { get; set; } public int? FeljegyzoId { get; set; } public bool HasAdminJogosultsag { get; set; } public List NemzetiDokumentumNyelvek { get; set; } = new List(); public List NyelvesitendoEsemenyTipuslist { get; set; } [Display(Name = nameof(FeljegyzesekResource.Tanar), ResourceType = typeof(FeljegyzesekResource))] public string FeljegyzoNev { get; set; } [KretaRequired] [Display(Name = nameof(FeljegyzesekResource.Datum), ResourceType = typeof(FeljegyzesekResource))] public DateTime? EsemenyDatuma { get; set; } [Display(Name = nameof(FeljegyzesekResource.Cim), ResourceType = typeof(FeljegyzesekResource))] [MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))] public string Targy { get; set; } [Display(Name = nameof(FeljegyzesekResource.Megjegyzes), ResourceType = typeof(FeljegyzesekResource))] [MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))] public string Megjegyzes { get; set; } [KretaRequired] [Display(Name = nameof(FeljegyzesekResource.Tartalom), ResourceType = typeof(FeljegyzesekResource))] public string Tartalom { get; set; } [Display(Name = nameof(FeljegyzesekResource.TartalomNemet), ResourceType = typeof(FeljegyzesekResource))] public string TartalomNemet { get; set; } [Display(Name = nameof(FeljegyzesekResource.TartalomHorvat), ResourceType = typeof(FeljegyzesekResource))] public string TartalomHorvat { get; set; } [Display(Name = nameof(FeljegyzesekResource.TartalomRoman), ResourceType = typeof(FeljegyzesekResource))] public string TartalomRoman { get; set; } [Display(Name = nameof(FeljegyzesekResource.TartalomSzerb), ResourceType = typeof(FeljegyzesekResource))] public string TartalomSzerb { get; set; } public DateTime? MinimumErvenyessegKezdete { get; set; } public DateTime? MaximumErvenyessegKezdete { get; set; } protected ModelStateDictionary BaseValidation() { var modelStateDictionary = new ModelStateDictionary(); if (Tartalom.IsNullOrWhiteSpace()) { modelStateDictionary.AddModelError(nameof(Tartalom), string.Format(CommonResource.Required, $"\"{FeljegyzesekResource.Tartalom}\"")); } if (Megjegyzes?.Length > 255) { modelStateDictionary.AddModelError(nameof(Tartalom), string.Format(CommonResource.MaxLengthValidation, $"\"{FeljegyzesekResource.Megjegyzes}\"", 255)); } if (!EsemenyDatuma.HasValue) { modelStateDictionary.AddModelError(nameof(EsemenyDatuma), string.Format(CommonResource.Required, $"\"{FeljegyzesekResource.Datum}\"")); } else { FeljegyzesHelperCo feljegyzesHelperCo = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFeljegyzesHelperCo(); var minimumErvenyessegKezdete = feljegyzesHelperCo.MinimumErvenyessegKezdete; var maximumErvenyessegKezdete = feljegyzesHelperCo.MaximumErvenyessegKezdete; var minOk = EsemenyDatuma >= minimumErvenyessegKezdete; var maxOk = EsemenyDatuma <= maximumErvenyessegKezdete; if (!minOk || !maxOk) { modelStateDictionary.AddModelError(nameof(EsemenyDatuma), string.Format(FeljegyzesekResource.ADatumCsakKozeEshet, minimumErvenyessegKezdete.ToString("yyyy. MM. dd."), maximumErvenyessegKezdete.ToString("yyyy. MM. dd."))); } } return modelStateDictionary; } } }