init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,543 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.Results;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Classes.ComboBox;
|
||||
using Kreta.BusinessLogic.Exceptions;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
using SDA.DataProvider;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class AdatszotarApiController : ApiController
|
||||
{
|
||||
/// <summary>
|
||||
/// Adatszótár grid visszaadás
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public DataSourceResult GetAdatszotarGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<AdatszotarSearchModel>(data);
|
||||
|
||||
if (!model.AdatszotarTipusTypeId.IsEntityId())
|
||||
{
|
||||
return new DataSourceResult();
|
||||
}
|
||||
|
||||
var (gridParameter, modelList) = GetGridData(request, model.AdatszotarTipusTypeId);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<AdatszotarSearchModel>(data);
|
||||
|
||||
if (!model.AdatszotarTipusTypeId.IsEntityId())
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AdatszotarTipusaNincsMegadva);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(request, model.AdatszotarTipusTypeId);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var exportAttribute = model.AdatszotarTipusTypeId == (int)GeneratedAdatszotarTipusEnum.NapTipus ? AdatszotarGridModel.AdatszotarNapTipusExportAttributeId : AdatszotarGridModel.AdatszotarExportAttributeId;
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AdatszotarGridModel>(exportAttribute);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(AdminisztracioResource.AdatszotarExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), AdminisztracioResource.AdatszotarExportFileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<AdatszotarGridModel> modelList) GetGridData(DataSourceRequest request, int? adatszotarTipusTypeId)
|
||||
{
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAdatszotarCoList((GeneratedAdatszotarTipusEnum)adatszotarTipusTypeId);
|
||||
|
||||
var modelList = new List<AdatszotarGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new AdatszotarGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveAdatszotarData(AdatszotarGridModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
if (model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.SorolasOkaTipus)
|
||||
{
|
||||
if (model.ZaradekSzovegList.Any(x => !string.IsNullOrWhiteSpace(x.Szoveg) && x.Szoveg.Length > 255))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, string.Format(CommonResource.ZaradekSzoveg0Max255Karakter, ((AnyanyelvEnum)model.ZaradekSzovegList.First(x => x.Szoveg.Length > 255).NyelvId).GetDisplayName(ClaimData.SelectedTanevID.Value)));
|
||||
}
|
||||
}
|
||||
|
||||
if (Core.Constants.NemBovithetoAdatszotarTipusLista.Contains(model.AdatszotarTipusId) || model.IsProtected)
|
||||
{
|
||||
if (!model.AdatszotarID.HasValue || model.AdatszotarID.Value == 0)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ErrorResource.KivalasztottAdatszotarNemBovitheto);
|
||||
}
|
||||
else
|
||||
{
|
||||
var co = helper.GetAdatszotarElem(model.AdatszotarID.Value);
|
||||
co.Lathato = model.IsLathato;
|
||||
if (model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.NapTipus)
|
||||
{
|
||||
co.IsSorszamozando = model.IsSorszamozando;
|
||||
co.IsTanorai = model.IsTanorai;
|
||||
co.IsTanorankivuli = model.IsTanorankivuli;
|
||||
co.IsLeNemKotottMunkaido = model.IsLeNemKotottMunkaido;
|
||||
}
|
||||
|
||||
if (model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.ErtekelesMod)
|
||||
{
|
||||
co.Color = model.Color != null ? model.Color.Replace("#", "") : "";
|
||||
co.IsBold = model.IsBold;
|
||||
co.Suly = model.Suly;
|
||||
}
|
||||
|
||||
if (model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.SorolasOkaTipus)
|
||||
{
|
||||
co.ZaradekSzovegCoList =
|
||||
model.ZaradekSzovegList.Where(x => x.NyelvId != (int)AnyanyelvEnum.magyar).ToList().ConvertAll(x => new AdatszotarZaradekNyelvCo
|
||||
{
|
||||
NyelvId = x.NyelvId,
|
||||
Name = x.Szoveg
|
||||
});
|
||||
}
|
||||
|
||||
helper.Update(co, ClaimData.KovTanevID);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
}
|
||||
|
||||
if (ModelState.IsValid &&
|
||||
(model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.ErtekelesMod ||
|
||||
model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.NapTipus ||
|
||||
model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.SorolasOkaTipus ||
|
||||
!model.IsProtected))
|
||||
{
|
||||
if (model.AdatszotarID.HasValue && model.AdatszotarID > 0)
|
||||
{
|
||||
AdatszotarCO co = model.ToCo();
|
||||
helper.Update(co, ClaimData.KovTanevID);
|
||||
}
|
||||
else
|
||||
{
|
||||
AdatszotarCO co = model.ToCo();
|
||||
|
||||
helper.Insert(co);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
else if (model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.ErtekelesMod || model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.NapTipus || !model.IsProtected)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ErrorResource.VedettAdatszotarnakAMegnevezesetNemLehetModositani);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
}
|
||||
catch (UniqueKeyViolationException)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottNevMarLetezik);
|
||||
}
|
||||
catch (CannotBeInsertedException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adatszótár láthatóságának beállítása és mentése
|
||||
/// </summary>
|
||||
/// <param name="elemId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SetLathatosag([FromBody] string elemId)
|
||||
{
|
||||
AdatszotarHelper helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var co = helper.GetAdatszotarElem(Convert.ToInt32(elemId));
|
||||
co.Lathato = !co.Lathato;
|
||||
helper.Update(co, ClaimData.KovTanevID);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adatszótár aktiválás mentés
|
||||
/// </summary>
|
||||
/// <param name="parameters"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveAdatszotarActivate([FromBody] ItemListModel parameters)
|
||||
{
|
||||
if (parameters.Items.Count == 0)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.ValasszonKiLegalabbEgyElemet);
|
||||
}
|
||||
|
||||
bool success = GroupModifyItemActivity(parameters, true);
|
||||
if (!success)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, AdminisztracioResource.AktivalasNemLehetsegesAzElemVedett);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adatszótár deaktiválás mentés
|
||||
/// </summary>
|
||||
/// <param name="parameters"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveAdatszotarDeactivate([FromBody] ItemListModel parameters)
|
||||
{
|
||||
if (parameters.Items.Count == 0)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.ValasszonKiLegalabbEgyElemet);
|
||||
}
|
||||
|
||||
bool success = GroupModifyItemActivity(parameters, false);
|
||||
if (!success)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, AdminisztracioResource.DeaktivalasNemLehetsegesAzElemVedett);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveElementsOrder(OrderItemListModel parameters)
|
||||
{
|
||||
if (parameters.Items.Count == 0)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, AdminisztracioResource.NincsAdatszotarLekerveMentesCsakKeresesUtanLehetseges);
|
||||
}
|
||||
|
||||
foreach (var item in parameters.Items)
|
||||
{
|
||||
if (item.Sorszam <= 0)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, AdminisztracioResource.SorszamErtekeCsakPozitivSzamLehet);
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
foreach (var item in parameters.Items)
|
||||
{
|
||||
helper.UpdateSorszam(item.Id, item.Sorszam, ClaimData.KovTanevID);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (CannotBeModifiedException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adatszótár törlés
|
||||
/// </summary>
|
||||
/// <param name="parameters"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteAdatszotar([FromBody] int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
if (helper.IsProtected(id))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, AdminisztracioResource.TorlesNemLehetsegesAzElemVedett);
|
||||
}
|
||||
|
||||
helper.Delete(id);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var uzenet = string.Format(ErrorResource.AdatszotarNemTorolhetoKapcsolatMiatt, ex.ConnectionErrorMessage);
|
||||
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
||||
}
|
||||
catch (StatusError)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AzElemNemTorolhetoMertEgyVagyTobbKapcsolodasaVan) { UnHandledException = e };
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult DeleteSelectedAdatszotar(List<int> idList)
|
||||
{
|
||||
var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
string errorMsg = string.Empty;
|
||||
var counter = 0;
|
||||
|
||||
foreach (var id in idList)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (helper.IsProtected(id))
|
||||
{
|
||||
var adatszotarElem = helper.GetAdatszotarElem(id);
|
||||
errorMsg += $"{adatszotarElem.Megnevezes}: {AdminisztracioResource.TorlesNemLehetsegesAzElemVedett}" + Environment.NewLine + Environment.NewLine;
|
||||
continue;
|
||||
}
|
||||
|
||||
helper.Delete(id);
|
||||
|
||||
counter++;
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var adatszotarElem = helper.GetAdatszotarElem(id);
|
||||
var uzenet = string.Format(ErrorResource.AdatszotarNemTorolhetoKapcsolatMiatt, ex.ConnectionErrorMessage);
|
||||
|
||||
errorMsg += $"{adatszotarElem.Megnevezes}: {uzenet}" + Environment.NewLine + Environment.NewLine;
|
||||
continue;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
var adatszotarElem = helper.GetAdatszotarElem(id);
|
||||
errorMsg += $"{adatszotarElem.Megnevezes}: {ErrorResource.AzElemNemTorolhetoMertEgyVagyTobbKapcsolodasaVan}" + Environment.NewLine + Environment.NewLine;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(errorMsg))
|
||||
return Json(new { Message = string.Format(ErrorResource.NSorTorlesSikeres, counter) });
|
||||
|
||||
if (counter > 0)
|
||||
{
|
||||
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter);
|
||||
}
|
||||
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
|
||||
}
|
||||
|
||||
#region Helpers
|
||||
|
||||
private AdatszotarCO Convert_Model_to_CO(AdatszotarGridModel model)
|
||||
{
|
||||
AdatszotarCO co = new AdatszotarCO
|
||||
{
|
||||
ID = model.AdatszotarID,
|
||||
AdatszotarTipus = model.AdatszotarTipusNev,
|
||||
AdatszotarTipusId = model.AdatszotarTipusId,
|
||||
Lathato = model.IsLathato,
|
||||
Megnevezes = model.Megnevezes,
|
||||
Sorszam = model.Sorszam,
|
||||
Megnevezes1 = model.Megnevezes1,
|
||||
Megnevezes2 = model.Megnevezes2,
|
||||
Megnevezes3 = model.Megnevezes3,
|
||||
Megnevezes4 = model.Megnevezes4,
|
||||
Color = model.Color != null ? model.Color.Replace("#", "") : "",
|
||||
IsBold = model.IsBold,
|
||||
Suly = model.Suly,
|
||||
Protected = model.IsProtected,
|
||||
IsSorszamozando = model.IsSorszamozando,
|
||||
IsTanorai = model.IsTanorai,
|
||||
IsTanorankivuli = model.IsTanorankivuli,
|
||||
IsLeNemKotottMunkaido = model.IsLeNemKotottMunkaido,
|
||||
};
|
||||
|
||||
return co;
|
||||
}
|
||||
|
||||
private AdatszotarGridModel Convert_CO_to_Model(AdatszotarCO co)
|
||||
{
|
||||
AdatszotarGridModel model = new AdatszotarGridModel()
|
||||
{
|
||||
ID = string.Empty,
|
||||
AdatszotarTipusNev = co.AdatszotarTipus,
|
||||
AdatszotarTipusId = co.AdatszotarTipusId,
|
||||
AdatszotarID = co.ID,
|
||||
IsLathato = co.Lathato ?? false,
|
||||
Megnevezes = co.Megnevezes,
|
||||
Sorszam = co.Sorszam,
|
||||
Megnevezes1 = co.Megnevezes1,
|
||||
Megnevezes2 = co.Megnevezes2,
|
||||
Megnevezes3 = co.Megnevezes3,
|
||||
Megnevezes4 = co.Megnevezes4,
|
||||
Color = "#" + co.Color != null ? co.Color : "000000",
|
||||
IsBold = co.IsBold,
|
||||
Suly = co.Suly,
|
||||
IsProtected = co.Protected,
|
||||
IsSorszamozando = co.IsSorszamozando,
|
||||
IsTanorai = co.IsTanorai,
|
||||
IsTanorankivuli = co.IsTanorankivuli,
|
||||
IsLeNemKotottMunkaido = co.IsLeNemKotottMunkaido,
|
||||
};
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
public AdatszotarGridModel GetAdatszotarElem(int id)
|
||||
{
|
||||
return new AdatszotarGridModel(new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAdatszotarElem(id));
|
||||
}
|
||||
|
||||
private bool GroupModifyItemActivity(ItemListModel parameters, bool active)
|
||||
{
|
||||
var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var adatszotarIds = new List<int>();
|
||||
foreach (var item in parameters.Items)
|
||||
{
|
||||
adatszotarIds.Add(item.Id);
|
||||
}
|
||||
|
||||
bool success = helper.ModifyItemActivity(adatszotarIds, active);
|
||||
return success;
|
||||
}
|
||||
|
||||
private DataSet FormatDataset(DataSet ds)
|
||||
{
|
||||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||||
{
|
||||
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
|
||||
{
|
||||
if (ds.Tables[0].Columns[j].ColumnName == "Lathato")
|
||||
ds.Tables[0].Rows[i]["Lathato"] = SDAConvert.ToBooleanFromTF(ds.Tables[0].Rows[i]["Lathato"], false);
|
||||
|
||||
if (ds.Tables[0].Columns[j].ColumnName == "Protected")
|
||||
ds.Tables[0].Rows[i]["Protected"] = SDAConvert.ToBooleanFromTF(ds.Tables[0].Rows[i]["Protected"], false);
|
||||
}
|
||||
}
|
||||
|
||||
return ds;
|
||||
}
|
||||
|
||||
public class ItemListModel
|
||||
{
|
||||
public List<ItemModel> Items { set; get; }
|
||||
}
|
||||
|
||||
public class ItemModel
|
||||
{
|
||||
public int Id { set; get; }
|
||||
}
|
||||
|
||||
public class OrderItemListModel
|
||||
{
|
||||
public List<OrderItemModel> Items { set; get; }
|
||||
}
|
||||
|
||||
public class OrderItemModel
|
||||
{
|
||||
public int Id { set; get; }
|
||||
|
||||
public int Sorszam { set; get; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetAdatszotarTipusList()
|
||||
{
|
||||
var tipusok = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEditableAdatszotarTipusok().OrderBy(x => x.megnevezes).ToList();
|
||||
|
||||
var dropdownListItems = new List<ComboBoxListItem>();
|
||||
|
||||
foreach ((int id, string megnevezes) in tipusok)
|
||||
{
|
||||
var sli = new ComboBoxListItem() { Text = megnevezes, Value = id.ToString() };
|
||||
dropdownListItems.Add(sli);
|
||||
}
|
||||
|
||||
return Json(dropdownListItems);
|
||||
}
|
||||
|
||||
public HttpResponseMessage ChangeSelectedAdatszotarToLathato(List<int> idList)
|
||||
{
|
||||
AdatszotarHelper helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
foreach (var id in idList)
|
||||
{
|
||||
var co = helper.GetAdatszotarElem(Convert.ToInt32(id));
|
||||
co.Lathato = true;
|
||||
helper.Update(co, ClaimData.KovTanevID);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
public HttpResponseMessage ChangeSelectedAdatszotarToRejtett(List<int> idList)
|
||||
{
|
||||
AdatszotarHelper helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
foreach (var id in idList)
|
||||
{
|
||||
var co = helper.GetAdatszotarElem(Convert.ToInt32(id));
|
||||
co.Lathato = false;
|
||||
helper.Update(co, ClaimData.KovTanevID);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class AktivTanevValtasaApiController : ApiController
|
||||
{
|
||||
public AktivTanevValtasaModel GetAktivTanevValtasaModel()
|
||||
{
|
||||
DataSet ds;
|
||||
DataSet dsAlkalmazottak;
|
||||
var helper = new AdminHelper(!ClaimData.SelectedTanevID.HasValue ? ConnectionTypeExtensions.GetActiveSessionConnectionType() : ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
ds = helper.GetAktivTanevValtasaModel(ClaimData.KovTanevID.Value);
|
||||
dsAlkalmazottak = helper.GetAlkalmazottakAlapErtekekkel(ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny);
|
||||
return ConvertDataSetToModel(ds, dsAlkalmazottak);
|
||||
}
|
||||
|
||||
public DataSourceResult GetAlkalmazottTorlesGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var thelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetNextSessionConnectionType());
|
||||
thelper.GridParameters = Converter.GridParameter(request);
|
||||
|
||||
var termek = thelper.TanevValtasAlkalmazottTorlesKereses();
|
||||
return termek.ToDataSourceResult();
|
||||
}
|
||||
|
||||
#region Helpers
|
||||
|
||||
public AktivTanevValtasaModel ConvertDataSetToModel(DataSet ds, DataSet dsAlkalmazottak)
|
||||
{
|
||||
var model = new AktivTanevValtasaModel();
|
||||
|
||||
if (ds.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
DataRow dr = ds.Tables[0].Rows[0];
|
||||
|
||||
model.KiNemSoroltTanulokOsztaly = SDAConvert.ToInt32(dr["KiNemSoroltTanulokOsztaly"]);
|
||||
model.KiNemSoroltTanulokCsoport = SDAConvert.ToInt32(dr["KiNemSoroltTanulokCsoport"]);
|
||||
model.BeNemSoroltNebulok = SDAConvert.ToInt32(dr["BeNemSoroltNebulok"]);
|
||||
model.VanTorlendoAlkalmazott = SDAConvert.ToInt32(dr["VanTorlendoAlkalmazott"]);
|
||||
model.NemErtekeltOsszefuggoSzakmaiGyakorlatosTanulok = SDAConvert.ToInt32(dr["NemErtekeltOsszefuggoSzakmaiGyakorlatosTanulok"]);
|
||||
}
|
||||
|
||||
model.AlkalmazottakAlapertekekkel = new List<string>();
|
||||
if (dsAlkalmazottak != null && dsAlkalmazottak.Tables != null && dsAlkalmazottak.Tables.Count > 0 && dsAlkalmazottak.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
foreach (DataRow item in dsAlkalmazottak.Tables[0].Rows)
|
||||
{
|
||||
model.AlkalmazottakAlapertekekkel.Add(SDAConvert.ToString(item["AlkalmazottNev"]));
|
||||
}
|
||||
}
|
||||
|
||||
LicenceTipusaEnum licence = LicenceHelper.LicenceLejaratAllapota(ClaimData.LicenceDatum);
|
||||
if (licence == LicenceTipusaEnum.NegyedEveLejart || licence == LicenceTipusaEnum.EgyEveLejart)
|
||||
model.LejartLicence = true;
|
||||
else
|
||||
model.LejartLicence = false;
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.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.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.DiakolimpiaKezelo.ClaimValue)]
|
||||
public class DiakolimpiaApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetDiakolimpiaGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
//Az oktatási azonosító maszkolása miatt kell kivenni
|
||||
data = data.Replace("_", "");
|
||||
|
||||
var model = JsonConvert.DeserializeObject<DiakolimpiaSearchModel>(data);
|
||||
|
||||
var helper = new DiakolimpiaHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
|
||||
var ds = helper.GetDiakolimpiaGrid(ConvertSearchModelToCo(model));
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SendData(DataForMdszModel model)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var message = string.Empty;
|
||||
try
|
||||
{
|
||||
var sorszam = new DiakolimpiaHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFeladhelySorszambyId(model.FeladhelySorszam.Value);
|
||||
message = new DiakolimpiaHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetDataForMdszInterface(model.Tanulok, sorszam);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran) { UnHandledException = e };
|
||||
}
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, message);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran);
|
||||
}
|
||||
|
||||
private DiakolimpiaSearchCO ConvertSearchModelToCo(DiakolimpiaSearchModel model)
|
||||
{
|
||||
return new DiakolimpiaSearchCO
|
||||
{
|
||||
SearchNev = model.SearchNev,
|
||||
SearchSzuletesiDatumtol = model.SearchSzuletesiDatumtol,
|
||||
SearchSzuletesiDatumig = model.SearchSzuletesiDatumig,
|
||||
SearchAnyjaNeve = model.SearchAnyjaNeve,
|
||||
SearchOktatasiAzonosito = model.SearchOktatasiAzonosito,
|
||||
SearchOsztalya = model.SearchOsztalya
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
using System;
|
||||
using System.Web.Http;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core.Elearning.Nexius;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Security;
|
||||
using Nexius.Common.Helpers;
|
||||
using Nexius.Common.Lti;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
public class ELearningApiController : ApiController
|
||||
{
|
||||
private readonly INexiusCourseService nexiusCourseService;
|
||||
|
||||
public ELearningApiController(INexiusCourseService nexiusCourseService)
|
||||
{
|
||||
this.nexiusCourseService = nexiusCourseService;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IHttpActionResult StartCourse(string launchUri)
|
||||
{
|
||||
var felhasznaloId = string.Empty;
|
||||
var vezeteknev = ClaimData.Vezeteknev;
|
||||
var utonev = ClaimData.Utonev;
|
||||
|
||||
var nexiusId = new IntezmenyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetNexiusId();
|
||||
|
||||
FelhasznaloHelper helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
if (ClaimData.GondviseloId.HasValue)
|
||||
{
|
||||
var (EgyediAzonosito, Nev) = helper.GetGondviseloAdat(ClaimData.GondviseloId.Value);
|
||||
felhasznaloId = EgyediAzonosito;
|
||||
vezeteknev = Nev;
|
||||
utonev = " ";
|
||||
}
|
||||
else
|
||||
{
|
||||
felhasznaloId = helper.GetFelhasznaloEgyediAzonosito(ClaimData.FelhasznaloId);
|
||||
}
|
||||
|
||||
Uri requestUrl = Request.RequestUri;
|
||||
|
||||
string returnUrl = $"{requestUrl.Scheme}://{requestUrl.Host}/Adminisztracio/ELearning";
|
||||
|
||||
var isGondviselo = ClaimData.IsTanuloOrGondviselo && ClaimData.GondviseloId != null;
|
||||
var isTanulo = ClaimData.IsTanuloOrGondviselo && ClaimData.GondviseloId == null;
|
||||
(string szuletesiNev, string oktatasiAzonosito, string emailCim) = helper.GetUserDetailsForElearning(ClaimData.FelhasznaloId, ClaimData.GondviseloId, isGondviselo, isTanulo);
|
||||
|
||||
var ltiRequest = new LtiLauchRequest()
|
||||
{
|
||||
UserId = felhasznaloId,
|
||||
FamilyName = vezeteknev,
|
||||
GivenName = utonev,
|
||||
MothersName = isGondviselo ? string.Empty : ClaimData.AnyjaNeve,
|
||||
BirthName = isGondviselo ? string.Empty : szuletesiNev,
|
||||
BirthPlace = isGondviselo ? string.Empty : ClaimData.SzuletesiHely,
|
||||
BirthDay = string.IsNullOrWhiteSpace(ClaimData.SzuletesiDatum) || isGondviselo ? (DateTime?)null : DateTime.Parse(ClaimData.SzuletesiDatum),
|
||||
EducationalId = isGondviselo ? string.Empty : oktatasiAzonosito,
|
||||
PrimaryEmail = emailCim,
|
||||
ReturnUrl = returnUrl,
|
||||
RegistrarId = string.IsNullOrWhiteSpace(nexiusId) ? (ShortGuid?)null : Guid.Parse(nexiusId) // implicitly cast the guid as a shortguid
|
||||
};
|
||||
|
||||
string url = nexiusCourseService.GenerateLaunchUri(launchUri, ltiRequest);
|
||||
|
||||
return Redirect(url);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Security.Cryptography;
|
||||
using System.Web.Http;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core.Logic;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
|
||||
{
|
||||
[AllowAnonymous]
|
||||
public class EmailKezelesApiController : ApiController
|
||||
{
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult Leiratkozas([FromBody] string data)
|
||||
{
|
||||
try
|
||||
{
|
||||
Guid guid = Guid.Parse(UrlLogic.Decrypt(data, Core.Constants.EncryptionKey));
|
||||
if (!new UzenetekHelper(ConnectionTypeExtensions.GetOrganizationConnectionType()).Leiratkozas(guid))
|
||||
{
|
||||
throw new InvalidDataException();
|
||||
}
|
||||
}
|
||||
catch (Exception ex) when (
|
||||
ex is ArgumentException ||
|
||||
ex is CryptographicException ||
|
||||
ex is FormatException ||
|
||||
ex is InvalidDataException)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.ErvenytelenAdat);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.IsmeretlenHibaTortent);
|
||||
}
|
||||
|
||||
return Ok();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Client.CoreApi;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.IsFeltarAlkalmazott.ClaimValue)]
|
||||
[ApiRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
||||
public class FeltarAlkalmazottApiController : ApiController
|
||||
{
|
||||
private readonly IFileServiceHelper fileServiceHelper;
|
||||
private readonly ICoreApiClient coreApiClient;
|
||||
|
||||
public FeltarAlkalmazottApiController(IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
|
||||
{
|
||||
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
this.coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool IsEszkozIgenyelheto()
|
||||
{
|
||||
return new FeltarAlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).IsEszkozIgenyelheto(ClaimData.FelhasznaloId);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public HttpResponseMessage EszkozIgenyles(FeltarAlkalmazottCo feltarAlkalmazott)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (feltarAlkalmazott.AdatvedelmiTajekoztatoElfogadasa && feltarAlkalmazott.AltalanosSzerzodesiFeltetelekElfogadasa && IsEszkozIgenyelheto())
|
||||
{
|
||||
new FeltarAlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).EszkozIgenyles(ClaimData.FelhasznaloId);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.BadRequest);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Client.CoreApi;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.IsFeltarGondviselo.ClaimValue)]
|
||||
public class FeltarGondviseloApiController : ApiController
|
||||
{
|
||||
private readonly IFileServiceHelper fileServiceHelper;
|
||||
private readonly ICoreApiClient coreApiClient;
|
||||
|
||||
public FeltarGondviseloApiController(IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
|
||||
{
|
||||
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
this.coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool IsEszkozIgenyelheto()
|
||||
{
|
||||
return new FeltarGondviseloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).IsEszkozIgenyelheto(ClaimData.FelhasznaloId);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public HttpResponseMessage EszkozIgenyles(FeltarGondviseloCo feltarGondviselo)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (feltarGondviselo.AdatvedelmiTajekoztatoElfogadasa && feltarGondviselo.AltalanosSzerzodesiFeltetelekElfogadasa && IsEszkozIgenyelheto())
|
||||
{
|
||||
new FeltarGondviseloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).EszkozIgenyles(ClaimData.FelhasznaloId, ClaimData.GondviseloId.Value);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.BadRequest);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.Results;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes.ComboBox;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
|
||||
{
|
||||
[AllowAnonymous]
|
||||
[ApiCsokkentettGondviseloAccess]
|
||||
public class GondviseloJelszoIgenyloApiController : ApiController
|
||||
{
|
||||
public JsonResult<List<ComboBoxListItem>> GetKozteruletJellegList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
|
||||
List<ComboBoxListItem> items = ((int)GeneratedAdatszotarTipusEnum.KozteruletJelleg).GetItemsByType(CommonUtils.GetAktualisTanevId(ClaimData.FelhasznaloId), true).ToComboBoxItemList();
|
||||
|
||||
return Json(items);
|
||||
}
|
||||
|
||||
public JsonResult<List<TelepulesListCO>> GetHelysegNevList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
var helper = new TelepulesHelper(ConnectionTypeExtensions.GetOrganizationConnectionType());
|
||||
helper.GridParameters = null;
|
||||
var helperResult = helper.GetTelepulesek();
|
||||
|
||||
return Json(helperResult);
|
||||
}
|
||||
|
||||
public JsonResult<List<IranyitoszamListCO>> GetIranyitoszamList([DataSourceRequest] DataSourceRequest request, string serverFilter = "")
|
||||
{
|
||||
var helper = new TelepulesHelper(ConnectionTypeExtensions.GetOrganizationConnectionType());
|
||||
helper.GridParameters = null;
|
||||
var dictionary = helper.GetIranyitoszamok(serverFilter);
|
||||
|
||||
return Json(dictionary);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetOrszagList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
return Json(((int)GeneratedAdatszotarTipusEnum.OrszagTipus).GetItemsByType(CommonUtils.GetAktualisTanevId(ClaimData.FelhasznaloId), true).ToComboBoxItemList());
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public JsonResult<List<TelepulesListCO>> GetHelysegNevByIranyitoszamList(string iranyitoSzam)
|
||||
{
|
||||
var helper = new TelepulesHelper(ConnectionTypeExtensions.GetOrganizationConnectionType());
|
||||
helper.GridParameters = null;
|
||||
var helperResult = helper.GetTelepulesek(iranyitoSzam);
|
||||
|
||||
return Json(helperResult);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetRokonsagiFokList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
List<ComboBoxListItem> items = ((int)GeneratedAdatszotarTipusEnum.RokonsagiFok).GetItemsByType(CommonUtils.GetAktualisTanevId(ClaimData.FelhasznaloId), true).ToComboBoxItemList(new List<int> { (int)RokonsagiFokEnum.egyeb_nem_rokoni_kapcsolat, (int)RokonsagiFokEnum.egyeb_rokoni_kapcsolat });
|
||||
|
||||
return Json(items);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetEmailTipusList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
List<ComboBoxListItem> items = ((int)GeneratedAdatszotarTipusEnum.EmailTipus).GetItemsByType(CommonUtils.GetAktualisTanevId(ClaimData.FelhasznaloId), true).ToComboBoxItemList(new List<int> { (int)EmailTipusEnum.PublikusEmailcim });
|
||||
|
||||
return Json(items);
|
||||
}
|
||||
|
||||
public JsonResult<List<IranyitoszamTelepulesListCO>> GetIranyitoszamokEsTelepulesek([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
var helper = new TelepulesHelper(ConnectionTypeExtensions.GetOrganizationConnectionType());
|
||||
var list = helper.GetIranyitoszamokEsTelepulesek();
|
||||
|
||||
return Json(list);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,403 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class HelyettesitesekKezeleseApiController : ApiController
|
||||
{
|
||||
public HelyettesitesBevitelModel GetHelyettesitesBevitelData(int helyettesitesId)
|
||||
{
|
||||
var dataSet = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHelyettesitesDataById(helyettesitesId);
|
||||
DataRow row = dataSet.Tables[0].Rows[0];
|
||||
var model = new HelyettesitesBevitelModel
|
||||
{
|
||||
HelyettesitesBevitelHelyettesitesId = helyettesitesId,
|
||||
HelyettesitesBevitelGroupId = SDAConvert.ToNullableInt32(row["C_GROUPID"].ToString()),
|
||||
HelyettesitesBevitelTanarId = int.Parse(row["C_HELYETTESTANAROKID"].ToString()),
|
||||
HelyettesitesBevitelTanarNev = row["C_NYOMTATASINEV"].ToString(),
|
||||
HelyettesitesBevitelHelyettesitesTipusId = int.Parse(row["C_HELYETTESITESTIPUS"].ToString()),
|
||||
HelyettesitesBevitelHelyettesitesOka = row["C_HELYETTESITESOKA"].ToString()
|
||||
};
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage InsertHelyettesites(HelyettesitesBevitelModel model)
|
||||
{
|
||||
if (ModelState.IsValid && model.HelyettesitesBevitelTanarId.HasValue)
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var helper = new HelyettesitesHelper(connectionType);
|
||||
var hetHelper = new NaptariHetHelper(connectionType);
|
||||
var uzenetekHelper = new UzenetekHelper(connectionType);
|
||||
var orarendHelper = new OrarendHelper(connectionType);
|
||||
|
||||
var sorszam = hetHelper.GetNaptariHetSorszamByDate(model.HelyettesitesBevitelOraKezdeteDate.Date);
|
||||
|
||||
if (model.HelyettesitesBevitelCalendarOraType == CalendarOraTypeEnum.TanoranKivuliNaplozottFoglalkozas)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.NaplozottOrahozNemVehetoFelHelyettesites);
|
||||
}
|
||||
|
||||
bool mustSendEmail = helper.GetUserHelyettesitesProfilData(model.HelyettesitesBevitelTanarId.Value);
|
||||
|
||||
if (model.HelyettesitesBevitelHelyettesitesGyakorisagTipus == (int)HelyettesitesGyakorisagTipusEnum.Egyedi)
|
||||
{
|
||||
HelyettesitesResultCO helyettesitesResultCo = helper.SaveHelyettesites(
|
||||
model.HelyettesitesBevitelCalendarEventId,
|
||||
model.HelyettesitesBevitelTanarId.Value,
|
||||
model.HelyettesitesBevitelHelyettesitesTipusId,
|
||||
model.HelyettesitesBevitelHelyettesitesOka,
|
||||
sorszam,
|
||||
model.HelyettesitesBevitelOraKezdeteDate.Date,
|
||||
model.IsTuloraMentes);
|
||||
|
||||
if (helyettesitesResultCo.ErrorId.IsEntityId())
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(helyettesitesResultCo.ErrorId.Value));
|
||||
}
|
||||
|
||||
if (helyettesitesResultCo.HelyettesitesId.IsEntityId() && mustSendEmail)
|
||||
{
|
||||
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesSendEmailCo(helyettesitesResultCo.HelyettesitesId.Value);
|
||||
uzenetekHelper.SendEmail(sendEmailCo);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
List<HelyettesitesResultCO> helyettesitesResultCoList = helper.SaveGroupHelyettesites(
|
||||
model.HelyettesitesBevitelCalendarEventId,
|
||||
model.HelyettesitesBevitelTanarId.Value,
|
||||
model.HelyettesitesBevitelHelyettesitesTipusId,
|
||||
model.HelyettesitesBevitelHelyettesitesOka,
|
||||
sorszam,
|
||||
model.HelyettesitesBevitelOraKezdeteDate.Date,
|
||||
model.HelyettesitesBevitelTartosHelyettesitesVegeDate.Value,
|
||||
model.IsTuloraMentes);
|
||||
|
||||
if (helyettesitesResultCoList.Count == 1 && helyettesitesResultCoList[0].ErrorId.IsEntityId())
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(helyettesitesResultCoList[0].ErrorId.Value));
|
||||
}
|
||||
|
||||
foreach (var helyettesitesResultCo in helyettesitesResultCoList)
|
||||
{
|
||||
if (helyettesitesResultCo.HelyettesitesId.IsEntityId() && mustSendEmail)
|
||||
{
|
||||
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesSendEmailCo(helyettesitesResultCo.HelyettesitesId.Value);
|
||||
uzenetekHelper.SendEmail(sendEmailCo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
orarendHelper.GenerateTeljesOrarend();
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage UpdateSingleHelyettesites(HelyettesitesBevitelModel model)
|
||||
{
|
||||
if (ModelState.IsValid && model.HelyettesitesBevitelHelyettesitesId.HasValue && model.HelyettesitesBevitelTanarId.HasValue)
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var helper = new HelyettesitesHelper(connectionType);
|
||||
var uzenetekHelper = new UzenetekHelper(connectionType);
|
||||
var orarendHelper = new OrarendHelper(connectionType);
|
||||
|
||||
var originalHelyettesito = helper.GetHelyettesitesEmailDataById(model.HelyettesitesBevitelHelyettesitesId.Value);
|
||||
|
||||
if (originalHelyettesito.HelyettesitoID != model.HelyettesitesBevitelTanarId.Value)
|
||||
{
|
||||
bool originalMustSendEmail = helper.GetUserHelyettesitesProfilData(originalHelyettesito.HelyettesitoID);
|
||||
|
||||
if (originalMustSendEmail)
|
||||
{
|
||||
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesTorlesSendEmailCo(model.HelyettesitesBevitelHelyettesitesId.Value);
|
||||
uzenetekHelper.SendEmail(sendEmailCo);
|
||||
}
|
||||
}
|
||||
|
||||
HelyettesitesResultCO helyettesitesResultCo = helper.UpdateHelyettesitoTanar(
|
||||
model.HelyettesitesBevitelCalendarEventId,
|
||||
model.HelyettesitesBevitelHelyettesitesId.Value,
|
||||
model.HelyettesitesBevitelTanarId.Value,
|
||||
model.HelyettesitesBevitelHelyettesitesTipusId,
|
||||
model.HelyettesitesBevitelHelyettesitesOka,
|
||||
model.HelyettesitesBevitelOraKezdeteDate.Date,
|
||||
null,
|
||||
model.IsTuloraMentes);
|
||||
|
||||
if (helyettesitesResultCo.ErrorId.IsEntityId())
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(helyettesitesResultCo.ErrorId.Value));
|
||||
}
|
||||
|
||||
bool mustSendEmail = helper.GetUserHelyettesitesProfilData(model.HelyettesitesBevitelTanarId.Value);
|
||||
if (helyettesitesResultCo.HelyettesitesId.IsEntityId() && mustSendEmail)
|
||||
{
|
||||
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesSendEmailCo(model.HelyettesitesBevitelHelyettesitesId.Value);
|
||||
uzenetekHelper.SendEmail(sendEmailCo);
|
||||
}
|
||||
|
||||
orarendHelper.GenerateTeljesOrarend(model.HelyettesitesBevitelCalendarEventId);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage UpdateGroupHelyettesites(HelyettesitesBevitelModel model)
|
||||
{
|
||||
if (ModelState.IsValid && model.HelyettesitesBevitelHelyettesitesId.HasValue && model.HelyettesitesBevitelGroupId.HasValue && model.HelyettesitesBevitelTanarId.HasValue)
|
||||
{
|
||||
var helper = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var uzenetekHelper = new UzenetekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var helyettesitesDataSet = helper.GetHelyettesitesDataSetByGroupId(model.HelyettesitesBevitelGroupId.Value);
|
||||
var helyettesitesResultCoList = new List<HelyettesitesResultCO>();
|
||||
foreach (DataRow dataRow in helyettesitesDataSet.Tables[0].Rows)
|
||||
{
|
||||
var helyettesitesId = SDAConvert.ToInt32(dataRow["Id"]);
|
||||
var helyettesitesNapjaDate = SDAConvert.ToDateTime(dataRow["HelyettesitesNapjaDate"]);
|
||||
if (model.HelyettesitesBevitelOraKezdeteDate.Date <= helyettesitesNapjaDate)
|
||||
{
|
||||
var originalHelyettesito = helper.GetHelyettesitesEmailDataById(helyettesitesId);
|
||||
|
||||
if (originalHelyettesito.HelyettesitoID != model.HelyettesitesBevitelTanarId.Value)
|
||||
{
|
||||
bool originalMustSendEmail = helper.GetUserHelyettesitesProfilData(originalHelyettesito.HelyettesitoID);
|
||||
|
||||
if (originalMustSendEmail)
|
||||
{
|
||||
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesTorlesSendEmailCo(model.HelyettesitesBevitelHelyettesitesId.Value);
|
||||
uzenetekHelper.SendEmail(sendEmailCo);
|
||||
}
|
||||
}
|
||||
|
||||
helyettesitesResultCoList.Add(helper.UpdateHelyettesitoTanar(
|
||||
model.HelyettesitesBevitelCalendarEventId,
|
||||
helyettesitesId,
|
||||
model.HelyettesitesBevitelTanarId.Value,
|
||||
model.HelyettesitesBevitelHelyettesitesTipusId,
|
||||
model.HelyettesitesBevitelHelyettesitesOka,
|
||||
model.HelyettesitesBevitelOraKezdeteDate.Date,
|
||||
model.HelyettesitesBevitelHelyettesitesId,
|
||||
model.IsTuloraMentes));
|
||||
|
||||
bool mustSendEmail = helper.GetUserHelyettesitesProfilData(model.HelyettesitesBevitelTanarId.Value);
|
||||
foreach (var helyettesitesResultCo in helyettesitesResultCoList)
|
||||
{
|
||||
if (helyettesitesResultCo.HelyettesitesId.IsEntityId() && mustSendEmail)
|
||||
{
|
||||
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesSendEmailCo(helyettesitesResultCo.HelyettesitesId.Value);
|
||||
uzenetekHelper.SendEmail(sendEmailCo);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
helper.ClearHelyettesitesGroupId(helyettesitesId);
|
||||
}
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult ValidateDeleteHelyettesites(HelyettesitesBevitelModel model)
|
||||
{
|
||||
var helper = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
List<string> textList = helper.GetNemkotottMunkaidoByHelyettesitesHibakListaja(model.HelyettesitesBevitelHelyettesitesId, model.HelyettesitesBevitelGroupId, model.HelyettesitesBevitelOraKezdeteDate);
|
||||
|
||||
textList.Add(CommonResource.BiztosanTorli);
|
||||
string result = string.Join("<br />", textList);
|
||||
return Json(new { Text = result });
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteSingleHelyettesites(HelyettesitesBevitelModel model)
|
||||
{
|
||||
if (ModelState.IsValid && model.HelyettesitesBevitelHelyettesitesId.HasValue && model.HelyettesitesBevitelTanarId.HasValue)
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var helper = new HelyettesitesHelper(connectionType);
|
||||
var orarendHelper = new OrarendHelper(connectionType);
|
||||
Dictionary<int, int> nemKotottMunkaidoDictionary = helper.GetNemkotottMunkaidoByHelyettesitesTorleshez(model.HelyettesitesBevitelHelyettesitesId, model.HelyettesitesBevitelGroupId, model.HelyettesitesBevitelOraKezdeteDate);
|
||||
int? nemKotottmunkaidoId = nemKotottMunkaidoDictionary.Count > 0 && nemKotottMunkaidoDictionary.TryGetValue(model.HelyettesitesBevitelHelyettesitesId.Value, out int value) ? value : (int?)null;
|
||||
Delete(helper, model.HelyettesitesBevitelHelyettesitesId.Value, model.HelyettesitesBevitelTanarId.Value, nemKotottmunkaidoId);
|
||||
|
||||
orarendHelper.GenerateTeljesOrarend();
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteGroupHelyettesites(HelyettesitesBevitelModel model)
|
||||
{
|
||||
if (ModelState.IsValid && model.HelyettesitesBevitelGroupId.HasValue && model.HelyettesitesBevitelTanarId.HasValue)
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var helper = new HelyettesitesHelper(connectionType);
|
||||
var orarendHelper = new OrarendHelper(connectionType);
|
||||
Dictionary<int, int> nemKotottMunkaidoDictionary = helper.GetNemkotottMunkaidoByHelyettesitesTorleshez(model.HelyettesitesBevitelHelyettesitesId, model.HelyettesitesBevitelGroupId, model.HelyettesitesBevitelOraKezdeteDate);
|
||||
|
||||
var helyettesitesDataSet = helper.GetHelyettesitesDataSetByGroupId(model.HelyettesitesBevitelGroupId.Value);
|
||||
foreach (DataRow dataRow in helyettesitesDataSet.Tables[0].Rows)
|
||||
{
|
||||
var helyettesitesId = SDAConvert.ToInt32(dataRow["Id"]);
|
||||
var helyettesitesNapjaDate = SDAConvert.ToDateTime(dataRow["HelyettesitesNapjaDate"]);
|
||||
if (model.HelyettesitesBevitelOraKezdeteDate.Date <= helyettesitesNapjaDate)
|
||||
{
|
||||
int? nemKotottmunkaidoId = nemKotottMunkaidoDictionary.Count > 0 && nemKotottMunkaidoDictionary.TryGetValue(helyettesitesId, out int value) ? value : (int?)null;
|
||||
Delete(helper, helyettesitesId, model.HelyettesitesBevitelTanarId.Value, nemKotottmunkaidoId);
|
||||
}
|
||||
else
|
||||
{
|
||||
helper.ClearHelyettesitesGroupId(helyettesitesId);
|
||||
}
|
||||
}
|
||||
|
||||
orarendHelper.GenerateTeljesOrarend();
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
private void Delete(HelyettesitesHelper helper, int helyettesitesId, int tanarId, int? nemKotottMunkaidoId = null)
|
||||
{
|
||||
bool mustSendEmail = helper.GetUserHelyettesitesProfilData(tanarId);
|
||||
var uzenetekHelper = new UzenetekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
SendEmailCo sendEmailCo = mustSendEmail ? uzenetekHelper.GetHelyettesitesTorlesSendEmailCo(helyettesitesId) : null;
|
||||
|
||||
helper.DeleteHelyettesites(helyettesitesId);
|
||||
orarendHelper.GenerateTeljesOrarend();
|
||||
|
||||
var nemkotottmunkaidoHelper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
if (nemKotottMunkaidoId.IsEntityId())
|
||||
nemkotottmunkaidoHelper.Delete(nemKotottMunkaidoId.Value, isAdmin: true);
|
||||
|
||||
if (mustSendEmail)
|
||||
{
|
||||
uzenetekHelper.SendEmail(sendEmailCo);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveNemMegtartottHelyettesites(NemMegtartottHelyettesitesBevitelModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveAdminNemMegtartottOra(
|
||||
model.HelyettesitesBevitelCalendarEventId.Value,
|
||||
model.HelyettesitesBevitelOraKezdeteDate.Value,
|
||||
model.HelyettesitesBevitelOraVegeDate.Value,
|
||||
model.HelyettesitesBevitelHelyettesitesOka);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage NemMegtartottOraTorlese(NemMegtartottHelyettesitesBevitelModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
TanoraCO tanoraCo = helper.GetTanorakAdatok(model.HelyettesitesBevitelCalendarEventId.Value);
|
||||
if (!tanoraCo.AdminAltalKiirt)
|
||||
{
|
||||
return new HttpResponseMessage(HttpStatusCode.BadRequest);
|
||||
}
|
||||
|
||||
helper.NaplozasTorlese(model.HelyettesitesBevitelCalendarEventId.Value, true);
|
||||
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
orarendiOraHelper.OrarendValtozasCacheMentes(tanoraCo.OrarendiOra, tanoraCo.OraKezd);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message) { UnHandledException = e };
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public bool GetHelyettesitoEmailCim(int userId)
|
||||
{
|
||||
string emailCim = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHelyettesitoTanarEmailCim(userId);
|
||||
return !string.IsNullOrWhiteSpace(emailCim);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveOracsere(OracsereModel model)
|
||||
{
|
||||
OracsereValidationCO oracsereValidacio;
|
||||
try
|
||||
{
|
||||
oracsereValidacio = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveOracsere(model.OracsereOrarendiOraId, model.OracsereOrarendiOraDatum, model.CalendarOrarendiOraId, model.CalendarOrarendiOraDatum, ClaimData.FelhasznaloId, model.IsPrevalidation, model.IsTeremcsere);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
|
||||
if (!model.IsPrevalidation)
|
||||
{
|
||||
oracsereValidacio.WarningMessage = string.Empty;
|
||||
}
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, oracsereValidacio, Configuration.Formatters.JsonFormatter);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,156 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
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.Adminisztracio.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.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class HelyettesitesekListajaApiController : ApiController
|
||||
{
|
||||
[HttpPost]
|
||||
public DataSourceResult GetHelyettesitesekListajaGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] KretaGridDataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(request.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<HelyettesitesekListajaGridModel>(HelyettesitesekListajaGridModel.HelyettesitesekListajaExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(HelyettesitesekListajaResource.HelyettesitesekListajaExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), HelyettesitesekListajaResource.HelyettesitesekListajaExportFilename);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<HelyettesitesekListajaGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<HelyettesitesekListajaSearchModel>(data);
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHelyettesitesekListajaCoList(model.ConvertToCO());
|
||||
|
||||
var modelList = new List<HelyettesitesekListajaGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new HelyettesitesekListajaGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteHelyettesitesek(List<int> id)
|
||||
{
|
||||
if (!(id?.Count > 0))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NincsTorlesreJeloltHelyettesites);
|
||||
}
|
||||
|
||||
string errorMsg = string.Empty;
|
||||
var counter = 0;
|
||||
var errorCounter = 0;
|
||||
|
||||
var helper = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var helyettesitesekListaja = helper.GetHelyettesitesekListajaGrid(new BusinessLogic.HelperClasses.HelyettesitesekListajaSearchCO());
|
||||
|
||||
if (helyettesitesekListaja.Tables[0] != null && helyettesitesekListaja.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
var helyettesitesekListajas = helyettesitesekListaja.Tables[0]
|
||||
.AsEnumerable()
|
||||
.Where(row => row.Field<string>("Naplozott") == "F")
|
||||
.Select(row => row.Field<int>("ID"));
|
||||
|
||||
if (id.Count == 1)
|
||||
{
|
||||
int helyettesitesId = id[0];
|
||||
|
||||
if (helyettesitesekListajas.Any(row => row == helyettesitesId))
|
||||
{
|
||||
helper.DeleteHelyettesites(helyettesitesId);
|
||||
|
||||
orarendHelper.GenerateTeljesOrarend();
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.ATorlesSikertelenMertAHelyettesitesNaplozott);
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var item in id)
|
||||
{
|
||||
if (helyettesitesekListajas.Any(row => row == item))
|
||||
{
|
||||
helper.DeleteHelyettesites(item);
|
||||
counter++;
|
||||
}
|
||||
else
|
||||
{
|
||||
errorCounter++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
orarendHelper.GenerateTeljesOrarend();
|
||||
|
||||
if (errorCounter == 0)
|
||||
{
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorleseSikertelenMertAHelyettesitesekNaplozottak, errorCounter);
|
||||
|
||||
if (counter > 0)
|
||||
{
|
||||
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaATorlesSoran);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
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.Adminisztracio.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.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class NevOktLeNemKotottMunkaidoListajaApiController : ApiController
|
||||
{
|
||||
[HttpPost]
|
||||
public DataSourceResult GetNevOktLeNemKotottMunkaidoGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] KretaGridDataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(request.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<NevOktLeNemKotottMunkaidoGridModel>(NevOktLeNemKotottMunkaidoGridModel.NevOktLeNemKotottMunkaidoExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(NevOktLeNemKotottMunkaidoResource.NevOktLeNemKotottMunkaido, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), NevOktLeNemKotottMunkaidoResource.ExportFileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<NevOktLeNemKotottMunkaidoGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<NevOktLeNemKotottMunkaidoSearchModel>(data);
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNevOktLeNemKotottMunkaidoItemCoList(model.ConvertToCo());
|
||||
|
||||
var modelList = new List<NevOktLeNemKotottMunkaidoGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new NevOktLeNemKotottMunkaidoGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public bool DeleteNemKotott(int nemKotottId)
|
||||
{
|
||||
var helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.Delete(nemKotottId, isAdmin: true);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,676 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Web;
|
||||
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.Client.KGR;
|
||||
using Kreta.Client.KGR.Request;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.FeatureToggle;
|
||||
using Kreta.Core.Logic;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Security;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Models;
|
||||
using Kreta.Web.Security;
|
||||
using Kreta.Web.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using static Kreta.Core.Constants;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public class ProfilApiController : ApiController
|
||||
{
|
||||
private readonly IKGRClient _kgrClient;
|
||||
public ProfilApiController(IKGRClient kgrClient)
|
||||
{
|
||||
_kgrClient = kgrClient ?? throw new ArgumentNullException(nameof(kgrClient));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Jelszó módosítás mentés
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveProfilData(ProfilModel model)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var belepesiNev = ClaimData.BelepesiNev;
|
||||
|
||||
var helper = new FelhasznaloBelepesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
var loginInfo = helper.AuthenticateUser(belepesiNev, model.JelenlegiJelszo);
|
||||
|
||||
if (loginInfo == null || loginInfo.PasswordState == PasswordState.INVALID)
|
||||
{
|
||||
throw new IncorrectPasswordException(loginInfo.BelepesiNev);
|
||||
}
|
||||
|
||||
helper.ChangeUserPassword(belepesiNev, model.UjJelszo);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (IncorrectPasswordException)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(2591)/*Helytelen jelenlegi jelszó!*/);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.InternalServerError, StringResourcesUtil.GetString(439) /*Nem sikerült a művelet!*/)
|
||||
{
|
||||
UnHandledException = ex
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elérhetőség módosítás mentés
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveElerhetosegek(ElerhetosegekModel model)
|
||||
{
|
||||
model.CleanFromEmptyRows();
|
||||
if (!ValidateElerhetosegek(model, out var errorDictionary))
|
||||
{
|
||||
ModelState.AddRange(errorDictionary);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var felhasznaloHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var co = model.ConvertToCo();
|
||||
var newDbElerhetosegek = felhasznaloHelper.SaveElerhetosegek(co, ClaimData.FelhasznaloId);
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, newDbElerhetosegek);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.InternalServerError, ErrorResource.NemSikerultAMuvelet)
|
||||
{
|
||||
UnHandledException = ex
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Profilkép mentés
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveProfilePicture()
|
||||
{
|
||||
if (!Request.Content.IsMimeMultipartContent())
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.UnsupportedMediaType, StringResourcesUtil.GetString(4890)/*Nem támogatott tipus*/);
|
||||
}
|
||||
|
||||
var root = HttpContext.Current.Server.MapPath("~/App_Data");
|
||||
var provider = new MultipartFormDataStreamProvider(root);
|
||||
|
||||
var tempFilePath = provider.FileData[0].LocalFileName;
|
||||
|
||||
var byteArray = File.ReadAllBytes(tempFilePath);
|
||||
|
||||
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
ProfileUtils.UserProfileImage = helper.ProfileKep(helper.ProfilkepMentese(byteArray));
|
||||
|
||||
File.Delete(tempFilePath);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveGondviseloAdatok(GondviseloAdatokModModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveGondviseloElerhetosegAdatok(ConvertGondviseloAdatokModModelToCO(model));
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveGondviselo4TAdatok(Felhasznalo4TAdatokModel model)
|
||||
{
|
||||
if (!ClaimData.FeltarGondviseloEnabled)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAMuveletVegrehajtasahoz);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
new GondviseloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveGondviselo4TAdatok(ClaimData.GondviseloId.Value, ConvertGondviselo4TAdatokModelToCo(model));
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public HttpResponseMessage DeleteGondviseloEmail()
|
||||
{
|
||||
try
|
||||
{
|
||||
new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).DeleteGondviseloEmail(ClaimData.GondviseloId.Value);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveTanuloBankszamlaAdatok(TanuloBankszamlaModel model) => SaveBankszamlaAdatok(model, true);
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveAlkalmazottBankszamlaAdatok(AlkalmazottBankszamlaModel model) => SaveBankszamlaAdatok(model, false);
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveMentoriNyugdijAdatok(MentoriNyugdijModel model)
|
||||
{
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var co = model.ConvertToCo();
|
||||
var featureContext = (IFeatureContext)Request.GetDependencyScope().GetService(typeof(IFeatureContext));
|
||||
var isKlebelsbergKozpontOrNSZFH =
|
||||
featureContext.IsEnabled(FeatureName.MunkaugyiAdatokKlebelsberg)
|
||||
|| featureContext.IsEnabled(FeatureName.MunkaugyiAdatokNSZFH);
|
||||
var isNszfhUjSzkt = ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny;
|
||||
new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveAlkalmazottNyugdijAdatok(co, isKlebelsbergKozpontOrNSZFH, isNszfhUjSzkt);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
|
||||
}
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
var errorMessage = string.Join("<br>", ModelState.Select(x => string.Join("<br>", x.Value.Errors.Select(y => y.ErrorMessage))));
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage);
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public HttpResponseMessage SaveBankszamlaAdatok(TanuloBankszamlaModel model, bool isTanulo)
|
||||
{
|
||||
var co = model.ConvertToCo();
|
||||
if (!ValidateBankszamlaszamAdatok(co, out var errorDictionary))
|
||||
{
|
||||
ModelState.AddRange(errorDictionary);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (isTanulo)
|
||||
{
|
||||
new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveTanuloBankszamlaAdatok(ClaimData.FelhasznaloId, ClaimData.GondviseloId, co);
|
||||
}
|
||||
else
|
||||
{
|
||||
new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveAlkalmazottBankszamlaAdatok(ClaimData.FelhasznaloId, co);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
|
||||
}
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
var errorMessage = string.Join("<br>", ModelState.Select(x => string.Join("<br>", x.Value.Errors.Select(y => y.ErrorMessage))));
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage);
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public DataSourceResult GetTanuloAdatGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
|
||||
var ds = helper.GetTanuloAdatForGondviselo(ClaimData.GondviseloId.Value);
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public DataSourceResult GetElerhetosegCimGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
DataSet ds;
|
||||
if (ClaimData.GondviseloId.HasValue)
|
||||
{
|
||||
ds = helper.GetCimData(ClaimData.GondviseloId.Value, isGondviselo: true);
|
||||
}
|
||||
else
|
||||
{
|
||||
ds = helper.GetCimData(ClaimData.FelhasznaloId, isGondviselo: false);
|
||||
}
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public DataSourceResult GetElerhetosegTelGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
DataSet ds;
|
||||
if (ClaimData.GondviseloId.HasValue)
|
||||
{
|
||||
ds = helper.GetTelefonData(ClaimData.GondviseloId.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
ds = helper.GetTelefonData(ClaimData.FelhasznaloId);
|
||||
}
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public DataSourceResult GetElerhetosegEmailGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
DataSet ds;
|
||||
if (ClaimData.GondviseloId.HasValue)
|
||||
{
|
||||
ds = helper.GetEmailData(ClaimData.GondviseloId.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
ds = helper.GetEmailData(ClaimData.FelhasznaloId);
|
||||
}
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
|
||||
public DataSourceResult GetTargyiEszkozokGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var adatlapModels = new List<SajatAdatlapInfoModel.TargyiEszkozModel>();
|
||||
|
||||
try
|
||||
{
|
||||
var helper = new TanarHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
var tanaradatok = helper.GetTanarAdatok(ClaimData.FelhasznaloId);
|
||||
|
||||
string funkcioTerulet = null;
|
||||
if (tanaradatok.FeladatellatasiHely.IsEntityId())
|
||||
{
|
||||
var mukodesiHelyId = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFeladatEllatasiHelyAdatok(tanaradatok.FeladatellatasiHely.Value).MukodesiHelyID;
|
||||
var co = new MukodesiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetMukodesiHelyAdatok(mukodesiHelyId);
|
||||
funkcioTerulet = co.Funkcioterulet;
|
||||
}
|
||||
|
||||
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
if (!string.IsNullOrWhiteSpace(alkalmazottHelper.GetAlkalmazottSztszKod(ClaimData.FelhasznaloId)))
|
||||
{
|
||||
var result = _kgrClient.KGREszkozList(new EszkozHeaderRequest() { IntezmenyGuid = ClaimData.IntezmenyGuid.ToString(), IntezmenyAzonosito = ClaimData.IntezmenyAzonosito, Sztsz = alkalmazottHelper.GetAlkalmazottSztszKod(ClaimData.FelhasznaloId) });
|
||||
var cnt = 0;
|
||||
foreach (var item in result)
|
||||
{
|
||||
adatlapModels.Add(new SajatAdatlapInfoModel.TargyiEszkozModel
|
||||
{
|
||||
ID = cnt.ToString(),
|
||||
Megnevezes = item.Megnevezes,
|
||||
GyariSzam = item.GyariSzam,
|
||||
LeltariSzam = item.Leltarszam
|
||||
});
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
SDAServer.Instance.Logger.ExceptionThrown(ex);
|
||||
}
|
||||
|
||||
return adatlapModels.ToDataSourceResult();
|
||||
}
|
||||
|
||||
private GondviseloAdatokModCO ConvertGondviseloAdatokModModelToCO(GondviseloAdatokModModel model)
|
||||
{
|
||||
return new GondviseloAdatokModCO
|
||||
{
|
||||
GondviseloId = ClaimData.GondviseloId.Value,
|
||||
TanuloId = ClaimData.FelhasznaloId,
|
||||
UjEmail = model.UjEmail,
|
||||
UjTelefon = model.UjTelefon
|
||||
};
|
||||
}
|
||||
|
||||
private Felhasznalo4TAdatokCo ConvertGondviselo4TAdatokModelToCo(Felhasznalo4TAdatokModel model)
|
||||
{
|
||||
return new Felhasznalo4TAdatokCo
|
||||
{
|
||||
AnyjaUtonev = model.AnyjaUtonev,
|
||||
AnyjaVezeteknev = model.AnyjaVezeteknev,
|
||||
Elotag = model.Elotag,
|
||||
SzuletesiDatum = model.SzuletesiDatum,
|
||||
SzuletesiHely = model.SzuletesiHely,
|
||||
SzuletesiUtonev = model.SzuletesiUtonev,
|
||||
SzuletesiVezeteknev = model.SzuletesiVezeteknev,
|
||||
Utonev = model.Utonev,
|
||||
Vezeteknev = model.Vezeteknev,
|
||||
};
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveEgyHaztartasbanElokData(EgyhaztartasbanElokModel model)
|
||||
{
|
||||
if (!ValidateEgyHaztartasbanElok(model, out var errorDictionary))
|
||||
{
|
||||
ModelState.AddRange(errorDictionary);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.SaveEgyhaztartasbanElokData(model.ConvertToCo(), ClaimData.FelhasznaloId, ClaimData.GondviseloId);
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public string LoadEgyHaztartasbanElokData()
|
||||
{
|
||||
return JsonConvert.SerializeObject(new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEgyhaztartasbanElokData(ClaimData.FelhasznaloId));
|
||||
}
|
||||
|
||||
#region Helpers
|
||||
|
||||
private bool ValidateElerhetosegek(ElerhetosegekModel model, out Dictionary<string, List<string>> errorDictionary)
|
||||
{
|
||||
errorDictionary = new Dictionary<string, List<string>>();
|
||||
|
||||
if (model.Email.Where(e => e.Alapertelmezett && e.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Take(2).Count() != 1)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, "Error", AdminisztracioResource.KotelezoEgyAlapertelmezettEmail);
|
||||
}
|
||||
|
||||
if (model.Telefon.Where(t => t.Alapertelmezett && t.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Take(2).Count() != 1)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, "Error", AdminisztracioResource.KotelezoEgyAlapertelmezettTelefon);
|
||||
}
|
||||
|
||||
var publikusEmailCimek = model.Email.Where(e => e.IsPublic && e.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted);
|
||||
if (publikusEmailCimek.Skip(1).Any())
|
||||
{
|
||||
foreach (var publikusEmail in publikusEmailCimek.Skip(1))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, publikusEmail.TextBoxId, AdminisztracioResource.PublikusEmailCsakEgyLehet);
|
||||
}
|
||||
}
|
||||
|
||||
var publikusTelefonszamok = model.Telefon.Where(t => t.IsPublic && t.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted);
|
||||
if (publikusTelefonszamok.Skip(1).Any())
|
||||
{
|
||||
foreach (var publikusTelefonszam in publikusTelefonszamok.Skip(1))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, publikusTelefonszam.TextBoxId, AdminisztracioResource.PublikusTelefonCsakEgyLehet);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var email in model.Email.Where(e => e.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted))
|
||||
{
|
||||
if (!email.Tipus.HasValue)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, email.ComboBoxId, AdminisztracioResource.EmailTipusKotelezo);
|
||||
}
|
||||
|
||||
if (email.IsPublic && email.Alapertelmezett)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, email.TextBoxId, AdminisztracioResource.PublikusEmailNemLehetAlapertelmezett);
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(email.EmailCim) || !email.EmailCim.IsValidEmail())
|
||||
{
|
||||
AddErrorMessage(errorDictionary, email.TextBoxId, ErrorResource.EMailCimFormatumaNemMegfelelo);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (email.EmailCim.Length > General.EmailMaximumKarakterekSzama)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, email.TextBoxId, ErrorResource.EmailMax0Karakter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var nemToroltEmailek = model.Email.Where(x => x.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Select(x => x.EmailCim_Input).ToList();
|
||||
if (nemToroltEmailek.Distinct().Count() != nemToroltEmailek.Count())
|
||||
{
|
||||
AddErrorMessage(errorDictionary, "Error", ErrorResource.AMegadottEmailcimMarRogzitveVan);
|
||||
}
|
||||
var nemToroltTelefonszamok = model.Telefon.Where(x => x.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Select(x => x.Telefonszam).ToList();
|
||||
if (nemToroltTelefonszamok.Distinct().Count() != nemToroltTelefonszamok.Count())
|
||||
{
|
||||
AddErrorMessage(errorDictionary, "Error", ErrorResource.AMegadottTelefonszamMarRogzitveVan);
|
||||
}
|
||||
|
||||
foreach (var telefon in model.Telefon.Where(t => t.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted))
|
||||
{
|
||||
if (!telefon.Tipus.HasValue)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, telefon.ComboBoxId, AdminisztracioResource.TelefonTipusKotelezo);
|
||||
}
|
||||
|
||||
if (telefon.IsPublic && telefon.Alapertelmezett)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, telefon.TextBoxId, AdminisztracioResource.PublikusTelefonNemLehetAlapertelmezett);
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(telefon.Telefonszam) || !telefon.Telefonszam.IsValidPhone())
|
||||
{
|
||||
AddErrorMessage(errorDictionary, telefon.TextBoxId, ErrorResource.ATelefonszamFormatumaNemMegfelelo);
|
||||
}
|
||||
}
|
||||
|
||||
return !errorDictionary.Any();
|
||||
}
|
||||
|
||||
private bool ValidateBankszamlaszamAdatok(BankszamlaCo model, out Dictionary<string, List<string>> errorDictionary)
|
||||
{
|
||||
errorDictionary = new Dictionary<string, List<string>>();
|
||||
|
||||
var errorText = BankszamlaLogic.KitoltottsegValidacio(model.BankszamlaSzam, model.BankszamlaTulajdonos, model.BankszamlaTulajdonosNeve);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(errorText))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, nameof(model.BankszamlaSzam), errorText);
|
||||
}
|
||||
else
|
||||
{
|
||||
// NOTE: Üres a bankszámlaszám = törölni akarjuk a meglevő adatokat
|
||||
if (string.IsNullOrWhiteSpace(model.BankszamlaSzam))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
errorText = BankszamlaLogic.CDVValidacio(model.BankszamlaSzam);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(errorText))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, nameof(model.BankszamlaSzam), errorText);
|
||||
}
|
||||
}
|
||||
|
||||
return !errorDictionary.Any();
|
||||
}
|
||||
|
||||
private void AddErrorMessage(Dictionary<string, List<string>> errorDictionary, string key, string message)
|
||||
{
|
||||
if (!errorDictionary.TryGetValue(key, out var messages))
|
||||
{
|
||||
messages = new List<string>();
|
||||
errorDictionary.Add(key, messages);
|
||||
}
|
||||
messages.Add(message);
|
||||
}
|
||||
|
||||
private bool ValidateEgyHaztartasbanElok(EgyhaztartasbanElokModel model, out Dictionary<string, List<string>> errorDictionary)
|
||||
{
|
||||
errorDictionary = new Dictionary<string, List<string>>();
|
||||
|
||||
foreach (var item in model.Sorok.Where(t => !t.isDeleted))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(item.Nev))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"Nev_{item.RowNumber}", string.Format(FelhasznalokResource.NevKotelezo, item.RowNumber));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(item.AnyjaNev))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"AnyjaNev_{item.RowNumber}", string.Format(FelhasznalokResource.AnyjaNeveKotelezo, item.RowNumber));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(item.SzuletesiHely))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"SzuletesiHely_{item.RowNumber}", string.Format(FelhasznalokResource.SzuletesiHelyKotelezo, item.RowNumber));
|
||||
}
|
||||
|
||||
if (!item.SzuletesiIdo.HasValue)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"SzuletesiIdo_{item.RowNumber}", string.Format(FelhasznalokResource.SzuletesiIdoKotelezo, item.RowNumber));
|
||||
}
|
||||
|
||||
if (item.SzuletesiIdo.HasValue && (item.SzuletesiIdo < DateTime.Today.AddYears(-150) || item.SzuletesiIdo > DateTime.Today))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"SzuletesiIdo_{item.RowNumber}", string.Format(FelhasznalokResource.SzuletesiIdoNemValid, item.RowNumber));
|
||||
}
|
||||
|
||||
if (!item.RokonsagiFok.HasValue)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"RokonsagiFok_{item.RowNumber}", string.Format(FelhasznalokResource.RokonsagiFokKotelezo, item.RowNumber));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(item.Taj))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszamKotelezo, item.RowNumber));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (item.Taj.Length != 9)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszam9Karakter, item.RowNumber));
|
||||
}
|
||||
else if (string.Equals(item.Taj, "000000000", StringComparison.Ordinal))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszamCsupaNulla, item.RowNumber));
|
||||
}
|
||||
else
|
||||
{
|
||||
var tajszam = new int[9];
|
||||
for (var x = 0; x < tajszam.Length; x++)
|
||||
{
|
||||
tajszam[x] = Convert.ToInt32(item.Taj.Substring(x, 1));
|
||||
}
|
||||
|
||||
if ((((tajszam[1] + tajszam[3] + tajszam[5] + tajszam[7]) * 7) + ((tajszam[0] + tajszam[2] + tajszam[4] + tajszam[6]) * 3)) % 10 != tajszam[8])
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszamNemErvenyes, item.RowNumber));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(item.Telefon))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"Telefon_{item.RowNumber}", string.Format(FelhasznalokResource.TelefonszamKotelezo, item.RowNumber));
|
||||
}
|
||||
else
|
||||
{
|
||||
var match = new Regex(RegularExpressions.Telefon).Match(item.Telefon);
|
||||
if (!match.Success)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"Telefon_{item.RowNumber}", string.Format(FelhasznalokResource.TelefonszamHibas, item.RowNumber));
|
||||
}
|
||||
else if (!new PhoneAttribute().IsValid(item.Telefon))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"Telefon_{item.RowNumber}", string.Format(FelhasznalokResource.TelefonszamHibas, item.RowNumber));
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(item.Email))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"Email_{item.RowNumber}", string.Format(FelhasznalokResource.EmailCimKotelezo, item.RowNumber));
|
||||
}
|
||||
else
|
||||
{
|
||||
var tempByteArray = Encoding.GetEncoding(EncodingName.ISO_8859_8).GetBytes(item.Email);
|
||||
var encodedString = Encoding.UTF8.GetString(tempByteArray);
|
||||
if (!encodedString.Equals(item.Email))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"Email_{item.RowNumber}", string.Format(FelhasznalokResource.EmailCimHibas, item.RowNumber));
|
||||
}
|
||||
else if (!new EmailAddressAttribute().IsValid(item.Email))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, $"Email_{item.RowNumber}", string.Format(FelhasznalokResource.EmailCimHibas, item.RowNumber));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return !errorDictionary.Any();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using System.Web.Http;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class RendszerHibaErtesitesApiController : ApiController
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,740 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.Extensions;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Caching;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Exceptions;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.BusinessLogic.Logic.SystemSettings;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Caching.DictionaryItemTables;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
using ModelStateDictionary = System.Web.Http.ModelBinding.ModelStateDictionary;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class SystemSettingsApiController : ApiController
|
||||
{
|
||||
public SortedList<int, SystemSettingGroup> GetSystemSettings()
|
||||
{
|
||||
|
||||
return new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettings(ClaimData.IsVegyes, ClaimData.FeladatKategoriak, ClaimData.IsSzirIntezmeny);
|
||||
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage ResetSystemSettings()
|
||||
{
|
||||
bool result = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).ResetSystemSettings(new List<int>() { (int)RendszerBeallitasTipusEnum.Lazar_Ervin_Program_kezelese });
|
||||
if (result)
|
||||
{
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(439) /*Nem sikerült a művelet!*/);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveSystemSettings(Dictionary<RendszerBeallitasTipusEnum, dynamic> model)
|
||||
{
|
||||
try
|
||||
{
|
||||
ModelStateDictionary modelState = ValidateModel(model);
|
||||
|
||||
if (modelState.IsValid)
|
||||
{
|
||||
new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SetSystemSettings(model, ClaimData.KovTanevID);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, modelState);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(
|
||||
HttpStatusCode.InternalServerError,
|
||||
StringResourcesUtil.GetString(439) /*Nem sikerült a művelet!*/)
|
||||
{
|
||||
UnHandledException = ex
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveGradeWeights(Dictionary<string, string> grades)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<ErtekelesModSulyCo> ertekelesModSulyCoList = grades.Select(grade => new ErtekelesModSulyCo
|
||||
{
|
||||
ErtekelesModId = int.Parse(grade.Key),
|
||||
Suly = int.Parse(grade.Value)
|
||||
}).ToList();
|
||||
|
||||
SessionConnectionType sessionConnetionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var adatszotarHelper = new AdatszotarHelper(sessionConnetionType);
|
||||
foreach (ErtekelesModSulyCo ertekelesModSulyCo in ertekelesModSulyCoList)
|
||||
{
|
||||
AdatszotarCO adatszotarCo = adatszotarHelper.GetAdatszotarElem(ertekelesModSulyCo.ErtekelesModId);
|
||||
adatszotarCo.Suly = ertekelesModSulyCo.Suly;
|
||||
adatszotarHelper.Update(adatszotarCo, ClaimData.KovTanevID);
|
||||
}
|
||||
|
||||
new TanuloErtekelesHelper(sessionConnetionType).UpdateTantargyAtlag();
|
||||
|
||||
KretaServer.KretaServer.Instance.CacheManager.AquireCache<TantargyiAtlagCache>().ClearTantargyiAtlagRegion(sessionConnetionType.IntezmenyAzonosito);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.InternalServerError, StringResourcesUtil.GetString(439) /*Nem sikerült a művelet!*/)
|
||||
{
|
||||
UnHandledException = ex
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteTantargyfelosztas()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ClaimData.IsActivTanev)
|
||||
{
|
||||
var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.FizikaiTorlesTantargyfelosztas();
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
throw new Exception(ErrorResource.NemEgyezikMegAzAktivTanevAKivalasztottTanevvel);
|
||||
}
|
||||
catch (CannotBeDeletedException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteImportaltTantargyfelosztas()
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.DeleteAllTargyFelosztas();
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (CannotBeDeletedException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteOrarendek()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ClaimData.IsActivTanev)
|
||||
{
|
||||
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.FizikaiTorlesOrarendek();
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
throw new Exception(ErrorResource.NemEgyezikMegAzAktivTanevAKivalasztottTanevvel);
|
||||
}
|
||||
catch (CannotBeDeletedException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public ErtekelesModSulyListModel GetGradeWeights()
|
||||
{
|
||||
List<ErtekelesModDictionaryItem> ertekelesModDictionaryItems = EnumExtensions.GetErtekelesModDictionaryItems(ClaimData.SelectedTanevID.Value);
|
||||
|
||||
var model = new ErtekelesModSulyListModel { ErtekelesModSulyList = new List<ErtekelesModSulyModel>() };
|
||||
foreach (var ertekelesModDictionaryItem in ertekelesModDictionaryItems)
|
||||
{
|
||||
model.ErtekelesModSulyList.Add(new ErtekelesModSulyModel { ErtekelesModId = ertekelesModDictionaryItem.Id, ErtekelesModNev = ertekelesModDictionaryItem.Name, Suly = ertekelesModDictionaryItem.Suly, });
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage FejlecCheckBoxMentes(bool isMegjelenit)
|
||||
{
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.SetIntezmenyFejlecCheckBox(isMegjelenit);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage LablecCheckBoxMentes(bool isMegjelenit)
|
||||
{
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.SetIntezmenyLablecCheckBox(isMegjelenit);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage ImageValidate([FromBody] string image)
|
||||
{
|
||||
switch (SystemSettingsLogic.ImageValidate(image))
|
||||
{
|
||||
case Enums.ManualEnums.SystemSettings.SystemSettingsFejlecLablecSzerkesztoHibakEnum.AFajlKiterjeszteseVagyTipusaNemMegfelelo:
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AFajlKiterjeszteseVagyTipusaNemMegfelelo);
|
||||
case Enums.ManualEnums.SystemSettings.SystemSettingsFejlecLablecSzerkesztoHibakEnum.HibaTortentXMBNalNemLehetNagyobbAFajlMerete:
|
||||
throw new StatusError(HttpStatusCode.BadRequest, string.Format(ErrorResource.HibaTortentXMBNalNemLehetNagyobbAFajlMerete, SystemSettingsLogic.MaxFileSizeMB));
|
||||
case Enums.ManualEnums.SystemSettings.SystemSettingsFejlecLablecSzerkesztoHibakEnum.AKepMagassagaMeghaladjaAMegengedettMeretet:
|
||||
throw new StatusError(HttpStatusCode.BadRequest, string.Format(ErrorResource.AKepMagassagaMeghaladjaAMegengedettMeretet, SystemSettingsLogic.AllowedMaxHeight));
|
||||
case Enums.ManualEnums.SystemSettings.SystemSettingsFejlecLablecSzerkesztoHibakEnum.AzOsszesKepSzelessegeMeghaladjaAMegengedettMeretet:
|
||||
throw new StatusError(HttpStatusCode.BadRequest, string.Format(ErrorResource.AzOsszesKepSzelessegeMeghaladjaAMegengedettMeretet, SystemSettingsLogic.AllowedMaxWidth));
|
||||
default:
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
}
|
||||
|
||||
public HttpResponseMessage FejlecMentes(FejlecLablecSzerkesztoModel model)
|
||||
{
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.SetIntezmenyFejlec(model.ToCo());
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage FejlecTorles()
|
||||
{
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.DeleteIntezmenyFejlec();
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
public HttpResponseMessage LablecTorles()
|
||||
{
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.DeleteIntezmenyLablec();
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage LablecMentes(FejlecLablecSzerkesztoModel model)
|
||||
{
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.SetIntezmenyLablec(model.ToCo());
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
private ModelStateDictionary ValidateModel(Dictionary<RendszerBeallitasTipusEnum, dynamic> model)
|
||||
{
|
||||
ModelStateDictionary modelState = new ModelStateDictionary();
|
||||
|
||||
RendszerBeallitasTipusEnum beallitas;
|
||||
|
||||
if (!model[RendszerBeallitasTipusEnum.Osztalyfonok_modosithatja_osztalyaba_jaro_tanulok_adatait])
|
||||
{
|
||||
beallitas = RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_szocialis_tanugyi_es_SNI_BTM_adatait;
|
||||
if (model[beallitas])
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), StringResourcesUtil.GetString(4018) /*A funkció csak akkor engedélyezhető, ha az 'Osztályfőnök módosíthatja osztályába járó tanulók adatait' érték IGEN-re van állítva.*/);
|
||||
}
|
||||
|
||||
beallitas = RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_zaradekat;
|
||||
if (model[beallitas])
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), StringResourcesUtil.GetString(4018) /*A funkció csak akkor engedélyezhető, ha az 'Osztályfőnök módosíthatja osztályába járó tanulók adatait' érték IGEN-re van állítva.*/);
|
||||
}
|
||||
}
|
||||
|
||||
if (!model[RendszerBeallitasTipusEnum.Osztalyfonok_modosithatja_osztalyaba_jaro_tanulok_adatait] || !model[RendszerBeallitasTipusEnum.Tanulo_vallasi_adatainak_kezelese])
|
||||
{
|
||||
beallitas = RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_kezelheti_az_osztalyaba_jaro_tanulok_vallasi_adatait;
|
||||
if (model[beallitas])
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FunkcioNemEngedelyezhetoAdatkezeleseiBeallitasokAlapjan);
|
||||
}
|
||||
}
|
||||
|
||||
if (!model[RendszerBeallitasTipusEnum.Osztalyfonok_modosithatja_osztalyaba_jaro_tanulok_adatait] || !model[RendszerBeallitasTipusEnum.Tanulo_sportoloi_adatainak_kezelese])
|
||||
{
|
||||
beallitas = RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_sportoloi_adatait;
|
||||
if (model[beallitas])
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FunkcioNemEngedelyezhetoAdatkezeleseiBeallitasokAlapjan);
|
||||
}
|
||||
}
|
||||
|
||||
#region Az elektronikus napló megjelenésének kezdőidőpontja és záróidőpontja
|
||||
|
||||
var helper = new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
var ds = helper.GetCsengetesiOrakKezdVeg();
|
||||
|
||||
TimeSpan rendszerKezdes = default;
|
||||
|
||||
beallitas = RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja;
|
||||
if (!model.ContainsKey(beallitas))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.ElektronikusNaploMegjelenesKezdoUres);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (TimeSpan.TryParse(model[beallitas], out rendszerKezdes) && rendszerKezdes.TotalMilliseconds >= 0)
|
||||
{
|
||||
var csengetesiKezdes = ds.Tables[0].Rows[0]["Kezd"].ToString();
|
||||
if (!string.IsNullOrWhiteSpace(csengetesiKezdes) && rendszerKezdes > TimeSpan.Parse(csengetesiKezdes))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), StringResourcesUtil.GetString(4318) + TimeSpan.Parse(csengetesiKezdes) /*Az elektronikus napló megjelenésének kezdőidőpontja legkésőbb a legkorábbi csengetési rendi időpont kezdete lehet. Ennek értéke jelenleg: */);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.ElektronikusNaploMegjelenesKezdoFormatum);
|
||||
}
|
||||
}
|
||||
|
||||
beallitas = RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja;
|
||||
if (!model.ContainsKey(beallitas))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.ElektronikusNaploMegjelenesZaroUres);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (TimeSpan.TryParse(model[beallitas], out TimeSpan rendszerVege) && rendszerVege.TotalMilliseconds >= 0)
|
||||
{
|
||||
var csengetesiVege = ds.Tables[0].Rows[0]["Vege"].ToString();
|
||||
if (!string.IsNullOrWhiteSpace(csengetesiVege) && rendszerVege < TimeSpan.Parse(csengetesiVege))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), StringResourcesUtil.GetString(4319) + TimeSpan.Parse(csengetesiVege) /*Az elektronikus napló megjelenésének záróidőpontja legkorábban a legkésőbbi csengetési rendi időpont vége lehet. Ennek értéke jelenleg: */);
|
||||
}
|
||||
|
||||
if (rendszerKezdes > rendszerVege)
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.ElektronikusNaploMegjelenesKezdoKesobbi);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.ElektronikusNaploMegjelenesZaroFormatum);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Az elektronikus napló megjelenésének kezdőidőpontja és záróidőpontja
|
||||
|
||||
TimeSpan fogadoOraKezdo = default;
|
||||
TimeSpan fogadoOraZaro = default;
|
||||
|
||||
beallitas = RendszerBeallitasTipusEnum.Fogado_Ora_Kezdoidopontja;
|
||||
if (!model.ContainsKey(beallitas))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FogadoOraKezdoUres);
|
||||
}
|
||||
else if (!TimeSpan.TryParse(model[beallitas], out fogadoOraKezdo))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FogadoOraKezdoFormatum);
|
||||
}
|
||||
|
||||
beallitas = RendszerBeallitasTipusEnum.Fogado_Ora_Zaroidopontja;
|
||||
if (!model.ContainsKey(beallitas))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FogadoOraZaroUres);
|
||||
}
|
||||
else if (!TimeSpan.TryParse(model[beallitas], out fogadoOraZaro))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FogadoOraZaroFormatum);
|
||||
}
|
||||
else if (fogadoOraKezdo > fogadoOraZaro)
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FogadoOraKezdoKesobbi);
|
||||
}
|
||||
|
||||
TimeSpan nemKotottKezdete = default;
|
||||
|
||||
beallitas = RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_kezdoidopontja;
|
||||
if (!model.ContainsKey(beallitas))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaidoMegjelenesKezdoUres);
|
||||
}
|
||||
else if (!(TimeSpan.TryParse(model[beallitas], out nemKotottKezdete) && nemKotottKezdete.TotalMilliseconds >= 0))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaidoMegjelenesKezdoFormatum);
|
||||
}
|
||||
|
||||
beallitas = RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_zaroidopontja;
|
||||
if (!model.ContainsKey(beallitas))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaidoMegjelenesZaroUres);
|
||||
}
|
||||
else if (!(TimeSpan.TryParse(model[beallitas], out TimeSpan nemKotottVege) && nemKotottVege.TotalMilliseconds >= 0))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaidoMegjelenesZaroFormatum);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (nemKotottKezdete > nemKotottVege)
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaIdoMegjelenesKezdoKesobbi);
|
||||
}
|
||||
|
||||
if (nemKotottKezdete == nemKotottVege)
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaidoKezdoZaroMegegyezik);
|
||||
}
|
||||
}
|
||||
|
||||
DateTime gyakorlatKezdeteDatum = default;
|
||||
DateTime gyakorlatVegDatum = default;
|
||||
|
||||
beallitas = RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_kezd_datum;
|
||||
if (!model.ContainsKey(beallitas))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.OsszefuggoSzakmaiGyakorlatKezdeteUres);
|
||||
}
|
||||
else if (!DateTime.TryParse(model[beallitas], out gyakorlatKezdeteDatum))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.OsszefuggoSzakmaiGyakorlatKezdeteFormatum);
|
||||
}
|
||||
|
||||
beallitas = RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_veg_datum;
|
||||
if (!model.ContainsKey(beallitas))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.OsszefuggoSzakmaiGyakorlatVegeUres);
|
||||
}
|
||||
else if (!DateTime.TryParse(model[beallitas], out gyakorlatVegDatum))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.OsszefuggoSzakmaiGyakorlatVegeFormatum);
|
||||
}
|
||||
else if (gyakorlatKezdeteDatum > gyakorlatVegDatum)
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.OsszefuggoSzakmaiGyakorlatKezdeteKesobbi);
|
||||
}
|
||||
|
||||
var (kezdoNap, utolsoNap) = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevElsoEsUtolsoNapja();
|
||||
beallitas = RendszerBeallitasTipusEnum.Naplozaras_eves_datuma;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_kezd_datum;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_veg_datum;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.I_Negyedeves_jegyek_megjelenesenek_datuma;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.II_Negyedeves_jegyek_megjelenesenek_datuma;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.III_Negyedeves_jegyek_megjelenesenek_datuma;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.IV_Negyedeves_jegyek_megjelenesenek_datuma;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.Felevi_jegyek_megjelenesenek_datuma;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma_vegzos;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.Ertekeles_datumanak_minimuma;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.Ertesites_bukasra_allo_tanulokrol;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.Ertesites_bukasra_allo_vegzos_tanulokrol;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
beallitas = RendszerBeallitasTipusEnum.Ertesites_Tanev_rendi_valtoztatasrol_esetek;
|
||||
if (model.Keys.Contains(beallitas))
|
||||
{
|
||||
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
|
||||
}
|
||||
|
||||
return modelState;
|
||||
}
|
||||
|
||||
private void DatumEllenorzes(string ertek, DateTime kezdoNap, DateTime utolsoNap, ModelStateDictionary modelState, RendszerBeallitasTipusEnum beallitas)
|
||||
{
|
||||
if (!(DateTime.TryParse(ertek, out DateTime naplozarasEvesDatum)))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), "Rossz dátum formátum");
|
||||
}
|
||||
else if ((naplozarasEvesDatum < kezdoNap) || (naplozarasEvesDatum > utolsoNap))
|
||||
{
|
||||
modelState.AddModelError(beallitas.ToString(), "A beállított dátumnak a tanév első és utolsó napja között kell lennie.");
|
||||
}
|
||||
}
|
||||
|
||||
#region Tanuló Értékelés Mondatbank
|
||||
|
||||
public DataSourceResult GetTanuloErtekelesMondatbankGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))]
|
||||
KretaGridDataSourceRequest request)
|
||||
{
|
||||
data = data.Replace("_", string.Empty);
|
||||
var model = JsonConvert.DeserializeObject<TanuloErtekelesMondatbankSearchModel>(data);
|
||||
|
||||
var helper = new TanuloErtekelesMondatbankHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
||||
{
|
||||
GridParameters = Converter.GridParameter(request)
|
||||
};
|
||||
DataSet dataSet = helper.GetTanuloErtekelesMondatbankGrid(ConvertTanuloErtekelesMondatbankSearchModelToSearchCo(model));
|
||||
|
||||
return dataSet.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveTanuloErtekelesMondatbankItem(TanuloErtekelesMondatbankItemModel model)
|
||||
{
|
||||
ModelState.Merge(model.Validate());
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var helper = new TanuloErtekelesMondatbankHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.SaveTanuloErtekelesMondatbankItem(model.ToCo());
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteTanuloErtekelesMondatbankItem([FromBody] int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new TanuloErtekelesMondatbankHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.DeleteTanuloErtekelesMondatbankItems(new List<int> { id });
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (CannotBeDeletedException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult DeleteSelectedTanuloErtekelesMondatbankItems(List<int> idList)
|
||||
{
|
||||
var helper = new TanuloErtekelesMondatbankHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var (counter, errorMsg) = helper.DeleteTanuloErtekelesMondatbankItems(idList);
|
||||
|
||||
if (counter == idList.Count)
|
||||
return Json(new { Message = errorMsg });
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult SaveSelectedTanuloErtekelesMondatbankItems(TanuloErtekelesMondatbankTobbesItemModel model)
|
||||
{
|
||||
ModelState.Merge(model.Validate());
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var helper = new TanuloErtekelesMondatbankHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var (counter, errorMsg) = helper.ModifyTanuloErtekelesMondatbankItems(model.ToCo());
|
||||
|
||||
if (counter == model.SelectedIdList.Count)
|
||||
return Json(new { Message = errorMsg });
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
|
||||
}
|
||||
|
||||
var a = string.Join(Environment.NewLine, ModelState.Values.Select(x => x.Errors.Select(y => y.ErrorMessage)).Select(z => string.Join(Environment.NewLine, z.ToArray())).ToArray());
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, a);
|
||||
}
|
||||
|
||||
private TanuloErtekelesMondatbankSearchCO ConvertTanuloErtekelesMondatbankSearchModelToSearchCo(TanuloErtekelesMondatbankSearchModel model)
|
||||
{
|
||||
return new TanuloErtekelesMondatbankSearchCO()
|
||||
{
|
||||
EvfolyamTipusIdList = model.EvfolyamTipusIdList,
|
||||
RovidNev = model.RovidNevS,
|
||||
Szoveg = model.SzovegS,
|
||||
TantargyIdList = model.TantargyIdList.Select(x => (tantargyId: x, tipusId: x != 0 ? TanuloErtekelesMondatbankHelper.GetTanuloErtekelesMondatbankTipusIdByTantargyId(x) : (int)ErtMondatbankTipusEnum.Tantargy)).ToList(),
|
||||
TanuloErtekelesTipusIdList = model.TanuloErtekelesTipusIdList,
|
||||
};
|
||||
}
|
||||
|
||||
#endregion Tanuló Értékelés Mondatbank
|
||||
|
||||
#region CsoportTipus
|
||||
|
||||
public List<CsoportTipusModel> GetCsoportTipusList()
|
||||
{
|
||||
List<CsoportTipusCO> csoportTipusList = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportTipusList();
|
||||
|
||||
return csoportTipusList.Select(ConvertCOToModel).ToList();
|
||||
}
|
||||
|
||||
public DataSourceResult GetCsoportTipusGridList([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
List<CsoportTipusCO> csoportTipusList = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportTipusList();
|
||||
return csoportTipusList.Select(ConvertCOToGridModel).ToList().ToDataSourceResult(request);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveCsoportTipusList(List<CsoportTipusModel> model)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
List<CsoportTipusCO> csoportTipusList = model.Select(ConvertModelToCO).ToList();
|
||||
|
||||
new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveCsoportTipusList(csoportTipusList, ClaimData.KovTanevID);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
private CsoportTipusModel ConvertCOToModel(CsoportTipusCO csoportTipus)
|
||||
{
|
||||
return new CsoportTipusModel
|
||||
{
|
||||
Id = csoportTipus.Id,
|
||||
Nev = csoportTipus.Nev,
|
||||
IsTanoraiCelu = csoportTipus.IsTanoraiCelu,
|
||||
IsProtected = csoportTipus.IsProtected,
|
||||
OraPerc = csoportTipus.OraPerc
|
||||
};
|
||||
}
|
||||
|
||||
private CsoportTipusGridModel ConvertCOToGridModel(CsoportTipusCO csoportTipus)
|
||||
{
|
||||
return new CsoportTipusGridModel
|
||||
{
|
||||
ID = csoportTipus.Id.ToString(),
|
||||
Nev = csoportTipus.Nev,
|
||||
IsTanoraiCelu = csoportTipus.IsTanoraiCelu,
|
||||
IsProtected = csoportTipus.IsProtected,
|
||||
OraPerc = csoportTipus.OraPerc
|
||||
};
|
||||
}
|
||||
|
||||
private CsoportTipusCO ConvertModelToCO(CsoportTipusModel csoportTipus)
|
||||
{
|
||||
return new CsoportTipusCO
|
||||
{
|
||||
Id = csoportTipus.Id,
|
||||
Nev = csoportTipus.Nev,
|
||||
IsTanoraiCelu = csoportTipus.IsTanoraiCelu,
|
||||
IsProtected = csoportTipus.IsProtected,
|
||||
OraPerc = csoportTipus.OraPerc
|
||||
};
|
||||
}
|
||||
|
||||
#endregion CsoportTipus
|
||||
|
||||
#region JuttatasAdatok
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public void JuttatasAdatokUjraGeneralasa()
|
||||
{
|
||||
new SzakkepzesiJuttatasokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateOsszesTanuloSzakkepzesiJuttatasok();
|
||||
}
|
||||
|
||||
//[HttpPost]
|
||||
//[ApiValidateAjaxAntiForgeryToken]
|
||||
//public void FeleviAtlagokUjraGeneralasa()
|
||||
//{
|
||||
// new SzakkepzesiJuttatasokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateOsszesTanuloAtlag(AtlagTipusEnum.Felevi);
|
||||
//}
|
||||
|
||||
//[HttpPost]
|
||||
//[ApiValidateAjaxAntiForgeryToken]
|
||||
//public void EvvegiAtlagokUjraGeneralasa()
|
||||
//{
|
||||
// new SzakkepzesiJuttatasokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateOsszesTanuloAtlag(AtlagTipusEnum.Evvegi);
|
||||
//}
|
||||
#endregion
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue