init
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user