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

94 lines
4.3 KiB
C#

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<int> NemzetiDokumentumNyelvek { get; set; } = new List<int>();
public List<int> 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;
}
}
}