502 lines
25 KiB
C#
502 lines
25 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text.RegularExpressions;
|
|
using System.Web.Http.ModelBinding;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.Core;
|
|
using Kreta.Enums;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Models.EditorTemplates;
|
|
using Kreta.Web.Security;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Kreta.Web.Areas.Intezmeny.Models
|
|
{
|
|
public class TeremModel : TabStripModel
|
|
{
|
|
public TeremModel()
|
|
{
|
|
TeremAlapadatokModel = new TeremAlapadatokModel();
|
|
TeremBerbeadasModel = new TeremBerbeadasModel();
|
|
}
|
|
|
|
public int? TeremId { get; set; }
|
|
|
|
public TeremAlapadatokModel TeremAlapadatokModel { get; set; }
|
|
|
|
public TeremBerbeadasModel TeremBerbeadasModel { get; set; }
|
|
|
|
public static TeremCO ConvertModelToCO(TeremModel teremModel)
|
|
{
|
|
var teremCo = new TeremCO()
|
|
{
|
|
Aktiv = teremModel.TeremAlapadatokModel.Aktiv,
|
|
TeremId = teremModel.TeremId,
|
|
Jelleg = teremModel.TeremAlapadatokModel.IsFromSzervezet ? (int)TeremTipusEnum.dualis_helyszin : teremModel.TeremAlapadatokModel.Jelleg,
|
|
Kapacitas = teremModel.TeremAlapadatokModel.Kapacitas,
|
|
MukodesiHelyID = teremModel.TeremAlapadatokModel.MukodesiHelyID,
|
|
MukodesiHelyNev = teremModel.TeremAlapadatokModel.MukodesiHelyNev,
|
|
Nev = teremModel.TeremAlapadatokModel.Nev,
|
|
Terulet = teremModel.TeremAlapadatokModel.Terulet,
|
|
TobbOratLehetTartani = teremModel.TeremAlapadatokModel.TobbOratLehetTartani,
|
|
TeremFelelosID = teremModel.TeremAlapadatokModel.Teremfelelos,
|
|
Vizsgakapacitas = teremModel.TeremAlapadatokModel.VizsgaKapacitas,
|
|
WifiLefedett = teremModel.TeremAlapadatokModel.WifiLefedett,
|
|
Megjegyzes = teremModel.TeremAlapadatokModel.Megjegyzes,
|
|
IsInternetkapcsolatElerheto = teremModel.TeremAlapadatokModel.IsInternetkapcsolatElerheto,
|
|
TanulokSzamaraHozzaferhInternetesgep = teremModel.TeremAlapadatokModel.TanulokSzamaraHozzaferhInternetesgep,
|
|
PedagogusHozzaferhInternetesgep = teremModel.TeremAlapadatokModel.PedagogusHozzaferhInternetesgep,
|
|
OktCelraHasznaltSzamitogepekSzama = teremModel.TeremAlapadatokModel.OktCelraHasznaltSzamitogepekSzama,
|
|
IsInterakttablavalMunkaallomassalFelszerelt = teremModel.TeremAlapadatokModel.IsInterakttablavalMunkaallomassalFelszerelt,
|
|
|
|
Berbeadhato = teremModel.TeremBerbeadasModel.Berbeadhato,
|
|
Ar = teremModel.TeremBerbeadasModel.Ar,
|
|
Leiras = teremModel.TeremBerbeadasModel.Leiras,
|
|
FoglalhatoIdoszakKezdete = teremModel.TeremBerbeadasModel.FoglalhatoIdoszakKezdete,
|
|
FoglalhatoIdoszakVege = teremModel.TeremBerbeadasModel.FoglalhatoIdoszakVege,
|
|
TulajdonTipusaId = teremModel.TeremBerbeadasModel.TulajdonTipusaId,
|
|
EmeltAr = teremModel.TeremBerbeadasModel.EmeltAr,
|
|
EmeltIdoszakKezdete = teremModel.TeremBerbeadasModel.EmeltIdoszakKezdete,
|
|
SzervezetId = teremModel.TeremAlapadatokModel.SzervezetId,
|
|
};
|
|
|
|
if (teremModel.TeremBerbeadasModel.TeremBerbeadasIdopontokListModel != null && teremModel.TeremBerbeadasModel.TeremBerbeadasIdopontokListModel.Count > 0)
|
|
{
|
|
teremCo.TeremBerbeadasIdopontokCOList = TeremBerbeadasIdopontokModel.ConvertModelToCO(teremModel.TeremBerbeadasModel.TeremBerbeadasIdopontokListModel);
|
|
}
|
|
|
|
return teremCo;
|
|
}
|
|
|
|
public static TeremModel ConvertCoToModel(TeremCO teremCO)
|
|
=> new TeremModel()
|
|
{
|
|
TeremId = teremCO.TeremId,
|
|
TeremAlapadatokModel = new TeremAlapadatokModel
|
|
{
|
|
Aktiv = teremCO.Aktiv,
|
|
Jelleg = teremCO.Jelleg,
|
|
Kapacitas = teremCO.Kapacitas,
|
|
MukodesiHelyID = teremCO.MukodesiHelyID,
|
|
MukodesiHelyNev = teremCO.MukodesiHelyNev,
|
|
Nev = teremCO.Nev,
|
|
Terulet = teremCO.Terulet,
|
|
TobbOratLehetTartani = teremCO.TobbOratLehetTartani,
|
|
Teremfelelos = teremCO.TeremFelelosID,
|
|
TeremfelelosNev = teremCO.TeremFelelos,
|
|
VizsgaKapacitas = teremCO.Vizsgakapacitas,
|
|
WifiLefedett = teremCO.WifiLefedett,
|
|
Megjegyzes = teremCO.Megjegyzes,
|
|
IsInternetkapcsolatElerheto = teremCO.IsInternetkapcsolatElerheto,
|
|
TanulokSzamaraHozzaferhInternetesgep = teremCO.TanulokSzamaraHozzaferhInternetesgep,
|
|
PedagogusHozzaferhInternetesgep = teremCO.PedagogusHozzaferhInternetesgep,
|
|
OktCelraHasznaltSzamitogepekSzama = teremCO.OktCelraHasznaltSzamitogepekSzama,
|
|
IsInterakttablavalMunkaallomassalFelszerelt = teremCO.IsInterakttablavalMunkaallomassalFelszerelt,
|
|
SzervezetId = teremCO.SzervezetId,
|
|
},
|
|
TeremBerbeadasModel = TeremBerbeadasModel.ConvertCoToModel(teremCO),
|
|
};
|
|
|
|
public static void ValidateModel(TeremModel teremModel, List<string> kapcsolodoOraTipusok, ModelStateDictionary modelState)
|
|
{
|
|
if (!teremModel.TeremAlapadatokModel.IsFromSzervezet)
|
|
{
|
|
TeremAlapadatokModel.ValidateModel(teremModel.TeremAlapadatokModel, modelState);
|
|
}
|
|
|
|
if (!teremModel.TeremAlapadatokModel.Aktiv && kapcsolodoOraTipusok.Any())
|
|
{
|
|
modelState.AddModelError("TeremAlapadatokModel.Aktiv", $"{ErrorResource.AzAlabbiKapcsolodasokMiattATeremInaktivvaTeteleNemLehetseges}{(string.Join(", ", kapcsolodoOraTipusok))}");
|
|
}
|
|
|
|
if (teremModel.TeremBerbeadasModel.Berbeadhato)
|
|
{
|
|
if (!teremModel.TeremAlapadatokModel.Terulet.HasValue)
|
|
{
|
|
modelState.AddModelError("TeremAlapadatokModel.Terulet", ErrorResource.AlapteruletMegadasaKotelezoHaATeremBerbeadhato);
|
|
}
|
|
|
|
if (!ClaimData.IsSelectedTanev21_22OrLater || !ClaimData.IsSzakkepzoIntezmeny)
|
|
{
|
|
if (!teremModel.TeremAlapadatokModel.Kapacitas.HasValue)
|
|
{
|
|
modelState.AddModelError("TeremAlapadatokModel.Kapacitas", ErrorResource.BefogadokepessegMegadasaKotelezoHaATeremBerbeadhatoas);
|
|
}
|
|
}
|
|
|
|
TeremBerbeadasModel.ValidateModel(teremModel.TeremBerbeadasModel, modelState);
|
|
}
|
|
|
|
if (ClaimData.IsSelectedTanev21_22OrLater && ClaimData.IsSzakkepzoIntezmeny)
|
|
{
|
|
if (teremModel.TeremAlapadatokModel.IsFromSzervezet)
|
|
{
|
|
if (!teremModel.TeremAlapadatokModel.SzervezetId.IsEntityId())
|
|
{
|
|
modelState.AddModelError("TeremAlapadatokModel_SzervezetId", ErrorResource.SzervezetKivalasztasaKotelezo);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!teremModel.TeremAlapadatokModel.IsFromSzervezet)
|
|
{
|
|
if (!teremModel.TeremAlapadatokModel.MukodesiHelyID.HasValue)
|
|
{
|
|
modelState.AddModelError("TeremAlapadatokModel_MukodesiHelyID", IntezmenyResource.MukodesiHelyMegadasaKotelezo);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public class TeremAlapadatokModel
|
|
{
|
|
public TeremAlapadatokModel()
|
|
{
|
|
Aktiv = true;
|
|
TobbOratLehetTartani = false;
|
|
}
|
|
|
|
[Display(Name = nameof(IntezmenyResource.HelyisegNev), ResourceType = typeof(IntezmenyResource))]
|
|
[Required(ErrorMessageResourceName = nameof(IntezmenyResource.HelyisegNevMegadasaKotelezo), ErrorMessageResourceType = typeof(IntezmenyResource))]
|
|
[StringLength(maximumLength: 255, ErrorMessageResourceName = nameof(ErrorResource.Max255Karakter), ErrorMessageResourceType = typeof(ErrorResource))]
|
|
public string Nev { get; set; }
|
|
|
|
[KretaRequiredIf("IsFromSzervezet", false, ErrorMessageResourceName = nameof(IntezmenyResource.JellegMegadasaKotelezo), ErrorMessageResourceType = typeof(IntezmenyResource))]
|
|
[Display(Name = nameof(IntezmenyResource.HelyisegJelleg), ResourceType = typeof(IntezmenyResource))]
|
|
public int? Jelleg { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.HelyisegJelleg), ResourceType = typeof(IntezmenyResource))]
|
|
public string JellegNev { get { return Jelleg.HasValue ? Jelleg.Value.GetDisplayName<TeremTipusEnum>(ClaimData.SelectedTanevID.Value) : ""; } }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.Alapterulet_nm), ResourceType = typeof(IntezmenyResource))]
|
|
[Range(1, 9999, ErrorMessageResourceName = nameof(IntezmenyResource.Alapterulet1Tol9999), ErrorMessageResourceType = typeof(IntezmenyResource))]
|
|
public int? Terulet { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.Befogadokepesseg), ResourceType = typeof(IntezmenyResource))]
|
|
[Range(0, 5000, ErrorMessageResourceName = nameof(IntezmenyResource.BefogadoKepessegeg0tol5000), ErrorMessageResourceType = typeof(IntezmenyResource))]
|
|
public int? Kapacitas { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.VizsgaBefogadokepesseg), ResourceType = typeof(IntezmenyResource))]
|
|
[Range(0, 5000, ErrorMessageResourceName = nameof(IntezmenyResource.VizsgaBefogadoKepesseg0Tol5000), ErrorMessageResourceType = typeof(IntezmenyResource))]
|
|
public int? VizsgaKapacitas { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.Aktiv), ResourceType = typeof(IntezmenyResource))]
|
|
public bool Aktiv { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.Aktiv), ResourceType = typeof(IntezmenyResource))]
|
|
public string AktivSzoveg { get { return Aktiv ? CommonResource.Igen : CommonResource.Nem; } }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.MukodesiHely), ResourceType = typeof(IntezmenyResource))]
|
|
public int? MukodesiHelyID { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.MukodesiHely), ResourceType = typeof(IntezmenyResource))]
|
|
public string MukodesiHelyNev { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.Teremfelelos), ResourceType = typeof(IntezmenyResource))]
|
|
public int? Teremfelelos { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.Teremfelelos), ResourceType = typeof(IntezmenyResource))]
|
|
public string TeremfelelosNev { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.EgyszerreTobbOratLehetTartani), ResourceType = typeof(IntezmenyResource))]
|
|
public bool TobbOratLehetTartani { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.EgyszerreTobbOratLehetTartani), ResourceType = typeof(IntezmenyResource))]
|
|
public string TobbOratLehetTartaniSzoveg { get { return TobbOratLehetTartani ? CommonResource.Igen : CommonResource.Nem; } }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.WifiElerheto), ResourceType = typeof(IntezmenyResource))]
|
|
public bool WifiLefedett { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.WifiElerheto), ResourceType = typeof(IntezmenyResource))]
|
|
public string WifiLefedettSzoveg { get { return WifiLefedett ? CommonResource.Igen : CommonResource.Nem; } }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.IsInternetkapcsolatElerheto), ResourceType = typeof(IntezmenyResource))]
|
|
public bool IsInternetkapcsolatElerheto { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.IsInternetkapcsolatElerheto), ResourceType = typeof(IntezmenyResource))]
|
|
public string IsInternetkapcsolatElerhetoSzoveg { get { return IsInternetkapcsolatElerheto ? CommonResource.Igen : CommonResource.Nem; } }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.TanulokSzamaraHozzaferhInternetesgep), ResourceType = typeof(IntezmenyResource))]
|
|
public int? TanulokSzamaraHozzaferhInternetesgep { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.PedagogusHozzaferhInternetesgep), ResourceType = typeof(IntezmenyResource))]
|
|
public int? PedagogusHozzaferhInternetesgep { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.OktCelraHasznaltSzamitogepekSzama), ResourceType = typeof(IntezmenyResource))]
|
|
public int? OktCelraHasznaltSzamitogepekSzama { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.IsInterakttablavalMunkaallomassalFelszerelt), ResourceType = typeof(IntezmenyResource))]
|
|
public bool IsInterakttablavalMunkaallomassalFelszerelt { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.IsInterakttablavalMunkaallomassalFelszerelt), ResourceType = typeof(IntezmenyResource))]
|
|
public string IsInterakttablavalMunkaallomassalFelszereltSzoveg { get { return IsInterakttablavalMunkaallomassalFelszerelt ? CommonResource.Igen : CommonResource.Nem; } }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.Megjegyzes), ResourceType = typeof(IntezmenyResource))]
|
|
[StringLength(maximumLength: 500, ErrorMessageResourceName = nameof(ErrorResource.Max500Karakter), ErrorMessageResourceType = typeof(ErrorResource))]
|
|
public string Megjegyzes { get; set; }
|
|
|
|
[Display(Name = nameof(SzervezetResource.Szervezet), ResourceType = typeof(SzervezetResource))]
|
|
public int? SzervezetId { get; set; }
|
|
public bool IsFromSzervezet { get; set; }
|
|
|
|
|
|
public static void ValidateModel(TeremAlapadatokModel teremAlapadatokModel, ModelStateDictionary modelState)
|
|
{
|
|
if (ClaimData.IsSelectedTanev21_22OrLater && ClaimData.IsSzakkepzoIntezmeny)
|
|
{
|
|
if (!teremAlapadatokModel.Kapacitas.HasValue)
|
|
{
|
|
modelState.AddModelError("TeremAlapadatokModel.Kapacitas", ErrorResource.BefogadokepessegMegadasaKotelezo);
|
|
}
|
|
|
|
if (teremAlapadatokModel.IsInternetkapcsolatElerheto)
|
|
{
|
|
if (!teremAlapadatokModel.TanulokSzamaraHozzaferhInternetesgep.HasValue)
|
|
{
|
|
modelState.AddModelError("TeremAlapadatokModel.TanulokSzamaraHozzaferhInternetesgep", IntezmenyResource.TanulokSzamaraHozzaferhInternetesgepKotelezo);
|
|
}
|
|
|
|
if (!teremAlapadatokModel.PedagogusHozzaferhInternetesgep.HasValue)
|
|
{
|
|
modelState.AddModelError("TeremAlapadatokModel.PedagogusHozzaferhInternetesgep", IntezmenyResource.PedagogusHozzaferhInternetesgepKotelezo);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (teremAlapadatokModel.Kapacitas.HasValue && teremAlapadatokModel.Kapacitas < 1)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.ATeremKapacitasaNemLehetKisebbMintEgy);
|
|
}
|
|
}
|
|
|
|
if (teremAlapadatokModel.VizsgaKapacitas > teremAlapadatokModel.Kapacitas)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AVizsgaBefogadokepessegNemLehetNagyobbMintABefogadokepesseg);
|
|
}
|
|
}
|
|
}
|
|
|
|
public class UploadedFile
|
|
{
|
|
public string ContentAsBase64EncodedString { get; set; }
|
|
|
|
public string Name { get; set; }
|
|
}
|
|
|
|
public class TeremBerbeadasModel
|
|
{
|
|
[Display(Name = nameof(IntezmenyResource.Berbeadhato), ResourceType = typeof(IntezmenyResource))]
|
|
public bool Berbeadhato { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.Berbeadhato), ResourceType = typeof(IntezmenyResource))]
|
|
public string BerbeadhatoSzoveg => Berbeadhato.GetDisplayName();
|
|
|
|
[Display(Name = nameof(IntezmenyResource.Ar), ResourceType = typeof(IntezmenyResource))]
|
|
public int? Ar { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.Leiras), ResourceType = typeof(IntezmenyResource))]
|
|
[MaxLength(2000, ErrorMessageResourceName = nameof(ErrorResource.ALeirasSzovegeNemLehet2000KarakternelHosszabb), ErrorMessageResourceType = typeof(ErrorResource))]
|
|
public string Leiras { get; set; }
|
|
|
|
public int? PictureId { get; set; }
|
|
|
|
public List<UploadedFile> PictureList { get; set; }
|
|
|
|
public int? DocumentId { get; set; }
|
|
|
|
public List<UploadedFile> Document { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.FoglalhatoIdoszakKezdete), ResourceType = typeof(IntezmenyResource))]
|
|
public DateTime? FoglalhatoIdoszakKezdete { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.FoglalhatoIdoszakKezdete), ResourceType = typeof(IntezmenyResource))]
|
|
public string FoglalhatoIdoszakKezdete_Text => FoglalhatoIdoszakKezdete.HasValue ? SDAFormat.GetShortDateFormat(FoglalhatoIdoszakKezdete.Value) : "-";
|
|
|
|
[Display(Name = nameof(IntezmenyResource.FoglalhatoIdoszakVege), ResourceType = typeof(IntezmenyResource))]
|
|
public DateTime? FoglalhatoIdoszakVege { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.FoglalhatoIdoszakVege), ResourceType = typeof(IntezmenyResource))]
|
|
public string FoglalhatoIdoszakVege_Text => FoglalhatoIdoszakVege.HasValue ? SDAFormat.GetShortDateFormat(FoglalhatoIdoszakVege.Value) : "-";
|
|
|
|
public List<TeremBerbeadasIdopontokModel> TeremBerbeadasIdopontokListModel { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.TulajdonTipusa), ResourceType = typeof(IntezmenyResource))]
|
|
public int? TulajdonTipusaId { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.EmeltAr), ResourceType = typeof(IntezmenyResource))]
|
|
public int? EmeltAr { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.EmeltIdoszakKezdete), ResourceType = typeof(IntezmenyResource))]
|
|
public DateTime? EmeltIdoszakKezdete { get; set; }
|
|
|
|
[Display(Name = nameof(IntezmenyResource.EmeltIdoszakKezdete), ResourceType = typeof(IntezmenyResource))]
|
|
public string EmeltIdoszakKezdete_Text => EmeltIdoszakKezdete.HasValue ? SDAFormat.GetShortTimeFormat(EmeltIdoszakKezdete.Value) : "-";
|
|
|
|
public static void ValidateModel(TeremBerbeadasModel teremBerbeadasModel, ModelStateDictionary modelState)
|
|
{
|
|
if (!teremBerbeadasModel.Ar.HasValue)
|
|
{
|
|
modelState.AddModelError("ArError", ErrorResource.AzArMegadasaKotelezo);
|
|
}
|
|
else if (teremBerbeadasModel.Ar.Value <= 0)
|
|
{
|
|
modelState.AddModelError("ArNumberError", ErrorResource.ABerbeadasiListaarNagyobbKellLegyenMint0Ft);
|
|
}
|
|
|
|
if (!teremBerbeadasModel.TulajdonTipusaId.HasValue)
|
|
{
|
|
modelState.AddModelError("TulajdonTipusaIdError", ErrorResource.TulajdonTipusaKotelezo);
|
|
}
|
|
|
|
if (teremBerbeadasModel.EmeltIdoszakKezdete.HasValue)
|
|
{
|
|
if (!teremBerbeadasModel.EmeltAr.HasValue)
|
|
{
|
|
modelState.AddModelError("EmeltArError", ErrorResource.AzEmeltArMegadasaKotelezo);
|
|
}
|
|
else if (teremBerbeadasModel.EmeltAr.Value <= 0)
|
|
{
|
|
modelState.AddModelError("EmeltArNumberError", ErrorResource.ABerbeadasiEmeltArNagyobbKellLegyenMint0Ft);
|
|
}
|
|
}
|
|
|
|
if (teremBerbeadasModel.EmeltAr.HasValue)
|
|
{
|
|
if (!teremBerbeadasModel.EmeltIdoszakKezdete.HasValue)
|
|
{
|
|
modelState.AddModelError("EmeltIdoszakKezdeteError", ErrorResource.AzEmeltIdoszakKezdeteMegadasaKotelezo);
|
|
}
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(teremBerbeadasModel.Leiras))
|
|
{
|
|
modelState.AddModelError("LeirasError", ErrorResource.LeirasMegadasaKotelezo);
|
|
}
|
|
|
|
if (!(teremBerbeadasModel.PictureList?.Count > 0) && !teremBerbeadasModel.PictureId.HasValue)
|
|
{
|
|
modelState.AddModelError("FotoError", ErrorResource.KepFeltolteseKotelezo);
|
|
}
|
|
|
|
if (!teremBerbeadasModel.FoglalhatoIdoszakKezdete.HasValue)
|
|
{
|
|
modelState.AddModelError("FoglalhatoIdoszakKezdeteNagyobbError", ErrorResource.AFoglalhatoIdoszakKezdetetKotelezoMegadni);
|
|
}
|
|
else
|
|
{
|
|
if (teremBerbeadasModel.FoglalhatoIdoszakKezdete.Value < new DateTime(2021, 1, 1))
|
|
{
|
|
modelState.AddModelError("FoglalhatoIdoszakKezdeteError", ErrorResource.FoglalhatosagKezdeteNemLehetElobbMint20210101);
|
|
}
|
|
}
|
|
|
|
if (teremBerbeadasModel.FoglalhatoIdoszakVege.HasValue)
|
|
{
|
|
if (teremBerbeadasModel.FoglalhatoIdoszakKezdete > teremBerbeadasModel.FoglalhatoIdoszakVege)
|
|
{
|
|
modelState.AddModelError("FoglalhatoIdoszakKezdeteNagyobbError", ErrorResource.AFoglalhatoIdoszakKezdeteNemLehetNagyobbMintAVege);
|
|
}
|
|
|
|
if (teremBerbeadasModel.FoglalhatoIdoszakVege.Value < new DateTime(2021, 1, 1))
|
|
{
|
|
modelState.AddModelError("FoglalhatoIdoszakVegeError", ErrorResource.FoglalhatosagVegeNemLehetElobbMint20210101);
|
|
}
|
|
}
|
|
|
|
if (teremBerbeadasModel.TeremBerbeadasIdopontokListModel != null && teremBerbeadasModel.TeremBerbeadasIdopontokListModel.Count > 0)
|
|
{
|
|
TeremBerbeadasIdopontokModel.ValidateModel(teremBerbeadasModel.TeremBerbeadasIdopontokListModel, modelState);
|
|
}
|
|
else
|
|
{
|
|
modelState.AddModelError("LegalabbEgyIdointervallumotKotelezoValasztani", ErrorResource.LegalabbEgyIdointervallumotKotelezoValasztani);
|
|
}
|
|
}
|
|
|
|
public static TeremBerbeadasModel ConvertCoToModel(TeremCO teremCO)
|
|
{
|
|
var teremBerbeadasModel = new TeremBerbeadasModel()
|
|
{
|
|
Berbeadhato = teremCO.Berbeadhato,
|
|
Ar = teremCO.Ar,
|
|
Leiras = teremCO.Leiras,
|
|
FoglalhatoIdoszakKezdete = teremCO.FoglalhatoIdoszakKezdete,
|
|
FoglalhatoIdoszakVege = teremCO.FoglalhatoIdoszakVege,
|
|
DocumentId = teremCO.DokumentumId,
|
|
PictureId = teremCO.KepId,
|
|
TulajdonTipusaId = teremCO.TulajdonTipusaId.HasValue ? teremCO.TulajdonTipusaId : (int)TulajdonTipusEnum.allami_tulajdonban_levo_ingatlan,
|
|
EmeltAr = teremCO.EmeltAr,
|
|
EmeltIdoszakKezdete = teremCO.EmeltIdoszakKezdete
|
|
};
|
|
|
|
return teremBerbeadasModel;
|
|
}
|
|
}
|
|
|
|
public class TeremBerbeadasIdopontokModel
|
|
{
|
|
public int HetNapjaId { get; set; }
|
|
|
|
public int? TeremElerhetosegId { get; set; }
|
|
|
|
public string Kezdete { get; set; }
|
|
|
|
public string Vege { get; set; }
|
|
|
|
public static void ValidateModel(List<TeremBerbeadasIdopontokModel> teremBerbeadasIdopontokModelList, ModelStateDictionary modelState)
|
|
{
|
|
foreach (var item in teremBerbeadasIdopontokModelList)
|
|
{
|
|
var regex = new Regex(Core.Constants.RegularExpressions.TimePicker);
|
|
|
|
if (string.IsNullOrWhiteSpace(item.Kezdete) || string.IsNullOrWhiteSpace(item.Vege) || !regex.IsMatch(item.Kezdete) || !regex.IsMatch(item.Vege))
|
|
{
|
|
modelState.AddModelError("TeremBerbeadasIdopontokFormatKotelezoError", ErrorResource.HibasFormatumAzOrakKezdetetEsVegetOoppAlakbanKellMegadni);
|
|
break;
|
|
}
|
|
|
|
string[] oraPerc = item.Kezdete.Split(':');
|
|
var kezdete = DateTime.Today.AddHours(Convert.ToInt32(oraPerc[0])).AddMinutes(Convert.ToInt32(oraPerc[1]));
|
|
|
|
oraPerc = item.Vege.Split(':');
|
|
var vege = DateTime.Today.AddHours(Convert.ToInt32(oraPerc[0])).AddMinutes(Convert.ToInt32(oraPerc[1]));
|
|
|
|
if (kezdete > vege)
|
|
{
|
|
modelState.AddModelError("TeremBerbeadasIdopontokKesobbError", ErrorResource.ATeremBerbeadasIdopontjainakKezdeteNemLehetKesobbMintAVege);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static List<TeremBerbeadasIdopontokCO> ConvertModelToCO(List<TeremBerbeadasIdopontokModel> teremBerbeadasIdopontokModels)
|
|
{
|
|
var teremBerbeadasIdopontokCOList = new List<TeremBerbeadasIdopontokCO>();
|
|
|
|
teremBerbeadasIdopontokModels.ForEach(item =>
|
|
{
|
|
var teremBerbeadasIdopontokCO = new TeremBerbeadasIdopontokCO
|
|
{
|
|
TeremElerhetosegId = item.TeremElerhetosegId,
|
|
HetNapjaId = item.HetNapjaId
|
|
};
|
|
|
|
string[] oraPerc = item.Kezdete.Split(':');
|
|
teremBerbeadasIdopontokCO.Kezdete = DateTime.Today.AddHours(Convert.ToInt32(oraPerc[0])).AddMinutes(Convert.ToInt32(oraPerc[1]));
|
|
|
|
oraPerc = item.Vege.Split(':');
|
|
teremBerbeadasIdopontokCO.Vege = DateTime.Today.AddHours(Convert.ToInt32(oraPerc[0])).AddMinutes(Convert.ToInt32(oraPerc[1]));
|
|
|
|
teremBerbeadasIdopontokCOList.Add(teremBerbeadasIdopontokCO);
|
|
});
|
|
|
|
return teremBerbeadasIdopontokCOList;
|
|
}
|
|
}
|
|
}
|