45 lines
1.6 KiB
C#
45 lines
1.6 KiB
C#
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<string> 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)));
|
|
}
|
|
}
|
|
}
|
|
}
|