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 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("Kezdete").TimeOfDay : TimeSpan.Zero, Vege = data.Count > 0 ? data[0].Field("Vege").TimeOfDay : TimeSpan.Zero }; return Json(ora); } public List GetHetirendList() { var dictionary = FrameworkEnumExtensions.EnumToList((int) GeneratedAdatszotarTipusEnum.HetiRendTipus, ClaimData.SelectedTanevID.Value, false); List list = new List(); 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; } } }