126 lines
6.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|