72 lines
2.7 KiB
C#
72 lines
2.7 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
using Kreta.BusinessLogic.Helpers.ImportExport;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Core;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.ImportExport.Models.OrarendImportExport;
|
|
using Kreta.Web.Classes;
|
|
using Kreta.Web.Controllers;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.ImportExport.Controllers
|
|
{
|
|
[MvcRoleClaimsAuthorize(true)]
|
|
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
|
|
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public class OrarendAscExcelConvertController : BaseOrarendImportExportController
|
|
{
|
|
#region Properties
|
|
|
|
public static string ConrtollerName => "OrarendAscExcelConvert";
|
|
|
|
#endregion Properties
|
|
|
|
#region Constructors
|
|
|
|
public OrarendAscExcelConvertController(IUploadFileValidator uploadFileValidator)
|
|
{
|
|
UploadFileValidator = uploadFileValidator ?? throw new ArgumentNullException(nameof(uploadFileValidator));
|
|
}
|
|
|
|
#endregion Constructors
|
|
|
|
public ActionResult Index()
|
|
{
|
|
OrarendImportExportModel model = GetImportExportModel();
|
|
return View(model);
|
|
}
|
|
|
|
public JsonResult UploadFile(HttpPostedFileBase importFile)
|
|
{
|
|
UploadFileValidator.ValidateFile(importFile, UploadFileValidator.Configuration.ImportMaxAllowedFileSizeInBytes, UploadFileValidator.Configuration.AscImportAllowedFileExtensions);
|
|
|
|
try
|
|
{
|
|
string fileName = importFile.FileName.Substring(0, importFile.FileName.LastIndexOf('.'));
|
|
MemoryStream memoryStream;
|
|
try
|
|
{
|
|
memoryStream = new AscImportExportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).ConvertAscXmlToExcel(importFile.InputStream);
|
|
}
|
|
catch (BlException e)
|
|
{
|
|
return Json(new { ErrorString = e.Message });
|
|
}
|
|
|
|
Guid guid = Cache.Add(memoryStream);
|
|
string fileString = Url.Action(nameof(CacheController.DownloadFile), nameof(CacheController).Replace("Controller", ""), new { guid, fileName = $"{fileName}.xlsx", contentType = Core.Constants.ContentTypes.Xlsx, area = "" });
|
|
return Json(new { FileString = fileString });
|
|
}
|
|
catch
|
|
{
|
|
return Json(new { ErrorString = ErrorResource.HibaTortentAFajlFeltolteseKozben });
|
|
}
|
|
}
|
|
}
|
|
}
|