using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Web; using System.Web.Mvc; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Interfaces; using Kreta.Resources; using Kreta.Web.Areas.DualisKepzes.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.ModelBinder.Mvc; using Kreta.Web.Security; namespace Kreta.Web.Areas.DualisKepzes.Controllers { public abstract class BaseDualisSzerzodesController : Controller { private readonly IFileServiceHelper _fileServiceHelper; public BaseDualisSzerzodesController(IFileServiceHelper fileServiceHelper) { _fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper)); } public ActionResult Index() { return View("Index"); } [HttpPost] public ActionResult UploadFile([ModelBinder(typeof(AlapdokumentumFileUploadBinder))] IEnumerable<System.Web.HttpPostedFileBase> files, int tanuloId) { if (files != null && files.Any()) { var uploadedFiles = files.ToList(); var helper = new DualisSzerzodesHelper(ConnectionTypeExtensions.GetSessionConnectionType(), _fileServiceHelper); helper.Upload(uploadedFiles[0], ClaimData.IntezmenyGuid.Value, tanuloId); } return Content(""); } [HttpPost] public HttpResponseMessage DeleteFile(int id) { try { new DualisSzerzodesHelper(ConnectionTypeExtensions.GetSessionConnectionType(), _fileServiceHelper).SetFelhasznaloAltalTorolt(id); return new HttpResponseMessage(HttpStatusCode.OK); } catch { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaATorlesSoran); } } public ActionResult DownloadFile(FormCollection form) { var fileId = form["FileIdHiddenField"]; var helper = new DualisSzerzodesHelper(ConnectionTypeExtensions.GetSessionConnectionType(), _fileServiceHelper); var (fajlnev, tartalom) = helper.GetFileData(int.Parse(fileId)); var stream = new MemoryStream(tartalom); var result = File(stream, MimeMapping.GetMimeMapping(fajlnev), fajlnev); return result; } } }