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()).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()).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()).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()).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()).Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz) { modelStateDictionary.AddModelError(nameof(SzovegSzerb), string.Format(ErrorResource.ASzovegSzerbNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)); } return modelStateDictionary; } } }