using System; using System.Collections.Generic; 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.Core.KozpontiModels.UzletiTervezesModels; using Kreta.Enums; using Kreta.Resources; using Kreta.Web.Areas.GRModul.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.GRModul.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.GazdasagiUgyintezo.ClaimValue)] public class UzletiTervezesApiController : ApiController { private readonly IKozpontiKretaHelper KozpontiKretaHelper; private readonly Dictionary honapSorszamaByHonap = new Dictionary { { HonapokEnum.Januar, 1 }, { HonapokEnum.Februar, 2 }, { HonapokEnum.Marcius, 3 }, { HonapokEnum.Aprilis, 4 }, { HonapokEnum.Majus, 5 }, { HonapokEnum.Junius, 6 }, { HonapokEnum.Julius, 7 }, { HonapokEnum.Augusztus, 8 }, { HonapokEnum.Szeptember, 9 }, { HonapokEnum.Oktober, 10 }, { HonapokEnum.November, 11 }, { HonapokEnum.December, 12 } }; public UzletiTervezesApiController(IKozpontiKretaHelper kozpontiKretaHelper) { KozpontiKretaHelper = kozpontiKretaHelper ?? throw new ArgumentNullException(nameof(kozpontiKretaHelper)); } public HttpResponseMessage GetUzletiTervek(string data) { var model = JsonConvert.DeserializeObject(data); TanevCO tanevCO; TanevHelper tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); tanevCO = tanevHelper.GetTanevInfo(); DateTime idoszak = GetIdoszak(model.Honap, tanevCO.KezdoNap.Date.Year, tanevCO.UtolsoTanitasiNapVegzos.Date.Year); var result = KozpontiKretaHelper.GetIntezmenyUzletiTerv(new UzletiTervezesIntezmenyRequestModel() { IntezmenyAzonosito = ClaimData.IntezmenyAzonosito, Idoszak = idoszak }); if (result == null) { throw new StatusError(Enums.ManualEnums.CustomHTTPStatusEnum.HibaMiattNincsMegjelenithetoAdat, GRModulResource.KozpontiSzerverNemElerheto); } return Request.CreateResponse(HttpStatusCode.OK, result.ToDataSourceResult(), Configuration.Formatters.JsonFormatter); } public HttpResponseMessage GetAlkalmazottTenyAdatok(string data) { var model = JsonConvert.DeserializeObject(data); TanevCO tanevCO; TanevHelper tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); tanevCO = tanevHelper.GetTanevInfo(); DateTime idoszak = GetIdoszak(model.Honap, tanevCO.KezdoNap.Date.Year, tanevCO.UtolsoTanitasiNapVegzos.Date.Year); var result = KozpontiKretaHelper.GetIntezmenyUzletiTervAlkalmazottaknak(new UzletiTervezesAlkalmazottRequestModel() { IntezmenyAzonosito = ClaimData.IntezmenyAzonosito, Idoszak = idoszak }); if (result == null) { throw new StatusError(Enums.ManualEnums.CustomHTTPStatusEnum.HibaMiattNincsMegjelenithetoAdat, GRModulResource.KozpontiSzerverNemElerheto); } return Request.CreateResponse(HttpStatusCode.OK, result.ToDataSourceResult(), Configuration.Formatters.JsonFormatter); } private DateTime GetIdoszak(HonapokEnum honap, int kezdoNapEv, int utolsoTanitasaNapEv) { DateTime idoszak; switch (honap) { case HonapokEnum.Szeptember: case HonapokEnum.Oktober: case HonapokEnum.November: case HonapokEnum.December: idoszak = new DateTime(kezdoNapEv, honapSorszamaByHonap[honap], 1); break; default: idoszak = new DateTime(utolsoTanitasaNapEv, honapSorszamaByHonap[honap], 1); break; } return idoszak; } } }