129 lines
6.4 KiB
C#
129 lines
6.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Web.Mvc;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Framework.Util;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.Adminisztracio.Models
|
|
{
|
|
public class HelyettesitesBevitelModel : IValidatableObject
|
|
{
|
|
public int HelyettesitesBevitelCalendarEventId { get; set; }
|
|
|
|
public int? HelyettesitesBevitelHelyettesitesId { get; set; }
|
|
|
|
public int? HelyettesitesBevitelGroupId { get; set; }
|
|
|
|
public CalendarOraTypeEnum HelyettesitesBevitelCalendarOraType { get; set; }
|
|
|
|
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
|
[Display(Name = nameof(CommonResource.Tanar), ResourceType = typeof(CommonResource))]
|
|
public int? HelyettesitesBevitelTanarId { get; set; }
|
|
|
|
[Display(Name = nameof(OrarendResource.JelenlegiHelyettesito), ResourceType = typeof(OrarendResource))]
|
|
public string HelyettesitesBevitelTanarNev { get; set; }
|
|
|
|
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
|
[Display(Name = nameof(OrarendResource.HelyettesitesTipusa), ResourceType = typeof(OrarendResource))]
|
|
public int HelyettesitesBevitelHelyettesitesTipusId { get; set; }
|
|
|
|
[Display(Name = nameof(OrarendResource.OraKezdete), ResourceType = typeof(OrarendResource))]
|
|
public DateTime HelyettesitesBevitelOraKezdeteDate { get; set; }
|
|
|
|
[Display(Name = nameof(OrarendResource.OraKezdete), ResourceType = typeof(OrarendResource))]
|
|
public string HelyettesitesBevitelOraKezdeteDateText => HelyettesitesBevitelOraKezdeteDate.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds);
|
|
|
|
[Display(Name = nameof(OrarendResource.OraVege), ResourceType = typeof(OrarendResource))]
|
|
public DateTime HelyettesitesBevitelOraVegeDate { get; set; }
|
|
|
|
[Display(Name = nameof(OrarendResource.OraVege), ResourceType = typeof(OrarendResource))]
|
|
public string HelyettesitesBevitelOraVegeDateText => HelyettesitesBevitelOraVegeDate.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds);
|
|
|
|
[MaxLength(500, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
|
[Display(Name = nameof(OrarendResource.HelyettesitesOka), ResourceType = typeof(OrarendResource))]
|
|
public string HelyettesitesBevitelHelyettesitesOka { get; set; }
|
|
|
|
public int HelyettesitesBevitelHelyettesitesGyakorisagTipus { get; set; }
|
|
|
|
public string HelyettesitesTitle { get; set; }
|
|
|
|
[Display(Name = nameof(OrarendResource.TartosHelyettesitesVege), ResourceType = typeof(OrarendResource))]
|
|
public DateTime? HelyettesitesBevitelTartosHelyettesitesVegeDate { get; set; }
|
|
|
|
public List<SelectListItem> HelyettesitesTipusList => FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.HelyettesitesTipus, ClaimData.SelectedTanevID.Value).ToSelectListItemList(selectedValue: (int)HelyettesitesTipusEnum.szakszeru_helyettesites);
|
|
|
|
public List<SelectListItem> HelyettesitesGyakorisagTipusList => EnumExtensions.EnumToDictionary<HelyettesitesGyakorisagTipusEnum>(ClaimData.SelectedTanevID.Value).ToSelectListItemList(selectedValue: (int)HelyettesitesGyakorisagTipusEnum.Egyedi);
|
|
|
|
public List<SelectListItem> HelyettesitesOsztalybanSzakosTanarList { get; set; }
|
|
|
|
public List<SelectListItem> HelyettesitesNemOsztalybanSzakosTanarList { get; set; }
|
|
|
|
public List<SelectListItem> HelyettesitesOsztalybanNemSzakosTanarList { get; set; }
|
|
|
|
public List<SelectListItem> HelyettesitesNemOsztalybanNemSzakosTanarList { get; set; }
|
|
|
|
public List<SelectListItem> OsszevonasOsztalybanSzakosTanarList { get; set; }
|
|
|
|
public List<SelectListItem> OsszevonasNemOsztalybanSzakosTanarList { get; set; }
|
|
|
|
public List<SelectListItem> OsszevonasOsztalybanNemSzakosTanarList { get; set; }
|
|
|
|
public List<SelectListItem> OsszevonasNemOsztalybanNemSzakosTanarList { get; set; }
|
|
|
|
public List<SelectListItem> FelugyeletTanarList { get; set; }
|
|
|
|
public List<SelectListItem> OsszesTanarList { get; set; }
|
|
|
|
public bool IsTulora { get; set; }
|
|
public bool IsTuloraMentes { get; set; }
|
|
|
|
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
|
{
|
|
if (HelyettesitesBevitelHelyettesitesGyakorisagTipus == (int)HelyettesitesGyakorisagTipusEnum.Tartos)
|
|
{
|
|
DateTime minimumDate;
|
|
DateTime maximumDate;
|
|
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
minimumDate = helper.GetElsoTanitasiNapDate();
|
|
if (HelyettesitesBevitelOraKezdeteDate.Date > minimumDate)
|
|
{
|
|
minimumDate = HelyettesitesBevitelOraKezdeteDate.Date;
|
|
}
|
|
|
|
maximumDate = helper.GetUtolsoTanitasiNapDate();
|
|
|
|
if (HelyettesitesBevitelTartosHelyettesitesVegeDate.HasValue)
|
|
{
|
|
var minOk = HelyettesitesBevitelTartosHelyettesitesVegeDate >= minimumDate;
|
|
var maxOk = HelyettesitesBevitelTartosHelyettesitesVegeDate <= maximumDate;
|
|
if (!minOk || !maxOk)
|
|
{
|
|
yield return new ValidationResult(string.Format(OrarendResource.ATartosHelyettesitesVegdatumaCsakKozeEshet, minimumDate.ToString(Core.Constants.ToStringPattern.HungarianDate), maximumDate.ToString(Core.Constants.ToStringPattern.HungarianDate)));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
yield return new ValidationResult(string.Format(CommonResource.Required, OrarendResource.TartosHelyettesitesVege));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public class NemMegtartottHelyettesitesBevitelModel
|
|
{
|
|
public int? HelyettesitesBevitelCalendarEventId { get; set; }
|
|
|
|
public DateTime? HelyettesitesBevitelOraKezdeteDate { get; set; }
|
|
|
|
public DateTime? HelyettesitesBevitelOraVegeDate { get; set; }
|
|
|
|
public string HelyettesitesBevitelHelyettesitesOka { get; set; }
|
|
}
|
|
}
|