134 lines
6.4 KiB
C#
134 lines
6.4 KiB
C#
using System;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Client.KGR;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.Tanulo.Models;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.Tanulo.ApiControllers
|
|
{
|
|
[ApiRoleClaimsAuthorize(true)]
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Tanulo.ClaimValue)]
|
|
public class TanuloApaczaiApiController : ApiController
|
|
{
|
|
private readonly IKGRClient _kgrClient;
|
|
private readonly IKretaAuthorization _authorization;
|
|
|
|
public TanuloApaczaiApiController(IKGRClient kgrClient, IKretaAuthorization authorization)
|
|
{
|
|
_kgrClient = kgrClient ?? throw new ArgumentNullException(nameof(kgrClient));
|
|
_authorization = authorization ?? throw new ArgumentNullException(nameof(authorization));
|
|
}
|
|
|
|
[HttpPost]
|
|
public HttpResponseMessage CreatePalyazat(TanuloApaczaiPalyazatBenyujtasContentModel model)
|
|
{
|
|
if (!_authorization.IsValidTanuloApaczai() && DateTime.Now > Core.Constants.ApaczaiVegeDatum)
|
|
{
|
|
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAzOldalMegtekintesehez);
|
|
}
|
|
|
|
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
|
var intezmenyHelper = new IntezmenyHelper(connectionType);
|
|
var intezmenyAdatok = intezmenyHelper.GetIntezmenyiAdatok();
|
|
var co = model.ConvertToCo();
|
|
co.FenntartoAzonosito = intezmenyAdatok.FenntartoAzonosito;
|
|
co.FenntartoNev = "-";
|
|
co.IntezmenyEgyediAzonosito = intezmenyAdatok.IntezmenyGuid;
|
|
co.IntezmenyNev = intezmenyAdatok.Nev;
|
|
co.IntezmenyAzonosito = intezmenyAdatok.IntezmenyAzonosito;
|
|
co.IdpEgyediAzonosito = ClaimData.FelhasznaloIdpEgyediAzonosito;
|
|
co.ModositoId = ClaimData.FelhasznaloId;
|
|
co.ModositoNev = ClaimData.FelhasznaloNev;
|
|
if (model.AtlagokModel.PalyazatStatusz == ApaczaiPalyazatStatuszEnum.AdategyeztetesreVisszakuldve || model.AtlagokModel.PalyazatStatusz == ApaczaiPalyazatStatuszEnum.FelulvizsgalatrolAdategyeztetesreVisszakuldve)
|
|
{
|
|
try
|
|
{
|
|
var helper = new TanuloApaczaiHelper(connectionType);
|
|
var kgrRequestModel = helper.GetApaczaiPalyazatFelvetelRequest(co, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater);
|
|
if (!helper.ValidateTanuloMentor(kgrRequestModel))
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.PalyazatbenyujtasTiltottMentorAdatHiany);
|
|
}
|
|
if (helper.PalyazatAdategyeztetes(_kgrClient, kgrRequestModel))
|
|
{
|
|
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK };
|
|
}
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.SikertelenApaczaiPalyazatBenyujtas);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, $"{ErrorResource.SikertelenApaczaiPalyazatBenyujtas} ({ex.Message})");
|
|
}
|
|
}
|
|
|
|
try
|
|
{
|
|
var helper = new TanuloApaczaiHelper(connectionType);
|
|
var kgrRequestModel = helper.GetApaczaiPalyazatFelvetelRequest(co, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater);
|
|
if(!helper.ValidateTanuloMentor(kgrRequestModel))
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.PalyazatbenyujtasTiltottMentorAdatHiany);
|
|
}
|
|
if (helper.CreatePalyazat(_kgrClient, kgrRequestModel))
|
|
{
|
|
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK };
|
|
}
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.SikertelenApaczaiPalyazatBenyujtas);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, $"{ErrorResource.SikertelenApaczaiPalyazatBenyujtas} ({ex.Message})");
|
|
}
|
|
}
|
|
|
|
[HttpGet]
|
|
public HttpResponseMessage GetPalyazatVisszavonas()
|
|
{
|
|
try
|
|
{
|
|
if (new TanuloApaczaiHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetPalyazatVisszavonas(_kgrClient, ClaimData.FelhasznaloIdpEgyediAzonosito))
|
|
{
|
|
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK };
|
|
}
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.SikertelenApaczaiPalyazatVisszavonas);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (ex.Data["ApaczaiHiba"] != null)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, null) { Json = ex.Data["ApaczaiHiba"], };
|
|
}
|
|
throw new StatusError(HttpStatusCode.BadRequest, ex.Message, ex);
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
public HttpResponseMessage Fellebbezes([FromBody] string indoklas)
|
|
{
|
|
if (indoklas.Length > Core.Constants.MinMaxValues.MaxApaczaiFellebbezesSzovegHossz)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, string.Format(ErrorResource.ApaczaiFellebezesSzovegMaximalisHossz, Core.Constants.MinMaxValues.MaxApaczaiFellebbezesSzovegHossz));
|
|
}
|
|
try
|
|
{
|
|
if (new TanuloApaczaiHelper(ConnectionTypeExtensions.GetSessionConnectionType()).Fellebbezes(_kgrClient, ClaimData.FelhasznaloIdpEgyediAzonosito, indoklas))
|
|
{
|
|
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK };
|
|
}
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.SikertelenApaczaiPalyazatFellebbezesBenyujtas);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, $"{ErrorResource.SikertelenApaczaiPalyazatFellebbezesBenyujtas}{(!string.IsNullOrWhiteSpace(ex.Message) ? $" ({ex.Message})" : string.Empty)}");
|
|
}
|
|
}
|
|
}
|
|
}
|