108 lines
4.6 KiB
C#
108 lines
4.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Linq;
|
|
using System.Web.Http.ModelBinding;
|
|
using Foolproof;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.Core;
|
|
using Kreta.Enums;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.Feljegyzes.Models
|
|
{
|
|
public class ElektronikusUzenetModel : BaseFeljegyzesModel
|
|
{
|
|
#region Properties
|
|
|
|
public List<int> TanuloIdList { get; set; } = new List<int>();
|
|
|
|
public int? OsztalyCsoportId { get; set; }
|
|
|
|
[Display(Name = nameof(FeljegyzesekResource.IsFaliujsagMegjelenes), ResourceType = typeof(FeljegyzesekResource))]
|
|
public bool? IsFaliujsagMegjelenes { get; set; }
|
|
|
|
[Display(Name = nameof(FeljegyzesekResource.IsMindenkinek), ResourceType = typeof(FeljegyzesekResource))]
|
|
public bool? IsMindenkinek { get; set; }
|
|
|
|
[RequiredIf("IsFaliujsagMegjelenes", true, ErrorMessage = "A következő mező kitöltése kötelező: \"Érvényesség vége\".")]
|
|
[Display(Name = nameof(FeljegyzesekResource.ErvenyessegVege), ResourceType = typeof(FeljegyzesekResource))]
|
|
public DateTime? Vege { get; set; }
|
|
|
|
public DateTime? MinimumErvenyessegVege { get; set; }
|
|
|
|
public DateTime? MaximumErvenyessegVege { get; set; }
|
|
|
|
#endregion Properties
|
|
|
|
public ModelStateDictionary Validate()
|
|
{
|
|
var modelStateDictionary = BaseValidation();
|
|
|
|
if (!OsztalyCsoportId.IsEntityId())
|
|
{
|
|
modelStateDictionary.AddModelError(nameof(OsztalyCsoportId), OsztalyCsoportResource.OsztalyCsoportKotelezo);
|
|
}
|
|
|
|
if (!TanuloIdList.Any())
|
|
{
|
|
modelStateDictionary.AddModelError(nameof(TanuloIdList), TanuloResource.LegalabbEgyTanuloKivalasztasaKotelezo);
|
|
}
|
|
|
|
if (IsFaliujsagMegjelenes.HasValue && IsFaliujsagMegjelenes.Value)
|
|
{
|
|
if (!Vege.HasValue)
|
|
{
|
|
modelStateDictionary.AddModelError(nameof(Vege), string.Format(CommonResource.Required, $"\"{FeljegyzesekResource.ErvenyessegVege}\""));
|
|
}
|
|
else
|
|
{
|
|
FeljegyzesHelperCo feljegyzesHelperCo = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFeljegyzesHelperCo();
|
|
var minimumErvenyessegVege = feljegyzesHelperCo.MinimumErvenyessegVege;
|
|
var maximumErvenyessegVege = feljegyzesHelperCo.MaximumErvenyessegVege;
|
|
var minOk = Vege >= minimumErvenyessegVege;
|
|
var maxOk = Vege <= maximumErvenyessegVege;
|
|
if (!minOk || !maxOk)
|
|
{
|
|
modelStateDictionary.AddModelError(nameof(Vege), string.Format(FeljegyzesekResource.AzErvenyessegVegeCsakKozeEshet, minimumErvenyessegVege.ToString("yyyy. MM. dd."), maximumErvenyessegVege.ToString("yyyy. MM. dd.")));
|
|
}
|
|
if (EsemenyDatuma.HasValue && Vege.Value < EsemenyDatuma.Value)
|
|
{
|
|
modelStateDictionary.AddModelError(nameof(Vege), FeljegyzesekResource.AzErvenyessegVegeNemLehetKisebbADatumnal);
|
|
}
|
|
}
|
|
}
|
|
|
|
return modelStateDictionary;
|
|
}
|
|
|
|
public FeljegyzesCo ToCo()
|
|
{
|
|
var result = new FeljegyzesCo
|
|
{
|
|
Id = Id,
|
|
FeljegyzoId = FeljegyzoId,
|
|
FeljegyzoNev = null,
|
|
Kezdete = IsFaliujsagMegjelenes != null && IsFaliujsagMegjelenes.Value ? EsemenyDatuma : null,
|
|
IsFaliujsagMegjelenes = IsFaliujsagMegjelenes,
|
|
IsMindenkinek = IsMindenkinek,
|
|
Megjegyzes = Megjegyzes,
|
|
//NOTE: A OsztalyCsoportId nem lehet null, ha mégis, akkor ott hibás a működés!
|
|
OsztalyCsoportIdList = new List<int> { OsztalyCsoportId.Value },
|
|
EsemenyDatuma = EsemenyDatuma,
|
|
TanitasiOraId = null,
|
|
TantargyId = null,
|
|
TanuloIdList = TanuloIdList,
|
|
Targy = string.IsNullOrWhiteSpace(Targy) ? EsemenyTipusEnum.ElektronikusUzenet.GetDisplayName(ClaimData.SelectedTanevID.Value) : Targy,
|
|
Tartalom = Tartalom,
|
|
Tipus = (int)EsemenyTipusEnum.ElektronikusUzenet,
|
|
Vege = IsFaliujsagMegjelenes != null && IsFaliujsagMegjelenes.Value ? Vege : null
|
|
};
|
|
return result;
|
|
}
|
|
}
|
|
}
|