69 lines
3 KiB
C#
69 lines
3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|