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,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);
}
}
}
}

View 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();
}
}
}

View file

@ -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;
}
}
}

View file

@ -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;
}
}
}

View file

@ -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;
}
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}
}