This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,455 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Results;
using Kreta.BusinessLogic.Classes.ComboBox;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Core.Exceptions;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.Logic;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Security;
namespace Kreta.Web.Controllers
{
[ApiRoleClaimsAuthorize(true)]
public class CalendarApiController : ApiController
{
[ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue, KretaClaimPackages.CsokkentettGondviselo.ClaimValue)]
public List<OrarendCO.Event> GetTanuloOrarend(DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendHelper.GetTanuloOrarend(start, end, ClaimData.FelhasznaloId, ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.CsokkentettGondviselo.ClaimValue)).Events;
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public List<OrarendCO.Event> GetTanariOrarendOrarendiorakEsTanorak(int tanarId, int osztalyCsoportId, int tanuloId, DateTime start, DateTime end, bool isFromSzervezet = false)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = ClaimData.FelhasznaloId;
var oId = (osztalyCsoportId >= 0 ? osztalyCsoportId : new int?());
var sId = (tanuloId > 0 ? tanuloId : new int?());
var result = orarendHelper.GetTanariOrarendOrarendiorakEsTanorak(start, end, tId, oId, sId, ClaimData.FelhasznaloSzerepkor, isFromSzervezet: isFromSzervezet, isDualisOktato: ClaimData.IsDualisOktato);
result.ConvertToOrarendViewData();
return result.Events;
}
[ApiRolePackageAuthorize(KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)]
public List<OrarendCO.Event> GetCsoportVezetoTanorak(int tanarId, int osztalyCsoportId, int tanuloId, DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendHelper.GetCsoportVezetoTanorak(start, end, osztalyCsoportId, ClaimData.FelhasznaloSzerepkor);
result.ConvertToOrarendViewData();
return result.Events;
}
[ApiRolePackageAuthorize(KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)]
public List<OrarendCO.Event> GetCsoportVezetoTanorankivuliFoglalkozasok(int tanarId, int osztalyCsoportId, int tanuloId, DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendHelper.GetCsoportVezetoTanorankivuliFoglalkozasok(start, end, osztalyCsoportId, ClaimData.FelhasznaloSzerepkor).Events;
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public List<OrarendCO.Event> GetTanariOrarendTanoranKivuliFoglalkozasok(int tanarId, int osztalyCsoportId, int tanuloId, DateTime start, DateTime end, bool isFromSzervezet = false)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = ClaimData.FelhasznaloId;
var oId = (osztalyCsoportId >= 0 ? osztalyCsoportId : new int?());
var sId = (tanuloId > 0 ? tanuloId : new int?());
var result = orarendHelper.GetTanariOrarendTanoranKivuliFoglalkozasok(start, end, tId, oId, sId, ClaimData.FelhasznaloSzerepkor, isFromSzervezet: isFromSzervezet).Events;
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public List<OrarendCO.Event> GetTanariOrarendNemKotottMunkaido(int tanarId, DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = ClaimData.FelhasznaloId;
var result = orarendHelper.GetTanariOrarendNemKotottMunkaido(start, end, tId, ClaimData.FelhasznaloSzerepkor).Events;
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public List<OrarendCO.Event> GetOralatogatasOrarend(int tanarId, DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendHelper.GetOralatogatasOrarend(start, end, tanarId).Events;
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
public List<OrarendCO.Event> GetAdminTanariOrarendOrarendiOrak(int tanarId, int osztalyCsoportId, DateTime start, DateTime end, bool isFromSzervezet = false)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = (tanarId >= 0 ? tanarId : new int?());
var oId = (osztalyCsoportId >= 0 ? osztalyCsoportId : new int?());
var result = orarendHelper.GetAdminTanariOrarendOrarendiOrak(start, end, tId, oId, ClaimData.FelhasznaloSzerepkor, isFromSzervezet);
result.ConvertToOrarendViewData();
return result.Events;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public List<OrarendCO.Event> GetAdminKozpontiOrak(DateTime start, DateTime end)
{
var helper = new AdminKozpontiOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = helper.GetAdminKozpontiOrak(start, end);
result.ConvertToOrarendViewData();
return result.Events;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
public List<OrarendCO.Event> GetAdminOsztalyOrarendOrarendiOrak(int osztalyCsoportId, DateTime start, DateTime end, bool isFromSzervezet = false)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendHelper.GetAdminOsztalyOrarendOrarendiOrak(start, end, osztalyCsoportId, isFromSzervezet);
result.ConvertToOrarendViewData();
return result.Events;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
public List<OrarendCO.Event> GetAdminTanariOrarendTanoranKivuliFoglalkozasok(int tanarId, int osztalyCsoportId, DateTime start, DateTime end, bool isFromSzervezet = false)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = (tanarId >= 0 ? tanarId : new int?());
var oId = (osztalyCsoportId >= 0 ? osztalyCsoportId : new int?());
var result = orarendHelper.GetAdminTanariOrarendTanoranKivuliFoglalkozasok(start, end, tId, oId, ClaimData.FelhasznaloSzerepkor, isFromSzervezet).Events;
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
public List<OrarendCO.Event> GetAdminOsztalyOrarendTanoranKivuliFoglalkozasok(int osztalyCsoportId, DateTime start, DateTime end, bool isFromSzervezet = false)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendHelper.GetAdminOsztalyOrarendTanoranKivuliFoglalkozasok(start, end, osztalyCsoportId, ClaimData.FelhasznaloSzerepkor, isFromSzervezet).Events;
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.CsoportVezeto.ClaimValue)]
public List<OrarendCO.Event> GetCsoportVezetoOrarendTanoranKivuliFoglalkozasok(int osztalyCsoportId, DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendHelper.GetAdminOsztalyOrarendTanoranKivuliFoglalkozasok(start, end, osztalyCsoportId, ClaimData.FelhasznaloSzerepkor, false).Events;
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public List<OrarendCO.Event> GetAdminNemKotottMunkaido(int tanarId, DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = (tanarId >= 0 ? tanarId : 0);
var result = orarendHelper.GetAdminNemKotottMunkaido(start, end, tId, ClaimData.FelhasznaloSzerepkor).Events;
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public List<OrarendCO.Event> GetTanoraiHelyettesitesek(int tanarId, DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = (tanarId >= 0 ? tanarId : new int?());
var result = orarendHelper.GetTanoraiHelyettesitesek(start, end, tId);
result.ConvertToOrarendViewData();
return result.Events;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public List<OrarendCO.Event> GetTanoranKivuliHelyettesitesek(int tanarId, DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = (tanarId >= 0 ? tanarId : new int?());
return orarendHelper.GetTanoranKivuliHelyettesitesek(start, end, tId);
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public List<OrarendCO.Event> GetAdminNaploEllenorzesTanorakOrarendiOrak(int tanarId, DateTime start, DateTime end, bool isFromSzervezet = false)
{
if (ClaimData.SessionId == null
|| !tanarId.IsEntityId())
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = (tanarId >= 0 ? tanarId : new int?());
/* Duális oktató jog küldése KRETA2-12558 makkt később ki lehet majd venni */
var result = orarendHelper.GetTanariOrarendOrarendiorakEsTanorak(start, end, tId, null, null, Enums.SzerepkorTipusEnum.Adminisztrator, true, isFromSzervezet: isFromSzervezet, isDualisOktato: ClaimData.IsDualisOktato);
result.ConvertToOrarendViewData();
return result.Events;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public List<OrarendCO.Event> GetAdminNaploEllenorzesTanoranKivuliFoglalkozasok(int tanarId, DateTime start, DateTime end, bool isFromSzervezet = false)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = (tanarId >= 0 ? tanarId : new int?());
var result = orarendHelper.GetTanariOrarendTanoranKivuliFoglalkozasok(start, end, tId, null, null, Enums.SzerepkorTipusEnum.Adminisztrator, true, isFromSzervezet);
return result.Events;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public List<OrarendCO.Event> GetAdminNaploEllenorzesNemKotottMunkaido(int tanarId, DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = (tanarId >= 0 ? tanarId : -1);
var result = orarendHelper.GetTanariOrarendNemKotottMunkaido(start, end, tId, Enums.SzerepkorTipusEnum.Adminisztrator, true);
return result.Events;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public List<OrarendCO.Event> GetAdminNaploEllenorzesFogadoora(int tanarId, DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = (tanarId >= 0 ? tanarId : -1);
var result = orarendHelper.GetTanariOrarendFogadoora(start, end, tId, Enums.SzerepkorTipusEnum.Adminisztrator, true);
return result.Events;
}
public List<OrarendCO.Event> GetTanevRendjeCalendar(DateTime start, DateTime end)
{
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
return tanevrendHelper.GetTanevRendjeCalendarData(start, end);
}
public JsonResult<List<ComboBoxListItem>> GetTanevHetek()
{
NaptariHetHelper helper = new NaptariHetHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var dropdownListItems = new List<ComboBoxListItem>();
var ds = helper.GetNaptariHetList();
var view = ds.Tables[0].DefaultView;
view.Sort = "HetSorszama";
foreach (DataRowView rowView in view)
{
DataRow row = rowView.Row;
var sli = new ComboBoxListItem()
{
Text = row.Field<int>("HetSorszama").ToString() + StringResourcesUtil.GetString(4742) + " (" + row.Field<DateTime>("HetKezdoNapja")/*.AddDays(1)*/.ToString("yyyy.MM.dd.") + " - " + row.Field<DateTime>("HetUtolsoNapja")/*.AddDays(1)*/.ToString("yyyy.MM.dd.") + ")",
Value = row.Field<DateTime>("HetKezdoNapja")/*.AddDays(1)*/.ToString("yyyy-MM-dd")
};
dropdownListItems.Add(sli);
}
return Json(dropdownListItems);
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
public List<OrarendCO.Event> GetAdminTeremOrarendOrarendiOrak(int teremId, DateTime start, DateTime end, bool isFromSzervezet = false)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendHelper.GetAdminTeremOrarendOrarendiOrak(start, end, teremId, isFromSzervezet);
result.ConvertToOrarendViewData();
return result.Events;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
public List<OrarendCO.Event> GetAdminTeremOrarendTanoranKivuliFoglalkozasok(int teremId, DateTime start, DateTime end, bool isFromSzervezet = false)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendHelper.GetAdminTeremOrarendTanoranKivuliFoglalkozasok(start, end, teremId, ClaimData.FelhasznaloSzerepkor, isFromSzervezet).Events;
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public List<OrarendCO.Event> GetOrarendKereso(int? tanarId, int? osztalyCsoportId, int? teremId, DateTime start, DateTime end, bool osztalyTanuloOrarendbenNemLatszik = false)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
tanarId = (tanarId >= 0 ? tanarId : new int?());
osztalyCsoportId = (osztalyCsoportId >= 0 ? osztalyCsoportId : new int?());
teremId = (teremId >= 0 ? teremId : new int?());
var result = orarendHelper.GetOrarendKereso(start, end, tanarId, osztalyCsoportId, teremId, ClaimData.FelhasznaloSzerepkor, osztalyTanuloOrarendbenNemLatszik);
return result.Events;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public List<OrarendCO.Event> GetTanariOrarendFogadoora(DateTime start, DateTime end)
{
if (ClaimData.SessionId == null)
return null;
OrarendHelper orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tId = ClaimData.FelhasznaloId;
var result = orarendHelper.GetTanariOrarendFogadoora(start, end, tId, ClaimData.FelhasznaloSzerepkor).Events;
return result;
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage CopyOrarendiElem(CopyOrarendiElemModel model)
{
try
{
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
OraValidationCo co = OrarendiOraLogic.SetOraValidationCoFromCopyOrarendiElemModel(new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()), model);
var utkozesValidationMsg = OrarendiOraLogic.CheckUtkozesValidation(co, "Orarend.successCopy");
if (utkozesValidationMsg.ErrorMsg.Length > 0)
{
throw new StatusError(HttpStatusCode.BadRequest, utkozesValidationMsg.ErrorMsg);
}
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
int? newId = orarendHelper.CopyOrarendiElem(model.copyId, co.OrarendiOraValidationCo.OraKezdete, co.OrarendiOraValidationCo.Oraszam.Value);
if (newId.IsEntityId())
{
orarendiOraHelper.OrarendValtozasCacheMentes(newId.Value);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage PreValidationOnCopyOrarendiElem(CopyOrarendiElemModel model)
{
var co = OrarendiOraLogic.SetOraValidationCoFromCopyOrarendiElemModel(new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()), model);
if (model.oraszam > -1 && co.OrarendiOraValidationCo.OsztalyId.HasValue)
{
var osztalyCsoportIds = new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportIdsForCsengetesiRend(model.dateFrom, model.oraszam, new List<int> { co.OrarendiOraValidationCo.OsztalyId.Value });
if (!osztalyCsoportIds.Any())
{
throw new StatusError(HttpStatusCode.BadRequest, string.Format(OrarendResource.AMasoltOraOsztalyCsoportnakEgyediNap0Datumon, model.dateFrom.ToString(Core.Constants.ToStringPattern.HungarianDate)) + Core.Constants.General.Sortores);
}
}
var utkozesValidationMsg = OrarendiOraLogic.CheckUtkozesValidation(co, "Orarend.successOnPrevalidation();", isPrevalidation: true);
if (utkozesValidationMsg.ErrorMsg.Length > 0)
{
throw new StatusError(HttpStatusCode.BadRequest, utkozesValidationMsg.ErrorMsg);
}
if (utkozesValidationMsg.Msg.Length > 0)
{
throw new StatusError(CustomHTTPStatusEnum.WarningMegszakitas, string.Empty) { Json = utkozesValidationMsg };
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
[HttpGet]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public JsonResult<RogzitettOraResult> GetRogzitettOrak(int tanarId, DateTime start)
{
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
(string kotottMunkaidoOra, string nemKotottMunkaidoOra) = orarendHelper.GetRogzitettOrak(tanarId, start);
return Json(new RogzitettOraResult
{
KotottMunkaido = kotottMunkaidoOra,
NemKotottMunkaido = nemKotottMunkaidoOra
});
}
public class RogzitettOraResult
{
public string KotottMunkaido { get; set; }
public string NemKotottMunkaido { get; set; }
}
}
}