199 lines
7.5 KiB
C#
199 lines
7.5 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
|
|
{
|
|
public class BaseAdminTanariOrarendApiController : ApiController
|
|
{
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveOrarendiOra(OrarendiOraModel model)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
{
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
OrarendiOraLogic.SetOraKezdetekAndOraVegek(model);
|
|
|
|
var customModelState = OrarendiOraLogic.CheckCustomValidation(ModelState, model);
|
|
if (!customModelState.IsValid)
|
|
{
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
|
|
}
|
|
|
|
try
|
|
{
|
|
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
orarendiOraHelper.CheckUtkozesValidationAndSaveOrUpdateOrarendiOrak(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model), ClaimData.FelhasznaloId);
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch (BlException ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
|
}
|
|
|
|
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.AzOrarendiOratNemLehetModositaniMertMarTartozikHozzaNaplozottOra);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage PreValidationOrarendiOra(OrarendiOraModel model)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
{
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
OrarendiOraLogic.SetOraKezdetekAndOraVegek(model);
|
|
|
|
var customModelState = OrarendiOraLogic.CheckCustomValidation(ModelState, model);
|
|
if (!customModelState.IsValid)
|
|
{
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
|
|
}
|
|
|
|
var utkozesValidationMsg = OrarendiOraLogic.CheckUtkozesValidation(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model), !model.ID.HasValue ? "OrarendiOrak.Save();" : "OrarendiOrak.ModConfirmSave();", isPrevalidation: true);
|
|
|
|
if (utkozesValidationMsg.ErrorMsg.Length > 0)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, utkozesValidationMsg.ErrorMsg);
|
|
}
|
|
|
|
if (utkozesValidationMsg.Msg.Length > 0)
|
|
{
|
|
throw new StatusError(CustomHTTPStatusEnum.WarningMegszakitas, string.Empty) { Json = utkozesValidationMsg };
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage PreValidationDeleteOrarendiOra(OrarendiOraModel model)
|
|
{
|
|
OrarendiOraLogic.SetOraKezdetekAndOraVegek(model);
|
|
|
|
var utkozesValidationMsg = OrarendiOraLogic.CheckUtkozesValidation(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model), "OrarendiOrak.deleteOrarendiOra();", isPrevalidation: true, isForDelete: true);
|
|
|
|
if (utkozesValidationMsg.Msg.Length > 0)
|
|
{
|
|
throw new StatusError(CustomHTTPStatusEnum.WarningMegszakitas, string.Empty) { Json = utkozesValidationMsg };
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteOrarendiOra(OrarendiOraModel model)
|
|
{
|
|
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
bool torlesSikeres = orarendiOraHelper.DeletOrarendiOra(model.ID.Value, model.ModositasiIdoszakTipus, model.ModificationDate);
|
|
|
|
if (torlesSikeres)
|
|
{
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.OrarendiOraNemTorolhetoMivelATorlendoIdoszakbanMarVanNaplozottOra);
|
|
}
|
|
|
|
public int GetOraszam(int Id, CalendarOraTypeEnum calendarEnum)
|
|
{
|
|
var helper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
return helper.GetOraszamByOrarendiOra(Id, calendarEnum);
|
|
}
|
|
|
|
public string GetTanarokNeve(string id)
|
|
{
|
|
return int.TryParse(id, out int fID) && fID.IsEntityId()
|
|
? new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanarokTanoranKivuliFoglalkozashoz(fID)
|
|
: string.Empty;
|
|
}
|
|
|
|
|
|
[HttpGet]
|
|
public bool IsOrarendiNap(DateTime date)
|
|
{
|
|
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
bool isOrarendiNap = tanevrendHelper.IsOrarendiNap(date, null);
|
|
|
|
return isOrarendiNap;
|
|
}
|
|
|
|
[HttpGet]
|
|
public bool HasTanitasiNap(DateTime date)
|
|
{
|
|
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
bool isOrarendiNap = tanevrendHelper.IsOrarendiNap(date, null);
|
|
|
|
return isOrarendiNap || tanevrendHelper.HasTanitasiNap(date);
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult<OraCO> GetCsengetesiRendEsOrak(CsengetesiRendOraszamaModel csengetesiRend)
|
|
{
|
|
var helper = new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var data = helper.GetCsengetesiRendEsOrak(csengetesiRend.AktualisCsengetesiRendId, csengetesiRend.AktualisOraSzam).Tables[0].Rows;
|
|
|
|
var ora = new OraCO
|
|
{
|
|
Kezdete = data.Count > 0 ? data[0].Field<DateTime>("Kezdete").TimeOfDay : TimeSpan.Zero,
|
|
Vege = data.Count > 0 ? data[0].Field<DateTime>("Vege").TimeOfDay : TimeSpan.Zero
|
|
};
|
|
|
|
return Json(ora);
|
|
}
|
|
|
|
public List<System.Web.Mvc.SelectListItem> GetHetirendList()
|
|
{
|
|
var dictionary = FrameworkEnumExtensions.EnumToList((int)
|
|
GeneratedAdatszotarTipusEnum.HetiRendTipus, ClaimData.SelectedTanevID.Value, false);
|
|
List<System.Web.Mvc.SelectListItem> list = new List<System.Web.Mvc.SelectListItem>();
|
|
|
|
foreach (var item in dictionary)
|
|
{
|
|
System.Web.Mvc.SelectListItem sli = new System.Web.Mvc.SelectListItem() { Text = item.Value, Value = item.Key };
|
|
list.Add(sli);
|
|
}
|
|
|
|
return list;
|
|
}
|
|
|
|
[HttpGet]
|
|
public int GetOsztalyCsoportTerem(int? osztalyCsoportId)
|
|
{
|
|
if (osztalyCsoportId > 0)
|
|
{
|
|
return new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportTeremId(osztalyCsoportId.Value);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
}
|
|
}
|