init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,226 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.TabStrip;
|
||||
using Kreta.Web.Models.EditorTemplates;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public class InformaciokOrarendController : Controller
|
||||
{
|
||||
private readonly IFileServiceHelper fileServiceHelper;
|
||||
private IKretaAuthorization Authorization { get; }
|
||||
|
||||
public InformaciokOrarendController(IKretaAuthorization authorization, IFileServiceHelper fileServiceHelper)
|
||||
{
|
||||
Authorization = authorization ?? throw new ArgumentNullException(nameof(authorization));
|
||||
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
}
|
||||
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue, KretaClaimPackages.CsokkentettGondviselo.ClaimValue)]
|
||||
public ActionResult Index()
|
||||
{
|
||||
var model = new InformaciokOrarendModel();
|
||||
|
||||
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var hetesekHelper = new HetesekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
model.HetirendJson = helper.GetHetirendek();
|
||||
model.NaptariHetekHetirendJson = helper.GetNaptariHetekHetirendek();
|
||||
|
||||
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
if (ClaimData.IsTanuloOrGondviselo && systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.hetesek_megjelenitese_az_elektronikus_ellenorzoben))
|
||||
{
|
||||
List<int> osztalyCsoportIdList = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloOsztalyIdList(ClaimData.FelhasznaloId);
|
||||
var hetHelper = new NaptariHetHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
model.AktualisHetSorszam = hetHelper.GetNaptariHetSorszamByDate(DateTime.Now);
|
||||
|
||||
if (osztalyCsoportIdList.Any())
|
||||
{
|
||||
var tanulok = hetesekHelper.GetHetesSzovegHetsorszammal(osztalyCsoportIdList);
|
||||
|
||||
var serializerSettings = new JsonSerializerSettings();
|
||||
serializerSettings.StringEscapeHandling = StringEscapeHandling.EscapeNonAscii;
|
||||
|
||||
model.HetesekJson = JsonConvert.SerializeObject(tanulok, serializerSettings);
|
||||
model.HetesekJson = model.HetesekJson.Replace("\x7F", "\\u007f");
|
||||
}
|
||||
}
|
||||
|
||||
var co = helper.GetCalendarMinMax();
|
||||
model.CalendarMinTime = co.CalendarMin;
|
||||
model.CalendarMaxTime = co.CalendarMax;
|
||||
model.IsOraTemaTooltip = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Tanora_Tema_Az_Ellenorzoben);
|
||||
|
||||
return View("Index", model);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public ActionResult GetOrarendEvent(int eventId, bool isTanitasiOra_BOOL, DateTime haziFeladatRogzitesDatuma, int? tanuloId = null, string megoldva = null)
|
||||
{
|
||||
CalendarModel calendar = new CalendarModel();
|
||||
|
||||
calendar.EventId = eventId;
|
||||
calendar.OraType = isTanitasiOra_BOOL ? CalendarOraTypeEnum.TanitasiOra : CalendarOraTypeEnum.OrarendiOra;
|
||||
calendar.Start = haziFeladatRogzitesDatuma;
|
||||
|
||||
return OrarendEvent(calendar, tanuloId, megoldva);
|
||||
}
|
||||
|
||||
public ActionResult OrarendEvent(CalendarModel calendarModel, int? tanuloId = null, string megoldva = null)
|
||||
{
|
||||
if (calendarModel.OraType == CalendarOraTypeEnum.TanevRendjeEsemeny ||
|
||||
calendarModel.OraType == CalendarOraTypeEnum.UresOra)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var model = new InformaciokOra();
|
||||
var pm = new PopUpModel(model, "OraAdatok_Info");
|
||||
model.TabList = GetDetailTabs(calendarModel, tanuloId, megoldva);
|
||||
pm = pm.AddCancelBtn(pm, "InformaciokOrarend.detailOraInfoCancel");
|
||||
return PartialView(Constants.General.PopupView, pm);
|
||||
}
|
||||
|
||||
public List<TabStripItemModel> GetDetailTabs(CalendarModel calendarModel, int? tanuloId = null, string megoldva = null)
|
||||
{
|
||||
List<TabStripItemModel> list = new List<TabStripItemModel>();
|
||||
|
||||
list.Add(new TabStripItemModel()
|
||||
{
|
||||
ItemId = "1",
|
||||
ItemName = StringResourcesUtil.GetString(3331) /*Óra adatai*/,
|
||||
Area = "Orarend",
|
||||
Controller = "InformaciokOrarend",
|
||||
Action = "GetOraAdatok",
|
||||
RouteParameters = new Dictionary<string, string>() {
|
||||
{ "Id", calendarModel.EventId.ToString() },
|
||||
{ "EventType", ((int)calendarModel.OraType).ToString() },
|
||||
{ "Date" , calendarModel.Start.Date.ToString() }
|
||||
}
|
||||
});
|
||||
|
||||
var routeParameters = new Dictionary<string, string>() {
|
||||
{ "Id", calendarModel.EventId.ToString() },
|
||||
{ "EventType", ((int)calendarModel.OraType).ToString() },
|
||||
{ "Date" , calendarModel.Start.Date.ToString() }
|
||||
};
|
||||
|
||||
if (tanuloId != null)
|
||||
routeParameters.Add("TanuloId", tanuloId.ToString());
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(megoldva))
|
||||
routeParameters.Add("Megoldva", megoldva.ToString());
|
||||
|
||||
list.Add(new TabStripItemModel()
|
||||
{
|
||||
ItemId = "2",
|
||||
ItemName = OrarendResource.HaziFeladat,
|
||||
Area = "Orarend",
|
||||
Controller = "InformaciokOrarend",
|
||||
Action = "GetHaziFeladat_Tab",
|
||||
RouteParameters = routeParameters
|
||||
});
|
||||
|
||||
return list;
|
||||
}
|
||||
public ActionResult GetHaziFeladat_Tab(int id, CalendarOraTypeEnum eventType, DateTime date, int? tanuloId = null, string megoldva = null)
|
||||
{
|
||||
if (!Authorization.IsValidEvent(id, eventType, date))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAzOldalMegtekintesehez);
|
||||
}
|
||||
|
||||
var model = GetHaziFeladatok(id, eventType, date);
|
||||
|
||||
return PartialView("TanuloHaziFeladat_Tab", model);
|
||||
}
|
||||
|
||||
public ActionResult GetOraAdatok(int id, CalendarOraTypeEnum eventType, DateTime date)
|
||||
{
|
||||
if (!Authorization.IsValidEvent(id, eventType, date))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAzOldalMegtekintesehez);
|
||||
}
|
||||
|
||||
var model = GetOraAdatai(id, eventType, date);
|
||||
return PartialView("Info_TanuloOraAdatok_Tab", model);
|
||||
}
|
||||
|
||||
private InformaciokOraAdatai GetOraAdatai(int eventId, CalendarOraTypeEnum eventType, DateTime date)
|
||||
{
|
||||
int? orarendiOraId = null;
|
||||
int? tanitasiOraId = null;
|
||||
var model = new InformaciokOraAdatai();
|
||||
model.IsTanora = eventType == CalendarOraTypeEnum.TanitasiOra;
|
||||
if (model.IsTanora)
|
||||
{
|
||||
tanitasiOraId = eventId;
|
||||
|
||||
MulasztasHelper h = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
var mulasztas = h.GetTanuloTanoraiMulasztasa(ClaimData.FelhasznaloId, tanitasiOraId.Value);
|
||||
model.MulasztasText = string.IsNullOrWhiteSpace(mulasztas) ? "-" : mulasztas;
|
||||
}
|
||||
else
|
||||
{
|
||||
orarendiOraId = eventId;
|
||||
}
|
||||
|
||||
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
var adatok = helper.GetTanuloOraAdatai(orarendiOraId, tanitasiOraId, date);
|
||||
|
||||
var openBoardHelper = new OpenBoardHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType(), fileServiceHelper);
|
||||
|
||||
// Helyettesítés csak akkor látható tanulónál, ha be van kapcsolva a rendszerbeállításokba, vagy már naplózott az óra.
|
||||
var isHelyettesitesLathato = new SystemSettingsHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.helyettesites_lathatosaga_az_ellenorzoben);
|
||||
|
||||
model.IsHelyettesitoTanarLathato = isHelyettesitesLathato || model.IsTanora;
|
||||
|
||||
model.Targy = adatok.Targy;
|
||||
model.HelyettesitoTanar = adatok.HelyettesitoTanar;
|
||||
model.Megtartott = adatok.Megtartott;
|
||||
model.OsztalyNev = adatok.OsztalyNev;
|
||||
model.Tanar = adatok.Tanar;
|
||||
model.Tema = adatok.Tema;
|
||||
model.Terem = adatok.Terem;
|
||||
model.Oraszam = adatok.Oraszam;
|
||||
model.Datum = date.ToShortDateString();
|
||||
model.SzamonkeresMegnevezes = adatok.SzamonkeresMegnevezes;
|
||||
model.SzamonkeresMod = adatok.SzamonkeresMod;
|
||||
model.OraTartam = string.Format("{0} - {1}", adatok.OraKezdet, adatok.OraVege);
|
||||
model.OpenBoardFiles = openBoardHelper.GetFeltoltottFajlokToTanuloOraAdat(date, orarendiOraId, tanitasiOraId);
|
||||
return model;
|
||||
}
|
||||
|
||||
private TanuloHaziFeladatTabModel GetHaziFeladatok(int eventId, CalendarOraTypeEnum oraType, DateTime date)
|
||||
{
|
||||
try
|
||||
{
|
||||
return new TanuloHaziFeladatTabModel(new DktFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHaziFeladatTabCo(eventId, oraType, date, ClaimData.IsTanuloOrGondviselo));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran) { UnHandledException = e };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue