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

106 lines
5 KiB
C#

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Resources;
using Microsoft.Ajax.Utilities;
using Newtonsoft.Json;
using ModelStateDictionary = System.Web.Http.ModelBinding.ModelStateDictionary;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class TanuloErtekelesMondatbankTobbesItemModel : BaseTanuloErtekelesMondatbankItemModel
{
public override string Szoveg { get; set; }
public override int? TanuloErtekelesTipusId { get; set; }
public override int? EvfolyamTipusId { get; set; }
public override int? TantargyId { get; set; }
public List<int> SelectedIdList { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.RovidNevModositasa), ResourceType = typeof(TanuloErtekelesResource))]
public bool RovidNevEnabled { get; set; }
public string SelectedIdListJson
{
get => SelectedIdList == null ? string.Empty : JsonConvert.SerializeObject(SelectedIdList);
set => SelectedIdList = JsonConvert.DeserializeObject<List<int>>(value);
}
[JsonConstructor]
public TanuloErtekelesMondatbankTobbesItemModel(bool mustSetSelectListItemLists = true)
: base(mustSetSelectListItemLists)
{
RovidNevEnabled = false;
SelectedIdList = new List<int>();
}
public TanuloErtekelesMondatbankTobbesItemCo ToCo()
{
var result = new TanuloErtekelesMondatbankTobbesItemCo
{
SelectedIdList = SelectedIdList,
RovidNev = RovidNevEnabled ? string.IsNullOrWhiteSpace(RovidNev) ? "sz" : RovidNev : null,
Szoveg = !string.IsNullOrWhiteSpace(Szoveg) ? Szoveg : null,
TanuloErtekelesTipusId = TanuloErtekelesTipusId,
EvfolyamTipusId = EvfolyamTipusId,
TantargyId = TantargyId,
TipusId = TanuloErtekelesMondatbankHelper.GetTanuloErtekelesMondatbankTipusIdByTantargyId(TantargyId),
SzovegNemet = !string.IsNullOrWhiteSpace(SzovegNemet) ? SzovegNemet : null,
SzovegHorvat = !string.IsNullOrWhiteSpace(SzovegHorvat) ? SzovegHorvat : null,
SzovegRoman = !string.IsNullOrWhiteSpace(SzovegRoman) ? SzovegRoman : null,
SzovegSzerb = !string.IsNullOrWhiteSpace(SzovegSzerb) ? SzovegSzerb : null,
};
return result;
}
public override ModelStateDictionary Validate()
{
var modelStateDictionary = new ModelStateDictionary();
if (TanuloErtekelesTipusId == null
&& EvfolyamTipusId == null
&& TantargyId == null
&& string.IsNullOrWhiteSpace(Szoveg)
&& (!RovidNevEnabled || string.IsNullOrWhiteSpace(RovidNev)))
{
modelStateDictionary.AddModelError(string.Empty, ErrorResource.NincsMegadvaModositandoAdat);
}
if (!RovidNev.IsNullOrWhiteSpace() && RovidNev.Length > 3)
{
modelStateDictionary.AddModelError(nameof(RovidNev), ErrorResource.ARovidNevNemLehetHosszabbMint3Karakter);
}
if (!Szoveg.IsNullOrWhiteSpace() && Szoveg.Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(Szoveg), string.Format(ErrorResource.ASzovegNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegNemet.IsNullOrWhiteSpace() && SzovegNemet.Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegNemet), string.Format(ErrorResource.ASzovegNemetNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegHorvat.IsNullOrWhiteSpace() && SzovegHorvat.Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegHorvat), string.Format(ErrorResource.ASzovegHorvatNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegRoman.IsNullOrWhiteSpace() && SzovegRoman.Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegRoman), string.Format(ErrorResource.ASzovegRomanNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegSzerb.IsNullOrWhiteSpace() && SzovegSzerb.Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegSzerb), string.Format(ErrorResource.ASzovegSzerbNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
return modelStateDictionary;
}
}
}