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

126 lines
6.1 KiB
C#

using System.Collections.Generic;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.Core;
using Kreta.Enums;
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 TanuloErtekelesMondatbankItemModel : BaseTanuloErtekelesMondatbankItemModel
{
[JsonConstructor]
public TanuloErtekelesMondatbankItemModel(bool mustSetSelectListItemLists = true)
: base(mustSetSelectListItemLists)
{
}
public TanuloErtekelesMondatbankItemModel(TanuloErtekelesMondatbankItemCo co)
{
RovidNev = co.RovidNev;
Szoveg = co.Szoveg;
SetSelectListItemLists(this);
TanuloErtekelesTipusId = co.TanuloErtekelesTipusId.IsEntityId() ? co.TanuloErtekelesTipusId.Value : 0;
EvfolyamTipusId = co.EvfolyamTipusId.IsEntityId() ? co.EvfolyamTipusId.Value : 0;
SzovegNemet = co.SzovegNemet;
SzovegHorvat = co.SzovegHorvat;
SzovegRoman = co.SzovegRoman;
SzovegSzerb = co.SzovegSzerb;
switch (co.TipusId)
{
case (int)ErtMondatbankTipusEnum.Magatartas:
TantargyId = TanuloErtekelesMondatbankHelper.MagatartasTantargyId;
break;
case (int)ErtMondatbankTipusEnum.Szorgalom:
TantargyId = TanuloErtekelesMondatbankHelper.SzorgalomTantargyId;
break;
default:
TantargyId = co.TantargyId.IsEntityId() ? co.TantargyId.Value : 0;
break;
}
}
public int ID { get; set; }
[KretaRequired]
public override string Szoveg { get; set; }
[KretaRequired]
public override int? TanuloErtekelesTipusId { get; set; }
[KretaRequired]
public override int? EvfolyamTipusId { get; set; }
[KretaRequired]
public override int? TantargyId { get; set; }
public TanuloErtekelesMondatbankItemCo ToCo()
{
var result = new TanuloErtekelesMondatbankItemCo
{
Id = ID,
RovidNev = RovidNev,
Szoveg = Szoveg,
TanuloErtekelesTipusId = TanuloErtekelesTipusId.IsEntityId() ? TanuloErtekelesTipusId : (int?)null,
EvfolyamTipusId = EvfolyamTipusId.IsEntityId() ? EvfolyamTipusId : (int?)null,
TantargyId = TantargyId.IsEntityId() ? TantargyId : (int?)null,
TipusId = TanuloErtekelesMondatbankHelper.GetTanuloErtekelesMondatbankTipusIdByTantargyId(TantargyId),
SzovegNemet = SzovegNemet,
SzovegHorvat = SzovegHorvat,
SzovegRoman = SzovegRoman,
SzovegSzerb = SzovegSzerb,
};
return result;
}
public override ModelStateDictionary Validate()
{
var modelStateDictionary = new ModelStateDictionary();
if (!RovidNev.IsNullOrWhiteSpace() && RovidNev.Length > 3)
{
modelStateDictionary.AddModelError(nameof(RovidNev), ErrorResource.ARovidNevNemLehetHosszabbMint3Karakter);
}
// NOTE: kétszer kell minden szöveget dekódolni, mert először a control enkódolja, másodszor a http request
if (Szoveg.IsNullOrWhiteSpace())
{
modelStateDictionary.AddModelError(nameof(Szoveg), string.Format(CommonResource.Required, TanuloErtekelesResource.Szoveg));
}
else if (RichTextLogic.GetLegalHtmlString(System.Web.HttpUtility.HtmlDecode(System.Web.HttpUtility.HtmlDecode(Szoveg)), new List<string>()).Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(Szoveg), string.Format(ErrorResource.ASzovegNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegNemet.IsNullOrWhiteSpace() && RichTextLogic.GetLegalHtmlString(System.Web.HttpUtility.HtmlDecode(System.Web.HttpUtility.HtmlDecode(SzovegNemet)), new List<string>()).Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegNemet), string.Format(ErrorResource.ASzovegNemetNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegHorvat.IsNullOrWhiteSpace() && RichTextLogic.GetLegalHtmlString(System.Web.HttpUtility.HtmlDecode(System.Web.HttpUtility.HtmlDecode(SzovegHorvat)), new List<string>()).Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegHorvat), string.Format(ErrorResource.ASzovegHorvatNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegRoman.IsNullOrWhiteSpace() && RichTextLogic.GetLegalHtmlString(System.Web.HttpUtility.HtmlDecode(System.Web.HttpUtility.HtmlDecode(SzovegRoman)), new List<string>()).Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegRoman), string.Format(ErrorResource.ASzovegRomanNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegSzerb.IsNullOrWhiteSpace() && RichTextLogic.GetLegalHtmlString(System.Web.HttpUtility.HtmlDecode(System.Web.HttpUtility.HtmlDecode(SzovegSzerb)), new List<string>()).Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegSzerb), string.Format(ErrorResource.ASzovegSzerbNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
return modelStateDictionary;
}
}
}