init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,94 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Tanar.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Tanar.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class AdminOralatogatasokListajaApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetOralatogatasokGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<OralatogatasokKereseseGridModel>(OralatogatasokKereseseGridModel.OralatogatasExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(OrarendResource.Tanorak, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), OralatogatasokResource.ExportFileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<OralatogatasokKereseseGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<OralatogatasokKereseseModel>(data);
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new OralatogatasokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOralatogatasCoList(model.ConvertToCo(isTanar: false));
|
||||
|
||||
var modelList = new List<OralatogatasokKereseseGridModel>();
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new OralatogatasokKereseseGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteOralatogatas(object data)
|
||||
{
|
||||
OralatogatasokKereseseGridModel model = JsonConvert.DeserializeObject<OralatogatasokKereseseGridModel>(data.ToString());
|
||||
|
||||
int TanitasiOraId = int.Parse(model.TanitasiOraId);
|
||||
int AlkamazottId = int.Parse(model.AlkalmazottId);
|
||||
|
||||
try
|
||||
{
|
||||
var helper = new OralatogatasokHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.DeleteOralatogatas(TanitasiOraId, AlkamazottId);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (EntityDeleteFailedException)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AzElemNemTorolheto);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
403
KretaWeb/Areas/Tanar/ApiControllers/FogadooraApiController.cs
Normal file
403
KretaWeb/Areas/Tanar/ApiControllers/FogadooraApiController.cs
Normal file
|
@ -0,0 +1,403 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using System.Web.Http.Results;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Areas.Tanar.Logic;
|
||||
using Kreta.Web.Areas.Tanar.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Tanar.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
|
||||
[ApiRolePackageDenyAuthorize(KretaClaimPackages.IsDualisKepzohelyiOktato.ClaimValue)]
|
||||
public class FogadooraApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetFogadooraGridForAdmin(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))]
|
||||
DataSourceRequest request)
|
||||
{
|
||||
return GetFogadooraGrid(data, request);
|
||||
}
|
||||
|
||||
public DataSourceResult GetFogadooraGridForTanar(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))]
|
||||
DataSourceRequest request)
|
||||
{
|
||||
return GetFogadooraGrid(data, request, ClaimData.FelhasznaloId);
|
||||
}
|
||||
|
||||
public DataSourceResult GetFogadooraGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))]
|
||||
DataSourceRequest request, int? tanarId = null)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<FogadooraSearchModel>(data);
|
||||
|
||||
var helper = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
return helper.GetFogadoora(model.ConvertModelToCo(tanarId)).ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteFogadooraById([FromBody] int fogadooraId) => DeleteFogadoora(fogadooraId, (int)OraModositasiIdoszakTipus.EgyOra);
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteFogadooraByFogadooraModel(FogadooraModel model)
|
||||
{
|
||||
return DeleteFogadoora(model.Id.Value, model.ModositasiIdoszakTipus);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteFogadoora(int fogadooraId, int modositasiIdoszakTipus)
|
||||
{
|
||||
try
|
||||
{
|
||||
new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).DeleteFogadoora(fogadooraId, modositasiIdoszakTipus);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public FogadooraModel ConvertFogadooraModelFromFogadooraId(int fogadooraId)
|
||||
{
|
||||
var helper = new FogadooraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
var co = helper.GetFogadooraById(fogadooraId);
|
||||
var model = new FogadooraModel
|
||||
{
|
||||
FogadoOraDatuma = co.FogadoOraDatuma,
|
||||
SelectedOsztalyCsoportIdList = co.SelectedOsztalyCsoportIdList
|
||||
};
|
||||
return model;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveFogadoora(FogadooraModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
model = FogadooraLogic.SetFogadooraDate(model);
|
||||
|
||||
if (new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<bool>(Enums.RendszerBeallitasTipusEnum.kotott_munkaido_nevelesseloktatassal_le_nem_kotott_resz_kezelesenek_tiltasa))
|
||||
{
|
||||
model.IsNemKotottMunkaido = false;
|
||||
}
|
||||
|
||||
var fogadooraHelper = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var fogadooraCo = FogadooraLogic.ConvertModelToCo(model);
|
||||
fogadooraCo.TanarId = ClaimData.FelhasznaloId;
|
||||
|
||||
ModelState.AddRange(fogadooraHelper.SaveFogadoora(fogadooraCo));
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public DataSourceResult GetOsztalyCsoportGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))]
|
||||
DataSourceRequest request)
|
||||
{
|
||||
var helper = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
DataSet ds = helper.GetFogadooraOsztalyCsoportok(ClaimData.IsSzuperOsztalyfonok || ClaimData.IsAdministrator);
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
public DataSourceResult GetFogadooraJelentkezettGondviselokGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))]
|
||||
DataSourceRequest request)
|
||||
{
|
||||
var helper = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
DataSet ds = helper.GetFogadooraJelentkezettGondviselokDataSet(id);
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IHttpActionResult IsFogadooraJelentkezettGondviselokForUpdate(int id, bool isJelentkezesekKezelese, bool IsIdosavraOsztas, int egysegnyiIdopontok, int modositasiIdoszakTipus, DateTime kezdete, DateTime vege, string modifiedOcsList)
|
||||
{
|
||||
try
|
||||
{
|
||||
var isIdopontUjraGeneralasKell = new FogadooraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).IsIdopontUjraGeneralasKell(id, isJelentkezesekKezelese, IsIdosavraOsztas, egysegnyiIdopontok, kezdete, vege);
|
||||
|
||||
var isFogadooraJelentkezettGondviselok = IsFogadooraJelentkezettGondviselok(id, modositasiIdoszakTipus, JsonConvert.DeserializeObject<Dictionary<int, bool>>(modifiedOcsList));
|
||||
|
||||
return Ok(new { isIdopontUjraGeneralasKell, isFogadooraJelentkezettGondviselok });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.InternalServerError, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool IsFogadooraJelentkezettGondviselok(int id, int modositasiIdoszakTipus, Dictionary<int, bool> modifiedOcsList)
|
||||
{
|
||||
var helper = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
TanevCO tanevCO;
|
||||
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
tanevCO = tanevHelper.GetTanevInfo();
|
||||
var fogadooraCo = helper.GetFogadooraById(id);
|
||||
var kezdete = new DateTime();
|
||||
var vege = new DateTime();
|
||||
|
||||
switch (modositasiIdoszakTipus)
|
||||
{
|
||||
case (int)OraModositasiIdoszakTipus.EgyOra:
|
||||
kezdete = fogadooraCo.FogadoOraKezdete;
|
||||
vege = fogadooraCo.FogadoOraKezdete;
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.AdottNaptol:
|
||||
kezdete = fogadooraCo.FogadoOraDatuma;
|
||||
vege = tanevCO.UtolsoTanitasiNap;
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.AdottNapig:
|
||||
kezdete = DateTime.Now;
|
||||
vege = fogadooraCo.FogadoOraDatuma;
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.TeljesIdoszak:
|
||||
kezdete = DateTime.Now;
|
||||
vege = tanevCO.UtolsoTanitasiNap;
|
||||
break;
|
||||
}
|
||||
|
||||
if (modifiedOcsList == null || modifiedOcsList.Count == 0)
|
||||
{
|
||||
return helper.GetFogadooraJelentkezettGondviselokByGroupId(fogadooraCo.GroupId, kezdete, vege).Tables[0].Rows.Count > 0;
|
||||
}
|
||||
|
||||
var ds = helper.GetFogadooraJelentkezettGondviselokDataSet(id);
|
||||
var dv = ds.Tables[0].DefaultView;
|
||||
var filteredList = modifiedOcsList.Where(x => x.Value == false);
|
||||
if (filteredList.Any())
|
||||
{
|
||||
dv.RowFilter = "OsztalyCsoportId IN (" + string.Join(",", filteredList.Select(y => y.Key)) + ")";
|
||||
}
|
||||
return dv.ToTable().Rows.Count > 0;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult ValidateFogadoora(FogadooraModel model)
|
||||
{
|
||||
model = FogadooraLogic.SetFogadooraDate(model);
|
||||
|
||||
TanevCO tanevCO;
|
||||
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
tanevCO = tanevHelper.GetTanevInfo();
|
||||
|
||||
var helper = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var co = new FogadooraCo
|
||||
{
|
||||
Rendszeresseg = model.Rendszeresseg,
|
||||
FogadoOraKezdete = model.FogadoOraKezdete,
|
||||
RendszeresFogadooraElsoDatuma = model.RendszeresFogadooraElsoDatuma,
|
||||
RendszeresFogadooraUtolsoDatuma = model.RendszeresFogadooraUtolsoDatuma,
|
||||
FogadoOraDatuma = model.FogadoOraDatuma,
|
||||
FogadooraDatumList = model.FogadooraDatumList
|
||||
};
|
||||
|
||||
var datumList = helper.GetFogadooraDatumList(co);
|
||||
|
||||
var datumListWithKezdetVege = new List<(DateTime kezdet, DateTime veg)>();
|
||||
foreach (var datum in datumList)
|
||||
{
|
||||
var idopont = (datum.AddHours(model.FogadoOraKezdete.Hour).AddMinutes(model.FogadoOraKezdete.Minute)
|
||||
, datum.AddHours(model.FogadoOraVege.Hour).AddMinutes(model.FogadoOraVege.Minute));
|
||||
|
||||
datumListWithKezdetVege.Add(idopont);
|
||||
}
|
||||
|
||||
var teremOrarendDs = helper.GeTeremOrarendDs(DateTime.Now, tanevCO.UtolsoTanitasiNap, model.TeremId.Value);
|
||||
var pedagogusOrarendDs = helper.GetPedagogusOrarendDs(DateTime.Now, tanevCO.UtolsoTanitasiNap);
|
||||
var pedagogusFogadooraDs = helper.GetPedagogusFogadooraDs(DateTime.Now, tanevCO.UtolsoTanitasiNap);
|
||||
var teremFogadooraDs = helper.GetTeremFogadooraDs(DateTime.Now, tanevCO.UtolsoTanitasiNap, model.TeremId.Value);
|
||||
|
||||
var teremUtkozesList = FogadooraLogic.TeremUtkozesList(teremOrarendDs, datumListWithKezdetVege);
|
||||
var pedagogusUtkozes = FogadooraLogic.PedagogusUtkozesList(pedagogusOrarendDs, datumListWithKezdetVege);
|
||||
var fogadooraUtkozes = FogadooraLogic.FogadooraUtkozesList(pedagogusFogadooraDs, datumListWithKezdetVege, model.Id);
|
||||
var fogadooraTeremUtkozes = FogadooraLogic.FogadooraTeremUtkozesList(teremFogadooraDs, datumListWithKezdetVege, model.Id);
|
||||
|
||||
var figyelmezetetesText = new StringBuilder();
|
||||
figyelmezetetesText.Append(FogadooraResource.FogadooraFelveteleSoranUtkozesLepettFel);
|
||||
var tiltasText = new StringBuilder();
|
||||
tiltasText.Append(FogadooraResource.FogadooraFelveteleSoranUtkozesLepettFel);
|
||||
|
||||
var isFigyelmeztetes = false;
|
||||
var isTiltas = false;
|
||||
|
||||
switch (FogadooraLogic.TeremUtkozesSystemSetting)
|
||||
{
|
||||
case 1: /*Ütközés nem lehetséges*/
|
||||
if (teremUtkozesList.Count > 0)
|
||||
{
|
||||
tiltasText.Append(FogadooraResource.Teremutkozes);
|
||||
isTiltas = true;
|
||||
}
|
||||
|
||||
break;
|
||||
case 2: /*Figyelmeztetés*/
|
||||
//case 3: /*Ütközés lehetséges*/
|
||||
if (teremUtkozesList.Count > 0)
|
||||
{
|
||||
figyelmezetetesText.Append(FogadooraResource.Teremutkozes);
|
||||
isFigyelmeztetes = true;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
switch (FogadooraLogic.NapirendUtkozes)
|
||||
{
|
||||
case 1:
|
||||
if (pedagogusUtkozes.Count > 0)
|
||||
{
|
||||
tiltasText.Append(FogadooraResource.OrarendUtkozes);
|
||||
isTiltas = true;
|
||||
}
|
||||
|
||||
break;
|
||||
case 2:
|
||||
//case 3:
|
||||
if (pedagogusUtkozes.Count > 0)
|
||||
{
|
||||
figyelmezetetesText.Append(FogadooraResource.OrarendUtkozes);
|
||||
isFigyelmeztetes = true;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (fogadooraUtkozes.Count > 0)
|
||||
{
|
||||
tiltasText.AppendFormat(FogadooraResource.FogadooraUtkozes, string.Join(",", fogadooraUtkozes.Select(row => row.Field<DateTime>("FogadooraKezdete").ToString("yyyy.MM.dd. HH:mm"))));
|
||||
isTiltas = true;
|
||||
}
|
||||
if (fogadooraTeremUtkozes.Count > 0)
|
||||
{
|
||||
figyelmezetetesText.AppendFormat(FogadooraResource.FogadooraTeremUtkozes, string.Join(",", fogadooraTeremUtkozes.Select(row => row.Field<DateTime>("FogadooraKezdete").ToString("yyyy.MM.dd. HH:mm"))));
|
||||
isFigyelmeztetes = true;
|
||||
}
|
||||
|
||||
if (isTiltas)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, tiltasText.ToString());
|
||||
}
|
||||
|
||||
if (isFigyelmeztetes)
|
||||
{
|
||||
return Json(new { Valid = false, Text = figyelmezetetesText.Append(FogadooraResource.AkarjafolytatniKerdes).ToString() });
|
||||
}
|
||||
|
||||
return Json(new { Valid = true, Text = string.Empty });
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public JsonResult<List<ExportColumn>> GetExportColumnsForTanar()
|
||||
{
|
||||
List<ExportColumn> Items = new List<ExportColumn>
|
||||
{
|
||||
new ExportColumn() { Field = "OsztalyCsoport", Title = FogadooraResource.OsztalyCsoport },
|
||||
new ExportColumn() { Field = "Terem", Title = FogadooraResource.Terem },
|
||||
new ExportColumn() { Field = "FogadooraKezdete", Title = FogadooraResource.FogadooraKezdete },
|
||||
new ExportColumn() { Field = "FogadooraVege", Title = FogadooraResource.FogadooraVege },
|
||||
new ExportColumn() { Field = "Rendszeresseg", Title = FogadooraResource.Rendszeresseg },
|
||||
new ExportColumn() { Field = "JelentkezesekKezelese", Title = FogadooraResource.JelentkezesekKezelese }
|
||||
};
|
||||
|
||||
return Json(Items);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public JsonResult<List<ExportColumn>> GetExportColumnsForAdmin()
|
||||
{
|
||||
List<ExportColumn> Items = new List<ExportColumn>
|
||||
{
|
||||
new ExportColumn() { Field = "OsztalyCsoport", Title = FogadooraResource.OsztalyCsoport },
|
||||
new ExportColumn() { Field = "Terem", Title = FogadooraResource.Terem },
|
||||
new ExportColumn() { Field = "FogadooraKezdete", Title = FogadooraResource.FogadooraKezdete },
|
||||
new ExportColumn() { Field = "FogadooraVege", Title = FogadooraResource.FogadooraVege },
|
||||
new ExportColumn() { Field = "Pedagogus", Title = FogadooraResource.Pedagogus },
|
||||
new ExportColumn() { Field = "Rendszeresseg", Title = FogadooraResource.Rendszeresseg },
|
||||
new ExportColumn() { Field = "JelentkezesekKezelese", Title = FogadooraResource.JelentkezesekKezelese }
|
||||
};
|
||||
|
||||
return Json(Items);
|
||||
}
|
||||
|
||||
public DataSourceResult GetFogadooraGridForTanarExport(string searchFilter, string sortColumn, string sortDir)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<FogadooraSearchModel>(searchFilter);
|
||||
|
||||
var helper = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var fogadoOrak = helper.GetFogadoora(model.ConvertModelToCo(ClaimData.FelhasznaloId));
|
||||
|
||||
if (sortColumn != "-" && sortDir != "-")
|
||||
{
|
||||
DataSet result = new DataSet();
|
||||
fogadoOrak.Tables[0].DefaultView.Sort = (sortColumn).ToUpper() + " " + (sortDir).ToUpper();
|
||||
result.Tables.Add(fogadoOrak.Tables[0].DefaultView.ToTable());
|
||||
return result.ToDataSourceResult();
|
||||
}
|
||||
|
||||
return fogadoOrak.ToDataSourceResult();
|
||||
}
|
||||
|
||||
public DataSourceResult GetFogadooraGridForAdminExport(string searchFilter, string sortColumn, string sortDir)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<FogadooraSearchModel>(searchFilter);
|
||||
|
||||
var helper = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var fogadoOrak = helper.GetFogadoora(model.ConvertModelToCo(null));
|
||||
|
||||
if (sortColumn != "-" && sortDir != "-")
|
||||
{
|
||||
DataSet result = new DataSet();
|
||||
fogadoOrak.Tables[0].DefaultView.Sort = (sortColumn).ToUpper() + " " + (sortDir).ToUpper();
|
||||
result.Tables.Add(fogadoOrak.Tables[0].DefaultView.ToTable());
|
||||
return result.ToDataSourceResult();
|
||||
}
|
||||
|
||||
return fogadoOrak.ToDataSourceResult();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,288 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Core;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Tanar.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Tanar.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
|
||||
public class HaziFeladatCsatolmanyokApiController : ApiController
|
||||
{
|
||||
private readonly IFileServiceHelper fileServiceHelper;
|
||||
|
||||
public HaziFeladatCsatolmanyokApiController(IFileServiceHelper fileServiceHelper)
|
||||
{
|
||||
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
}
|
||||
|
||||
public DataSourceResult GetHFCsatolmanyokGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<HFCsatolmanyGridModel>(HFCsatolmanyGridModel.HazifeladatCsatolmanyExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(OrarendResource.HazifeladatExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), OrarendResource.HazifeladatCsatolmanyExportFileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<HFCsatolmanyGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
data = data.Replace("-", "");
|
||||
|
||||
var model = JsonConvert.DeserializeObject<HFCsatolmanyokSearchModel>(data) ?? new HFCsatolmanyokSearchModel();
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var tanarId = ClaimData.IsAdministrator ? (int?)null : ClaimData.FelhasznaloId;
|
||||
|
||||
var coList = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHazifeladatCsatolmanyCoList(model.ConvertModelToCo(tanarId));
|
||||
|
||||
var modelList = new List<HFCsatolmanyGridModel>();
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new HFCsatolmanyGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
public DataSourceResult GetHFCsatolmanyokGridForHazi(int haziFeladatId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
||||
{
|
||||
GridParameters = Converter.GridParameter(request)
|
||||
};
|
||||
|
||||
DataSet ds = helper.GetCsatolmanyokForHaziFeladatDataSet(haziFeladatId);
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteCsatolmany([FromBody] int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType(), fileServiceHelper);
|
||||
helper.DeleteCsatolmany(id, true);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.FajlTorleseSikertelen) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteSelectedCsatolmany(List<int> idList)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType(), fileServiceHelper);
|
||||
|
||||
foreach (var item in idList)
|
||||
{
|
||||
helper.DeleteCsatolmany(item, true);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.FajlokTorleseSikertelen) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Tanulo.ClaimValue)]
|
||||
public HttpResponseMessage DownloadCsatolmanyFile(DownloadModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType(), fileServiceHelper);
|
||||
var co = helper.GetCsatolmanyFile(model.Id);
|
||||
|
||||
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
|
||||
response.Content = new StreamContent(co.Stream);
|
||||
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
|
||||
response.Content.Headers.ContentDisposition.FileName = co.FileName;
|
||||
return response;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.InternalServerError);
|
||||
response.Content = new StringContent(@"
|
||||
<!DOCTYPE html>
|
||||
<html lang=""hu"">
|
||||
<head>
|
||||
<meta charset=""utf-8"" />
|
||||
<meta name=""format-detection"" content=""telephone=no"" />
|
||||
<meta name=""viewport"" content=""width=device-width, initial-scale=1.0"" />
|
||||
<meta http-equiv=""X-UA-Compatible"" content =""IE=Edge"" />
|
||||
<title>Hiba file letöltés során!</title>
|
||||
<link rel=""preconnect"" href=""https://fonts.googleapis.com"" crossorigin>
|
||||
<link rel=""preconnect"" href=""https://fonts.gstatic.com"" crossorigin>
|
||||
<link href=""https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400;1,600&family=Roboto+Condensed:wght@300;400;700&display=swap"" rel=""stylesheet"">
|
||||
<link rel=""icon"" href=""~/favicon.ico"" type=""image/x-icon"">
|
||||
<style>
|
||||
html {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
font-family: ""Open Sans"";
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #445261;
|
||||
background: #406a7c; /* For browsers that do not support gradients */
|
||||
background: -webkit-radial-gradient(circle, #518094, #406a7c); /* Safari */
|
||||
background: -o-radial-gradient(circle, #518094, #406a7c); /* Opera 11.6 to 12.0 */
|
||||
background: -moz-radial-gradient(circle, #518094, #406a7c); /* Firefox 3.6 to 15 */
|
||||
background: radial-gradient(circle, #518094, #406a7c); /* Standard syntax */
|
||||
}
|
||||
|
||||
# main {
|
||||
height: 100 %;
|
||||
top: 0;
|
||||
position: absolute;
|
||||
width: 100 %;
|
||||
background-repeat: no-repeat;
|
||||
background-position: bottom right 30px;
|
||||
}
|
||||
#main h2 {
|
||||
color: white;
|
||||
font-weight: 400;
|
||||
font-size: 2em;
|
||||
}
|
||||
#main .login_logo {
|
||||
margin: 0 auto;
|
||||
margin-top: 10%;
|
||||
width: 400px;
|
||||
display: block;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
height: 100px;
|
||||
padding-top: 25px;
|
||||
}
|
||||
#main .login_container {
|
||||
width: 40%;
|
||||
margin: 0 auto;
|
||||
display: block;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#main .login_problems {
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
display: block;
|
||||
background-color: transparent;
|
||||
line-height: 30px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#main .login_header {
|
||||
background-color: transparent;
|
||||
text-align: center;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
#main .login_content {
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
overflow-y: auto;
|
||||
color: white;
|
||||
font-size: 18px;
|
||||
font-weight: 300;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id = ""main"" >
|
||||
<div class=""login_logo"">
|
||||
</div>
|
||||
|
||||
<div class=""login_container"">
|
||||
<div class=""login_header"">
|
||||
<h2>Hiba történt a file letöltése során!</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class=""login_problems"">
|
||||
<div class=""login_content"">
|
||||
A file service nem elérhető jelenleg vagy a letölteni kívánt filet már törölték.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
");
|
||||
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public Dictionary<string, string> GetFelhasznaloAdatmennyisege(int felhasznaloId)
|
||||
{
|
||||
Dictionary<string, string> result = new Dictionary<string, string>();
|
||||
|
||||
var dktFileHelper = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var osszMeret = dktFileHelper.GetHaziFeladatCsatolmanyokOsszMeret(felhasznaloId);
|
||||
var maxMegengedettAdatmennyiseg = dktFileHelper.GetMaxAdatmennyisegFelhasznalokent(felhasznaloId);
|
||||
|
||||
var marFeltoltottAdatmennyisegInMB = string.Format("{0:0.00}", CommonUtils.ConvertByteToMByte(osszMeret)); // DB-ben byte van
|
||||
var maxAdatmennyisegInMB = string.Format("{0:0.00}", CommonUtils.ConvertKByteToGByte(maxMegengedettAdatmennyiseg)); // DB-ben kByte van
|
||||
|
||||
result.Add("marFeltoltottAdatmennyiseg", ClaimData.IsAdministrator ? string.Format(TanarResource.MarFeltoltottAdatmennyiseg, marFeltoltottAdatmennyisegInMB) : string.Format(TanarResource.KorabbanMarFeltoltottAdatmennyiseg, marFeltoltottAdatmennyisegInMB));
|
||||
result.Add("maxAdatmennyiseg", ClaimData.IsAdministrator ? string.Format(TanarResource.FelhasznalokentMaxAdatmennyiseg, maxAdatmennyisegInMB) : string.Format(TanarResource.MaximalisMegengedettAdatmennyiseg, maxAdatmennyisegInMB));
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Areas.Tanar.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Tanar.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Tanar.ClaimValue)]
|
||||
public class HelyettesitendoTanarOraiApiController : ApiController
|
||||
{
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Tanar.ClaimValue)]
|
||||
public DataSourceResult GetHelyettesitesGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
TanarHelyettesitesekKereseseSearchModel model = JsonConvert.DeserializeObject<TanarHelyettesitesekKereseseSearchModel>(data);
|
||||
TanarHelyettesitesekKereseseCO co = ConvertModelToCo(model);
|
||||
|
||||
var helper = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
var tanarorai = helper.GetHelyettesitettTanorak(co);
|
||||
return tanarorai.ToDataSourceResult();
|
||||
}
|
||||
|
||||
private TanarHelyettesitesekKereseseCO ConvertModelToCo(TanarHelyettesitesekKereseseSearchModel model)
|
||||
{
|
||||
TanarHelyettesitesekKereseseCO co = new TanarHelyettesitesekKereseseCO()
|
||||
{
|
||||
HelyettesitesKezdete = model.IdoszakKezdete,
|
||||
HelyettesitesVege = model.IdoszakVege,
|
||||
HelyettesitettId = model.HelyettesitettId,
|
||||
HelyettesitoId = model.HelyettesitoId
|
||||
};
|
||||
|
||||
return co;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,192 @@
|
|||
using System;
|
||||
using System.Data;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Tanar.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Tanar.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class HelyettesitesekKereseseApiController : ApiController
|
||||
{
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public DataSourceResult GetHelyettesitesGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))]
|
||||
DataSourceRequest request)
|
||||
{
|
||||
HelyettesitesSearchModel model = JsonConvert.DeserializeObject<HelyettesitesSearchModel>(data);
|
||||
if (!model.HelyettesitettId.IsEntityId() && model.IdoszakKezdete != null)
|
||||
{
|
||||
return new DataSourceResult();
|
||||
}
|
||||
|
||||
HelyettesitesekKereseseCo co = ConvertModelToCo(model);
|
||||
|
||||
var helper = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
DataSet tanarOraiDataSet = helper.GetTanarOrai(co);
|
||||
DataSourceResult result = tanarOraiDataSet.ToDataSourceResult();
|
||||
return result;
|
||||
}
|
||||
|
||||
public DataSourceResult GetHelyettesitesekAjanlasa(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))]
|
||||
DataSourceRequest request)
|
||||
{
|
||||
HelyettesitesGridModel model = JsonConvert.DeserializeObject<HelyettesitesGridModel>(data);
|
||||
LehetsegesHelyettesitoTanarokCO co = ConvertGridModelToCo(model);
|
||||
|
||||
var helper = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
DataSet tanarListDataSet = helper.GetHelyettesitesekAjanlasa(co);
|
||||
return tanarListDataSet.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage OraElmarad([FromBody] HelyettesitesBeallitasaModel model)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var ora = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOrarendiOraById(model.HelyettesitendoOraID);
|
||||
try
|
||||
{
|
||||
new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveAdminNemMegtartottOra(
|
||||
ora.ID.Value,
|
||||
new DateTime(model.Datum.Year, model.Datum.Month, model.Datum.Day, ora.OraKezdete.Hour, ora.OraKezdete.Minute, ora.OraKezdete.Second),
|
||||
new DateTime(model.Datum.Year, model.Datum.Month, model.Datum.Day, ora.OraVege.Hour, ora.OraVege.Minute, ora.OraVege.Second), model.HelyettesitesOka);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteElmaradtOra(int tanoraId, int helyettesitettOrarendiOraId, DateTime helyettesitettDatum)
|
||||
{
|
||||
try
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetActiveSessionConnectionType();
|
||||
var helper = new TanoraHelper(connectionType);
|
||||
var orarendHelper = new OrarendHelper(connectionType);
|
||||
helper.NaplozasTorlese(tanoraId, true);
|
||||
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
orarendiOraHelper.OrarendValtozasCacheMentes(helyettesitettOrarendiOraId, helyettesitettDatum);
|
||||
orarendHelper.GenerateTeljesOrarend(helyettesitettOrarendiOraId);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message) { UnHandledException = e };
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran) { UnHandledException = e };
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage HelyettesitesTorlese([FromBody] HelyettesitesBeallitasaModel model)
|
||||
{
|
||||
if (!model.HelyettesitesID.HasValue)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var helper = new HelyettesitesHelper(connectionType);
|
||||
var orarendHelper = new OrarendHelper(connectionType);
|
||||
SendEmailCo sendEmailCo = new UzenetekHelper(connectionType).GetHelyettesitesTorlesSendEmailCo(model.HelyettesitesID.Value);
|
||||
helper.DeleteHelyettesites(model.HelyettesitesID.Value);
|
||||
bool mustSendEmail = helper.GetUserHelyettesitesProfilData(model.HelyettesitoTanarID);
|
||||
if (mustSendEmail)
|
||||
{
|
||||
new UzenetekHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SendEmail(sendEmailCo);
|
||||
}
|
||||
|
||||
orarendHelper.GenerateTeljesOrarend();
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveHelyettesites([FromBody] HelyettesitesBeallitasaModel model)
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var hetHelper = new NaptariHetHelper(connectionType);
|
||||
var hetSorszam = hetHelper.GetNaptariHetSorszamByDate(model.Datum);
|
||||
|
||||
var helper = new HelyettesitesHelper(connectionType);
|
||||
var orarendHelper = new OrarendHelper(connectionType);
|
||||
|
||||
bool mustSendEmail = helper.GetUserHelyettesitesProfilData(model.HelyettesitoTanarID);
|
||||
var helyettesitesResultCo = helper.SaveHelyettesites(model.HelyettesitendoOraID, model.HelyettesitoTanarID, model.HelyettesitesTipusId, model.HelyettesitesOka, hetSorszam, model.Datum.Date, model.IsTuloraMentes);
|
||||
if (helyettesitesResultCo.ErrorId > 0)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(helyettesitesResultCo.ErrorId.Value));
|
||||
}
|
||||
|
||||
if (helyettesitesResultCo.HelyettesitesId.Value > 0 && mustSendEmail)
|
||||
{
|
||||
SendEmailCo sendEmailCo = new UzenetekHelper(connectionType).GetHelyettesitesSendEmailCo(helyettesitesResultCo.HelyettesitesId.Value);
|
||||
new UzenetekHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SendEmail(sendEmailCo);
|
||||
}
|
||||
|
||||
orarendHelper.GenerateTeljesOrarend(model.HelyettesitendoOraID);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
private HelyettesitesekKereseseCo ConvertModelToCo(HelyettesitesSearchModel model)
|
||||
{
|
||||
var selectedTanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo();
|
||||
var co = new HelyettesitesekKereseseCo
|
||||
{
|
||||
HelyettesitesKezdete = model.IdoszakKezdete ?? selectedTanev.KezdoNap,
|
||||
HelyettesitesVege = model.IdoszakVege == null ? selectedTanev.UtolsoNap : model.IdoszakVege.Value.AddDays(1),
|
||||
HelyettesitettId = model.HelyettesitettId ?? 0
|
||||
};
|
||||
return co;
|
||||
}
|
||||
|
||||
private LehetsegesHelyettesitoTanarokCO ConvertGridModelToCo(HelyettesitesGridModel model)
|
||||
{
|
||||
var co = new LehetsegesHelyettesitoTanarokCO
|
||||
{
|
||||
orarendiOraId = model.HelyettesitettOrarendiOraId,
|
||||
datum = model.HelyettesitettOraKezdete,
|
||||
};
|
||||
return co;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using System.Web.Http.Results;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Tanar.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Tanar.ClaimValue)]
|
||||
public class NemNaplozottTanorakApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetNemNaplozottTanorakGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<NemNaplozottTanorakSearchModel>(data);
|
||||
var co = NemNaplozottTanorakSearchModel.ConvertModelToCo(model);
|
||||
co.TanarSrc = ClaimData.FelhasznaloId;
|
||||
|
||||
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
orarendHelper.GridParameters = Converter.GridParameter(request);
|
||||
DataSet ds = orarendHelper.GetNemNaplozottOrarendiOrak(co);
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
public DataSourceResult GetNemNaplozottTanorakExportGrid(string searchFilter, string sortColumn, string sortDir)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<NemNaplozottTanorakSearchModel>(searchFilter);
|
||||
var co = NemNaplozottTanorakSearchModel.ConvertModelToCo(model);
|
||||
co.TanarSrc = ClaimData.FelhasznaloId;
|
||||
|
||||
var h = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
DataSet orak = h.GetNemNaplozottOrarendiOrak(co);
|
||||
|
||||
if (sortColumn != "-" && sortDir != "-")
|
||||
{
|
||||
DataSet result = new DataSet();
|
||||
orak.Tables[0].DefaultView.Sort = (sortColumn).ToUpper() + " " + (sortDir).ToUpper();
|
||||
result.Tables.Add(orak.Tables[0].DefaultView.ToTable());
|
||||
return result.ToDataSourceResult();
|
||||
}
|
||||
return orak.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public JsonResult<List<ExportColumn>> GetExportColumns()
|
||||
{
|
||||
List<ExportColumn> Items = new List<ExportColumn>();
|
||||
Items.Add(new ExportColumn() { Field = "OraKezdeteDateST", Title = OrarendResource.Datum });
|
||||
Items.Add(new ExportColumn() { Field = "HetNapjaValos_DNAME", Title = OrarendResource.HetNapja });
|
||||
Items.Add(new ExportColumn() { Field = "Oraszam", Title = OrarendResource.Oraszam });
|
||||
Items.Add(new ExportColumn() { Field = "OraKezdeteTimeText", Title = OrarendResource.OraKezdete });
|
||||
Items.Add(new ExportColumn() { Field = "OsztalyNev", Title = OrarendResource.OsztalyCsoport });
|
||||
Items.Add(new ExportColumn() { Field = "TargyNev", Title = OrarendResource.Targy });
|
||||
Items.Add(new ExportColumn() { Field = "HelyettesitoTanarNev", Title = OrarendResource.HelyettesitoTanar });
|
||||
return Json(Items);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,125 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Tanar.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(
|
||||
KretaClaimPackages.Osztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.Tanar.ClaimValue
|
||||
)]
|
||||
public class TanarBejelentettSzamonkeresekApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetBejelentettSzamonkeresekGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<BejelentettSzamonkeresekGridModel>(BejelentettSzamonkeresekGridModel.BejelentettSzamonkeresekExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(OrarendResource.BejelentettSzamonkeresekExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{OrarendResource.BejelentettSzamonkeresekExportFileName}_{DateTime.Now:yyyy_MM_dd}.xlsx");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<BejelentettSzamonkeresekGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<BejelentettSzamonkeresekSearchModel>(data);
|
||||
///NOTE: Azért kell null-ra állítani, hogy láthassák egymás számonkéréseit a tanárok. Null-al nem szűrűnk így tanárra.
|
||||
model.TanarSrc = null;
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetBejelentettSzamonkeresekCoList(model.ConvertToCo());
|
||||
|
||||
var modelList = new List<BejelentettSzamonkeresekGridModel>();
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new BejelentettSzamonkeresekGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
public DataSourceResult GetBejelentettSzamonkeresekExportGrid(string searchFilter, string sortColumn, string sortDir)
|
||||
{
|
||||
BejelentettSzamonkeresekSearchModel model = JsonConvert.DeserializeObject<BejelentettSzamonkeresekSearchModel>(searchFilter);
|
||||
model.TanarSrc = ClaimData.FelhasznaloId;
|
||||
|
||||
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var ds = helper.GetBejelentettSzamonkeresekGrid(model.ConvertToCo());
|
||||
ds.Tables[0].Columns.Add("SzamonkeresDatumaStr", typeof(string));
|
||||
ds.Tables[0].Columns.Add("BejelentesDatumaStr", typeof(string));
|
||||
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
var dt = DateTime.Parse(row["SzamonkeresDatuma"].ToString());
|
||||
row["SzamonkeresDatumaStr"] = dt.ToString("yyyy.MM.dd.");
|
||||
var dt2 = DateTime.Parse(row["BejelentesDatuma"].ToString());
|
||||
row["BejelentesDatumaStr"] = dt2.ToString("yyyy.MM.dd.");
|
||||
}
|
||||
|
||||
if (sortColumn != "-" && sortDir != "-")
|
||||
{
|
||||
DataSet result = new DataSet();
|
||||
ds.Tables[0].DefaultView.Sort = (sortColumn).ToUpper() + " " + (sortDir).ToUpper();
|
||||
result.Tables.Add(ds.Tables[0].DefaultView.ToTable());
|
||||
return result.ToDataSourceResult();
|
||||
}
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[System.Web.Http.HttpPost]
|
||||
public System.Web.Http.Results.JsonResult<List<ExportColumn>> GetExportColumns()
|
||||
{
|
||||
List<ExportColumn> Items = new List<ExportColumn>();
|
||||
|
||||
Items.Add(new ExportColumn() { Field = "SzamonkeresDatumaStr", Title = OrarendResource.Datum });
|
||||
Items.Add(new ExportColumn() { Field = "HetNapja_DNAME", Title = OrarendResource.HetNapja });
|
||||
Items.Add(new ExportColumn() { Field = "Oraszam", Title = OrarendResource.Oraszam });
|
||||
Items.Add(new ExportColumn() { Field = "TargyNev", Title = OrarendResource.Targy });
|
||||
Items.Add(new ExportColumn() { Field = "OsztalyNev", Title = OrarendResource.OsztalyCsoport });
|
||||
Items.Add(new ExportColumn() { Field = "ErtekelesModNev", Title = OrarendResource.SzamonkeresMod });
|
||||
Items.Add(new ExportColumn() { Field = "SzamonkeresMegnevezes", Title = OrarendResource.SzamonkeresMegnevezes });
|
||||
Items.Add(new ExportColumn() { Field = "BejelentesDatumaStr", Title = OrarendResource.BejelentesDatuma });
|
||||
|
||||
return Json(Items);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,94 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Tanar.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Tanar.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Tanar.ClaimValue)]
|
||||
[ApiRolePackageDenyAuthorize(KretaClaimPackages.IsDualisKepzohelyiOktato.ClaimValue)]
|
||||
public class TanarOralatogatasokListajaApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetOralatogatasokGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<OralatogatasokKereseseGridModel>(OralatogatasokKereseseGridModel.OralatogatasExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(OrarendResource.Tanorak, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), OralatogatasokResource.ExportFileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<OralatogatasokKereseseGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<OralatogatasokKereseseModel>(data);
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new OralatogatasokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOralatogatasCoList(model.ConvertToCo(isTanar: true));
|
||||
|
||||
var modelList = new List<OralatogatasokKereseseGridModel>();
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new OralatogatasokKereseseGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteOralatogatas(object data)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<OralatogatasokKereseseGridModel>(data.ToString());
|
||||
|
||||
var tanitasiOraId = int.Parse(model.TanitasiOraId);
|
||||
var alkalmazottId = int.Parse(model.AlkalmazottId);
|
||||
|
||||
try
|
||||
{
|
||||
var helper = new OralatogatasokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.DeleteOralatogatas(tanitasiOraId, alkalmazottId);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (EntityDeleteFailedException)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AzElemNemTorolheto);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue