117 lines
4.4 KiB
C#
117 lines
4.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Web.Http.ModelBinding;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.Enums;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.Feljegyzes.Models
|
|
{
|
|
public class FaliujsagBejegyzesModel : BaseFeljegyzesModel
|
|
{
|
|
#region Constructors
|
|
|
|
public FaliujsagBejegyzesModel()
|
|
{
|
|
}
|
|
|
|
public FaliujsagBejegyzesModel(FeljegyzesCo co)
|
|
{
|
|
Id = co.Id;
|
|
FeljegyzoId = co.FeljegyzoId;
|
|
FeljegyzoNev = co.FeljegyzoNev;
|
|
OsztalyCsoportIdList = co.OsztalyCsoportIdList;
|
|
EsemenyDatuma = co.EsemenyDatuma;
|
|
Targy = co.Targy;
|
|
Megjegyzes = co.Megjegyzes;
|
|
Tartalom = co.Tartalom;
|
|
Vege = co.Vege;
|
|
IsMindenkinek = co.IsMindenkinek;
|
|
HasAdminJogosultsag = co.HasAdminJogosultsag;
|
|
}
|
|
|
|
#endregion Constructors
|
|
|
|
#region Properties
|
|
|
|
public List<int> OsztalyCsoportIdList { get; set; } = new List<int>();
|
|
|
|
[Display(Name = nameof(FeljegyzesekResource.BejegyzesElerhetoEgeszIntezmenySzamara), ResourceType = typeof(FeljegyzesekResource))]
|
|
public bool? IsMindenkinek { get; set; }
|
|
|
|
[KretaRequired]
|
|
[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 (!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(bool isFogadoora = false)
|
|
{
|
|
var result = new FeljegyzesCo
|
|
{
|
|
Id = Id,
|
|
FeljegyzoId = FeljegyzoId,
|
|
FeljegyzoNev = null,
|
|
Kezdete = EsemenyDatuma,
|
|
IsFaliujsagMegjelenes = true,
|
|
IsMindenkinek = IsMindenkinek,
|
|
Megjegyzes = Megjegyzes,
|
|
OsztalyCsoportIdList = OsztalyCsoportIdList,
|
|
EsemenyDatuma = EsemenyDatuma,
|
|
TanitasiOraId = null,
|
|
TantargyId = null,
|
|
TanuloIdList = new List<int>(),
|
|
Targy = string.IsNullOrWhiteSpace(Targy) ? EsemenyTipusEnum.FaliujsagBejegyzes.GetDisplayName(ClaimData.SelectedTanevID.Value) : Targy,
|
|
Tartalom = Tartalom,
|
|
Tipus = (int)EsemenyTipusEnum.FaliujsagBejegyzes,
|
|
Vege = Vege
|
|
};
|
|
|
|
if (isFogadoora)
|
|
{
|
|
var now = DateTime.Now;
|
|
var newKezdetDatum = result.Vege.Value.AddDays(-7).Date.AddHours(now.Hour).AddMinutes(now.Minute);
|
|
result.Kezdete = newKezdetDatum < now ? now : newKezdetDatum;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|