202 lines
9.7 KiB
C#
202 lines
9.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http;
|
|
using System.Web.Http.Results;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Core;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Framework.Util;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.Orarend.Logic;
|
|
using Kreta.Web.Areas.Orarend.Models;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
|
{
|
|
[ApiRoleClaimsAuthorize(true)]
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public class AdminTanariOrarendApiController : BaseAdminTanariOrarendApiController
|
|
{
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveNemKotottMunkaIdo(NemKotottMunkaidoModel model)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
try
|
|
{
|
|
model.Kezdet = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Kezdet.Value);
|
|
model.Veg = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Veg.Value);
|
|
|
|
var customModelState = NemKotottMunkaidoLogic.CheckCustomValidation(ModelState, model);
|
|
if (!customModelState.IsValid)
|
|
{
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
|
|
}
|
|
|
|
TanevCO tanevCO;
|
|
TanevHelper tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
tanevCO = tanevHelper.GetTanevInfo();
|
|
|
|
NemKotottMunkaidoCO co = NemKotottMunkaidoLogic.ConvertModelToCO(model);
|
|
NemKotottMunkaidoHelper helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
if (model.Id.HasValue && model.Id > 0)
|
|
{
|
|
var lista = new List<int>();
|
|
switch (model.ModositasiIdoszakTipus)
|
|
{
|
|
case (int)OraModositasiIdoszakTipus.TeljesIdoszak:
|
|
helper.UpdateNemKotottMunkaIdoByGroupId(co, tanevCO.OraFelvetelKezdete + co.Kezdete.TimeOfDay, tanevCO.UtolsoTanitasiNap + co.Vege.TimeOfDay);
|
|
break;
|
|
case (int)OraModositasiIdoszakTipus.AdottNaptol:
|
|
helper.UpdateNemKotottMunkaIdoByGroupId(co, co.Kezdete, tanevCO.UtolsoTanitasiNap + co.Vege.TimeOfDay, Guid.NewGuid().ToString());
|
|
break;
|
|
case (int)OraModositasiIdoszakTipus.AdottNapig:
|
|
helper.UpdateNemKotottMunkaIdoByGroupId(co, tanevCO.OraFelvetelKezdete + co.Kezdete.TimeOfDay, co.Vege, Guid.NewGuid().ToString());
|
|
break;
|
|
case (int)OraModositasiIdoszakTipus.EgyOra:
|
|
helper.UpdateNemKotottMunkaIdoByGroupId(co, co.Kezdete, co.Vege, Guid.NewGuid().ToString());
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
co.GroupId = Guid.NewGuid().ToString();
|
|
|
|
var lista = new List<DateTime>();
|
|
switch (model.ModositasiIdoszakTipus)
|
|
{
|
|
case (int)OraModositasiIdoszakTipus.TeljesIdoszak:
|
|
lista = helper.GetNapokForNemKotottMunkaidoInsert(tanevCO.OraFelvetelKezdete, tanevCO.UtolsoTanitasiNap, co.Kezdete.Date, co.HetirendId);
|
|
break;
|
|
case (int)OraModositasiIdoszakTipus.AdottNaptol:
|
|
lista = helper.GetNapokForNemKotottMunkaidoInsert(co.Kezdete.Date, tanevCO.UtolsoTanitasiNap, co.Kezdete.Date, co.HetirendId);
|
|
break;
|
|
case (int)OraModositasiIdoszakTipus.AdottNapig:
|
|
lista = helper.GetNapokForNemKotottMunkaidoInsert(tanevCO.OraFelvetelKezdete, co.Kezdete.Date, co.Kezdete.Date, co.HetirendId);
|
|
break;
|
|
case (int)OraModositasiIdoszakTipus.EgyOra:
|
|
helper.Insert(co);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
foreach (var item in lista)
|
|
{
|
|
co.Kezdete = item.AddHours(co.Kezdete.Hour).AddMinutes(co.Kezdete.Minute);
|
|
co.Vege = item.AddHours(co.Vege.Hour).AddMinutes(co.Vege.Minute);
|
|
|
|
helper.Insert(co);
|
|
}
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch (BlException ex)
|
|
{
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
|
|
}
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public IHttpActionResult UtkozesValidateNemKotottMunkaido(NemKotottMunkaidoModel model)
|
|
{
|
|
var hasUtkozes = Logic.NemKotottMunkaidoLogic.CheckUtkozesValidation(model);
|
|
int tevekenysegutkozesSystemSetting = Logic.NemKotottMunkaidoLogic.GetTevekenysegUtkozesSystemSetting();
|
|
|
|
if (tevekenysegutkozesSystemSetting != (int)TevekenysegUtkozesEnum.UtkozesMegengedett && hasUtkozes)
|
|
{
|
|
if (tevekenysegutkozesSystemSetting == (int)TevekenysegUtkozesEnum.UtkozesNemLehetseges)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.NemKotottMunkaidoFelviteleNemLehetsegesUtkozesMiatt);
|
|
}
|
|
|
|
return Json(new { Valid = false, Text = string.Format(OrarendResource.NemKotottMunkaidoFelviteleNemLehetsegesUtkozesMiattKerdes) });
|
|
}
|
|
return Json(new { Valid = true, Text = string.Empty });
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public IHttpActionResult TorlesValidateNemKotottMunkaido(NemKotottMunkaidoModel model)
|
|
{
|
|
var naplozottNemkotottMunkaidoSzam = NemKotottMunkaidoLogic.GetNaplozottNemkotottMunkaidoSzamByGroupId(model);
|
|
if (naplozottNemkotottMunkaidoSzam > 0)
|
|
{
|
|
return Json(new { Valid = false, Text = string.Format(OrarendResource.AMuveletSoran0DarabNaplozottNemkotottMunkaido, naplozottNemkotottMunkaidoSzam) });
|
|
}
|
|
return Json(new { Valid = true, Text = string.Empty });
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteNemKotottMunkaIdo(NemKotottMunkaidoModel model)
|
|
{
|
|
TanevCO tanevCO;
|
|
TanevHelper tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
tanevCO = tanevHelper.GetTanevInfo();
|
|
|
|
model.Kezdet = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Kezdet.Value);
|
|
model.Veg = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Veg.Value);
|
|
|
|
NemKotottMunkaidoHelper helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
List<int> lista = new List<int>();
|
|
switch (model.ModositasiIdoszakTipus)
|
|
{
|
|
case (int)OraModositasiIdoszakTipus.TeljesIdoszak:
|
|
lista = helper.GetNapokForNemKotottMunkaidoDelete(tanevCO.OraFelvetelKezdete, tanevCO.UtolsoTanitasiNap, model.GroupId);
|
|
break;
|
|
case (int)OraModositasiIdoszakTipus.AdottNaptol:
|
|
lista = helper.GetNapokForNemKotottMunkaidoDelete(model.Kezdet.Value.Date, tanevCO.UtolsoTanitasiNap, model.GroupId);
|
|
break;
|
|
case (int)OraModositasiIdoszakTipus.AdottNapig:
|
|
lista = helper.GetNapokForNemKotottMunkaidoDelete(tanevCO.OraFelvetelKezdete, model.Kezdet.Value.AddDays(1).Date, model.GroupId);
|
|
break;
|
|
case (int)OraModositasiIdoszakTipus.EgyOra:
|
|
helper.Delete(model.Id.Value, isAdmin: true);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
foreach (var item in lista)
|
|
{
|
|
helper.Delete(item, isAdmin: true);
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
|
|
public bool IsTanevRendEsemenyNemKotottMunkaido(CalendarModel model)
|
|
{
|
|
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
return helper.GetVanTanevRendjeEsemenyNemKotottMunkaido(model.Start, model.End);
|
|
}
|
|
|
|
[HttpGet]
|
|
public bool EnabledNemKotottMunkaidoRogzitese(DateTime date)
|
|
{
|
|
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
bool enabledNemKotottMunkaidoRogzitese = tanevrendHelper.EnabledNemKotottMunkaidoRogzitese(date);
|
|
|
|
return enabledNemKotottMunkaidoRogzitese;
|
|
}
|
|
}
|
|
}
|