318 lines
17 KiB
C#
318 lines
17 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
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.Helpers.TabStrip;
|
|
using Kreta.Web.Security;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Kreta.Web.Areas.OsztalyCsoport.Models
|
|
{
|
|
public abstract class CsoportBaseModel
|
|
{
|
|
public int? ID { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.CsoportNeve), ResourceType = typeof(OsztalyCsoportResource))]
|
|
[KretaRequired(StringResourcesId = 1311)]
|
|
[StringLength(maximumLength: 255, ErrorMessageResourceName = nameof(ErrorResource.CsoportNeveMax255CsoportAlapadatok), ErrorMessageResourceType = typeof(ErrorResource))]
|
|
public string CsoportNeve { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.CsoportTipus), ResourceType = typeof(OsztalyCsoportResource))]
|
|
[KretaRequiredIf("IsFromSzervezet", false, ErrorMessageResourceName = nameof(ErrorResource.CsoportTipusMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
|
|
public int? CsoportTipusId { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.CsoportTipus), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string CsoportTipusNev => CsoportTipusId.GetDisplayName<CsoportTipusEnum>(ClaimData.SelectedTanevID.Value);
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.EvfolyamNeve), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public int? EvfolyamTipusa { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.EvfolyamNeve), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string EvfolyamNev => EvfolyamTipusa.HasValue && EvfolyamTipusa.Value > 0 ? EvfolyamTipusa.Value.GetDisplayName<EvfolyamTipusEnum>(ClaimData.SelectedTanevID.Value) : "";
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.Csoportvezeto), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public int? CsoportvezetoId { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.Csoportvezeto), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string CsoportvezetoNev { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.Terem), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public int? CsoportTeremId { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.Terem), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string TeremNev { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.TanulokSzama), ResourceType = typeof(OsztalyCsoportResource))]
|
|
[KretaRange(0, int.MaxValue)]
|
|
public int TanulokSzama { get; set; }
|
|
|
|
[Display(Name = nameof(TanuloResource.NovendekekSzama), ResourceType = typeof(TanuloResource))]
|
|
[KretaRange(0, int.MaxValue)]
|
|
public int NovendekekSzama
|
|
{
|
|
get { return TanulokSzama; }
|
|
set { TanulokSzama = value; }
|
|
}
|
|
|
|
[Display(Name = nameof(CommonResource.Feladatellatasihely), ResourceType = typeof(CommonResource))]
|
|
[KretaRequiredIf("IsFromSzervezet", false, ErrorMessageResourceName = nameof(ErrorResource.FeladatellatasiHelyKitolteseKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
|
|
public int? FeladatEllatasiHelyId { get; set; }
|
|
|
|
[Display(Name = nameof(CommonResource.Feladatellatasihely), ResourceType = typeof(CommonResource))]
|
|
public string FeladatEllatasiHelyName { get; private set; }
|
|
|
|
[StringLength(255, ErrorMessageResourceName = nameof(ErrorResource.AMegjegyzesMax255KarakterLehet), ErrorMessageResourceType = typeof(ErrorResource))]
|
|
[Display(Name = nameof(OsztalyCsoportResource.Megjegyzes), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string Megjegyzes { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.IsGyogypedagogiaiLogopediai), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public bool IsGyogypedagogiaiLogopediai { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.IsGyogypedagogiaiLogopediai), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string IsGyogypedagogiaiLogopediai_BNAME => IsGyogypedagogiaiLogopediai ? CommonResource.Igen : CommonResource.Nem;
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.TechnikaiCsoport), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public bool TechnikaiCsoport { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.TechnikaiCsoport), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string TechnikaiCsoportString => TechnikaiCsoport ? CommonResource.Igen : CommonResource.Nem;
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.CsoportnaploMegnyitasDatuma), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public DateTime? CsoportNaploMegnyitasa { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.CsoportnaploMegnyitasDatuma), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string CsoportNaploMegnyitasaRoviddatum => CsoportNaploMegnyitasa?.ToShortDateString() ?? "";
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.CsoportnaploLezarasDatuma), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public DateTime? CsoportNaploLezarasa { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.CsoportnaploLezarasDatuma), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string CsoportNaploLezarasaRoviddatum => CsoportNaploLezarasa?.ToShortDateString() ?? "";
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.CsoportnaploLeirasa), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string CsoportNaploLeirasa { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.Naploszam), ResourceType = typeof(OsztalyCsoportResource))]
|
|
[StringLength(maximumLength: 50, ErrorMessageResourceName = nameof(ErrorResource.ANaploszamMax50KarakterLehet), ErrorMessageResourceType = typeof(ErrorResource))]
|
|
public string Naploszam { get; set; }
|
|
|
|
public string AmiFelhelyIdsJSON { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.TervezettLetszam), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public int? TervezettLetszam { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.Osztaly), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public int? OsztalyBontasId { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.Osztaly), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string OsztalyBontasNev { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.Osztalybontas), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public bool OsztalyBontas { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.Osztalybontas), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string OsztalyBontas_BNAME => OsztalyBontas ? CommonResource.Igen : CommonResource.Nem;
|
|
|
|
public List<TabStripItemModel> TabList { get; set; }
|
|
|
|
public bool IsAutoEgyeniCsoport { get; set; }
|
|
public bool IsFeladatellatasiHelySzures { get; set; }
|
|
|
|
public bool IsAmiAlapkepzesesGimnaziumkentKezelendo { get; set; }
|
|
|
|
public bool OsszevontOsztaly { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.KepzesTipusa), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public int? KepzesiFormaId { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.KepzesTipusa), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string KepzesiFormaString => KepzesiFormaId.HasValue ? KepzesiFormaId.Value.GetDisplayName<TanterviJellegEnum>(ClaimData.SelectedTanevID.Value) : string.Empty;
|
|
|
|
public OsztalyCsoportTanuloinakMunkarendjeModel OsztalyCsoportTanuloinakMunkarendjeModel { get; set; }
|
|
|
|
public bool IsFromSzervezet { get; set; }
|
|
public string ControllerName { get; set; }
|
|
public string ApiControllerName { get; set; }
|
|
|
|
public bool IsKretaIntezmenyiAdminIsFromSzervezet { get; set; }
|
|
|
|
// NOTE: Itt azért nem a nameof(SzervezetResource.Szervezet)-ből jön a szöveg, mert ez a property fixen mindig ezzel a label-el kell, hogy megjelenjen, függetlenül a nyelviesítéstől!
|
|
[Display(Name = nameof(DualisResource.DualisKepzohelyNeveEsAdoszama), ResourceType = typeof(DualisResource))]
|
|
[KretaRequiredIf("IsFromSzervezet", true, ErrorMessageResourceName = nameof(DualisResource.DualisKepzohelyMegadasaKotelezo), ErrorMessageResourceType = typeof(DualisResource))]
|
|
public int? CsoportSzervezetId { get; set; }
|
|
[Display(Name = nameof(SzervezetResource.Szervezet), ResourceType = typeof(SzervezetResource))]
|
|
public string SzervezetNeve { get; set; }
|
|
|
|
public CsoportBaseModel()
|
|
{
|
|
TabList = new List<TabStripItemModel>();
|
|
OsztalyCsoportTanuloinakMunkarendjeModel = new OsztalyCsoportTanuloinakMunkarendjeModel();
|
|
OsztalyCsoportTanuloinakMunkarendjeModel.MunkarendGridModel = new OsztalyCsoportTanuloinakMunkarendjeGridModel();
|
|
}
|
|
|
|
protected static void ConvertToBaseModel(CsoportBaseModel model, CsoportCO co)
|
|
{
|
|
List<int> AmiFelhelyIds = Kreta.Web.Areas.OsztalyCsoport.Logic.OsztalyCsoportLogic.GetFeladatEllatasiHelyIdsBySelectedOktNevelesiKategoria((int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas);
|
|
model.CsoportNeve = co.CsoportNeve;
|
|
model.CsoportTipusId = co.CsoportTipus;
|
|
model.CsoportvezetoId = co.CsoportvezetoId;
|
|
model.CsoportvezetoNev = co.CsoportvezetoNeve;
|
|
model.EvfolyamTipusa = co.EvfolyamTipusa;
|
|
model.FeladatEllatasiHelyId = co.FeladatEllatasiHelyId > 0 ? (int?)co.FeladatEllatasiHelyId : null;
|
|
model.FeladatEllatasiHelyName = co.FeladatEllatasiHelyName;
|
|
model.ID = co.Id;
|
|
model.Megjegyzes = co.Megjegyzes;
|
|
model.CsoportTeremId = co.TeremID;
|
|
model.TeremNev = co.TeremNev;
|
|
model.TanulokSzama = co.TanulokSzama;
|
|
model.TervezettLetszam = co.TervezettLetszam;
|
|
model.CsoportNaploLeirasa = co.CsoportNaploLeirasa;
|
|
model.Naploszam = co.Naploszam;
|
|
model.AmiFelhelyIdsJSON = JsonConvert.SerializeObject(AmiFelhelyIds);
|
|
model.CsoportNaploMegnyitasa = co.CsoportNaploMegnyitasa;
|
|
model.CsoportNaploLezarasa = co.CsoportNaploLezarasa;
|
|
model.IsGyogypedagogiaiLogopediai = co.IsGyogypedagogiaiLogopediai;
|
|
model.TechnikaiCsoport = co.TechnikaiCsoport;
|
|
model.OsztalyBontas = co.OsztalyBontas;
|
|
model.OsztalyBontasId = co.OsztalyBontasId;
|
|
model.OsztalyBontasNev = co.OsztalyBontasNev;
|
|
model.IsAutoEgyeniCsoport = co.IsAutoEgyeniCsoport;
|
|
model.OsszevontOsztaly = co.OsszevontOsztaly;
|
|
model.IsFeladatellatasiHelySzures = co.HasTanuloBesorolas;
|
|
model.KepzesiFormaId = co.KepzesiFormaId;
|
|
|
|
model.SzervezetNeve = co.SzervezetNeve;
|
|
model.CsoportSzervezetId = co.SzervezetId.IsEntityId() ? co.SzervezetId : null;
|
|
}
|
|
|
|
protected CsoportCO ConvertBaseModelToCo()
|
|
{
|
|
return new CsoportCO()
|
|
{
|
|
CsoportNeve = this.CsoportNeve,
|
|
CsoportTipus = this.CsoportTipusId,
|
|
CsoportvezetoId = this.CsoportvezetoId,
|
|
CsoportvezetoNeve = this.CsoportvezetoNev,
|
|
EvfolyamTipusa = this.EvfolyamTipusa ?? (int)EvfolyamTipusEnum.na,
|
|
FeladatEllatasiHelyId = this.FeladatEllatasiHelyId ?? 0,
|
|
Id = this.ID ?? 0,
|
|
Megjegyzes = this.Megjegyzes,
|
|
TeremID = this.CsoportTeremId,
|
|
TervezettLetszam = this.TervezettLetszam,
|
|
OsztalyBontasId = this.OsztalyBontasId,
|
|
IsGyogypedagogiaiLogopediai = this.IsGyogypedagogiaiLogopediai,
|
|
TechnikaiCsoport = this.TechnikaiCsoport,
|
|
OsztalyBontas = this.OsztalyBontas,
|
|
OsztalyBontasNev = this.OsztalyBontasNev,
|
|
CsoportNaploMegnyitasa = this.CsoportNaploMegnyitasa,
|
|
CsoportNaploLezarasa = this.CsoportNaploLezarasa,
|
|
Naploszam = this.Naploszam,
|
|
CsoportNaploLeirasa = this.CsoportNaploLeirasa,
|
|
KepzesiFormaId = this.KepzesiFormaId
|
|
};
|
|
}
|
|
}
|
|
|
|
public class AlapkepzesCsoportModel : CsoportBaseModel
|
|
{
|
|
public AlapkepzesCsoportModel() : base() { }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.VegzosEvfolyamuCsoportKozepfokuOktatasiIntezmenyben), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public bool Vegzos { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.VegzosEvfolyamuCsoportKozepfokuOktatasiIntezmenyben), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string Vegzos_BNAME => Vegzos ? CommonResource.Igen : CommonResource.Nem;
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.KeresztfelevesCsoport), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public bool Keresztfeleves { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.IsGyogypedagogiaiLogopediai), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public bool IsGyogypedagogiaiLogopediai { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.TechnikaiCsoport), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public bool TechnikaiCsoport { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.TechnikaiCsoport), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string TechnikaiCsoportString => TechnikaiCsoport ? CommonResource.Igen : CommonResource.Nem;
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.KeresztfelevesCsoport), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string Keresztfeleves_BNAME => Keresztfeleves ? CommonResource.Igen : CommonResource.Nem;
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.IsGyogypedagogiaiLogopediai), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string IsGyogypedagogiaiLogopediai_BNAME => IsGyogypedagogiaiLogopediai ? CommonResource.Igen : CommonResource.Nem;
|
|
|
|
public static AlapkepzesCsoportModel ConvertToModel(CsoportCO co)
|
|
{
|
|
var model = new AlapkepzesCsoportModel();
|
|
|
|
ConvertToBaseModel(model, co);
|
|
|
|
model.Vegzos = co.VegzosEvfolyamCsoport;
|
|
model.Keresztfeleves = co.KeresztfelevesCsoport;
|
|
model.IsGyogypedagogiaiLogopediai = co.IsGyogypedagogiaiLogopediai;
|
|
model.TechnikaiCsoport = co.TechnikaiCsoport;
|
|
|
|
return model;
|
|
}
|
|
|
|
public CsoportCO ConvertToCo()
|
|
{
|
|
var co = ConvertBaseModelToCo();
|
|
|
|
co.VegzosEvfolyamCsoport = this.Vegzos;
|
|
co.KeresztfelevesCsoport = this.Keresztfeleves;
|
|
co.IsGyogypedagogiaiLogopediai = this.IsGyogypedagogiaiLogopediai;
|
|
co.TechnikaiCsoport = this.TechnikaiCsoport;
|
|
co.SzervezetId = this.CsoportSzervezetId;
|
|
co.IsFromSzervezet = this.IsFromSzervezet;
|
|
|
|
return co;
|
|
}
|
|
}
|
|
|
|
public class AmiCsoportModel : CsoportBaseModel
|
|
{
|
|
public AmiCsoportModel() : base() { }
|
|
|
|
[Required(ErrorMessageResourceName = nameof(ErrorResource.MuveszetiAgMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
|
|
[Display(Name = nameof(OsztalyCsoportResource.MuvesztiAg), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public int? MuveszetiAgId { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.ZenemuveszetiAgTipusa), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public int? ZenemuveszetiAgTipusId { get; set; }
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.MuvesztiAg), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string MuveszetiAgString => MuveszetiAgId.HasValue ? MuveszetiAgId.Value.GetDisplayName<MuveszetiAgEnum>(ClaimData.SelectedTanevID.Value) : string.Empty;
|
|
|
|
[Display(Name = nameof(OsztalyCsoportResource.ZenemuveszetiAgTipusa), ResourceType = typeof(OsztalyCsoportResource))]
|
|
public string ZenemuveszetiAgTipusString => ZenemuveszetiAgTipusId.HasValue ? ZenemuveszetiAgTipusId.Value.GetDisplayName<ZenemuveszetiAgTipusEnum>(ClaimData.SelectedTanevID.Value) : string.Empty;
|
|
|
|
public static AmiCsoportModel ConvertToModel(CsoportCO co)
|
|
{
|
|
var model = new AmiCsoportModel();
|
|
|
|
ConvertToBaseModel(model, co);
|
|
|
|
model.MuveszetiAgId = co.MuveszetiAgId;
|
|
model.ZenemuveszetiAgTipusId = co.ZenemuveszetiAgTipusId;
|
|
|
|
return model;
|
|
}
|
|
|
|
public CsoportCO ConvertToCo()
|
|
{
|
|
var co = ConvertBaseModelToCo();
|
|
|
|
co.MuveszetiAgId = this.MuveszetiAgId;
|
|
co.ZenemuveszetiAgTipusId = this.ZenemuveszetiAgTipusId;
|
|
|
|
return co;
|
|
}
|
|
}
|
|
}
|