using System.Web;
using System.Web.Mvc;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.ImportExport.Models.TanmenetImportExport;
using Kreta.Web.Attributes;
using Kreta.Web.Classes;
using Kreta.Web.Security;

namespace Kreta.Web.Areas.ImportExport.Controllers
{
    [KretaGlobalLanguageChangeActionFilter(LanguageCode = "hu-Dualis")]
    public class TanulasiElemImportExportController : BaseTanmenetImportExportController
    {
        #region Fields

        private const string TovabbUrl = @"~/Tantargy/TanulasiElemek";

        #endregion Fields


        #region Properties

        public static string ControllerName => "TanulasiElemImportExport";

        #endregion

        public TanulasiElemImportExportController(IUploadFileValidator uploadFileValidator, IKretaAuthorization authorization) : base(uploadFileValidator, authorization)
        {
        }

        public ActionResult Index()
        {
            if (!Authorization.IsValidTanulasiElemImportExport())
            {
                return Redirect(Url.Action("AccessDenied", "ErrorHandler", new { area = string.Empty }));
            }

            var model = new TanmenetImportExportModel
            {
                MaxAllowedFileSizeInBytes = UploadFileValidator.Configuration.ImportMaxAllowedFileSizeInBytes,
                AllowedFileExtensions = UploadFileValidator.Configuration.ImportAllowedFileExtensions,
                SzervezetTipusEnum = SzervezetTipusEnum.Dualis,
                ControllerName = ControllerName,
            };

            return View("~/Areas/ImportExport/Views/TanmenetImportExport/Index.cshtml", model);
        }

        public JsonResult UploadFile(HttpPostedFileBase importFile, int? tantargyfelosztasId)
        {
            return UploadFile(importFile, tantargyfelosztasId, true);
        }

        public ActionResult Import()
        {
            return Import(TovabbUrl);
        }
    }
}