This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,69 @@
using System;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core;
using Kreta.Core.Iktato.Poszeidon.Factory.Interface;
using Kreta.Resources;
using Kreta.Web.Helpers;
namespace Kreta.Web.Controllers
{
public class FileDownloadController : ApiController
{
private readonly IIktatoRepositoryFactory iktatoRepositoryFactory;
private readonly IktatoServiceConfiguration iktatoServiceConfiguration;
public FileDownloadController(IIktatoRepositoryFactory iktatoRepositoryFactory, IktatoServiceConfiguration iktatoServiceConfiguration)
{
this.iktatoRepositoryFactory = iktatoRepositoryFactory;
this.iktatoServiceConfiguration = iktatoServiceConfiguration;
}
[HttpGet]
[AllowAnonymous]
public HttpResponseMessage GetAlapdokumentum(string tipusNev)
{
try
{
var dokumentumTipus = (Enums.DokumentumTipusEnum)Enum.Parse(typeof(Enums.DokumentumTipusEnum), tipusNev);
switch (dokumentumTipus)
{
case Enums.DokumentumTipusEnum.AlapitoOkirat:
case Enums.DokumentumTipusEnum.SzervezetiEsMukodesiSzabalyzat:
case Enums.DokumentumTipusEnum.Munkaterv:
case Enums.DokumentumTipusEnum.PedagogiaiProgram:
case Enums.DokumentumTipusEnum.Hazirend:
case Enums.DokumentumTipusEnum.mukodesi_engedely:
break;
default:
ModelState.AddModelError("tipusNev", ErrorResource.NincsIlyenTipusuAlapdokumentum);
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
var connectionType = ConnectionTypeExtensions.GetOrganizationConnectionType();
var pHelper = new PoszeidonHelper(connectionType, iktatoRepositoryFactory, iktatoServiceConfiguration);
var tanevId = dokumentumTipus == Enums.DokumentumTipusEnum.Munkaterv ? connectionType.TanevId : (int?)null;
var dokumentumCO = pHelper.IntezmenyiKotelezoDokumentumPublikus(tanevId, dokumentumTipus);
var iktatottDokumentumId = dokumentumCO.IktatottDokumentumId;
if (!iktatottDokumentumId.IsEntityId())
{
ModelState.AddModelError("tipusNev", ErrorResource.NincsIlyenAlapDokumentumAzIntezmenynel);
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
(string fajlnev, byte[] tartalom) = pHelper.Lekeres(iktatottDokumentumId.ToString());
return HttpResponseExtensions.GetFileHttpResponse(tartalom, fajlnev);
}
catch
{
ModelState.AddModelError("tipusNev", ErrorResource.NincsIlyenTipusuDokumentum);
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
}
}
}