using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Web; using Kreta.Resources; using Kreta.Web.Configuration; using Kreta.Web.Helpers.Error; namespace Kreta.Web.Classes { public class UploadFileValidator : IUploadFileValidator { public IUploadFileValidationConfiguration Configuration { get; } public UploadFileValidator(IUploadFileValidationConfiguration configuration) { Configuration = configuration; } public void ValidateImportFile(HttpPostedFileBase importFile) { ValidateFile(importFile, Configuration.ImportMaxAllowedFileSizeInBytes, Configuration.ImportAllowedFileExtensions); } public void ValidateAscImportFile(HttpPostedFileBase importFile) { ValidateFile(importFile, Configuration.ImportMaxAllowedFileSizeInBytes, Configuration.AscImportAllowedFileExtensions); } public void ValidateFile(HttpPostedFileBase file, int maxAllowedFileSizeInBytes, IEnumerable allowedFileExtensions) { if (file.ContentLength > maxAllowedFileSizeInBytes) { throw new StatusError(HttpStatusCode.BadRequest, string.Format(CommonResource.TulNagyFajl, Math.Round((decimal)maxAllowedFileSizeInBytes / 1024 / 1024))); } if (!allowedFileExtensions.Contains(Path.GetExtension(file.FileName).ToLower())) { throw new StatusError(HttpStatusCode.BadRequest, string.Format(CommonResource.NemMegfeleloFajlKiterjesztes, string.Join(", ", allowedFileExtensions))); } } } }