using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.ModelBinding; namespace HeartTrackAPI; public class FileUploadSummary { public int TotalFilesUploaded { get; set; } public string TotalSizeUploaded { get; set; } public IList FilePaths { get; set; } = new List(); public IList NotUploadedFiles { get; set; } = new List(); } [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)] public class MultipartFormDataAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext context) { var request = context.HttpContext.Request; if (request.HasFormContentType && request.ContentType.StartsWith("multipart/form-data", StringComparison.OrdinalIgnoreCase)) { return; } context.Result = new StatusCodeResult(StatusCodes.Status415UnsupportedMediaType); } } [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public class DisableFormValueModelBindingAttribute : Attribute, IResourceFilter { public void OnResourceExecuting(ResourceExecutingContext context) { var factories = context.ValueProviderFactories; factories.RemoveType(); factories.RemoveType(); factories.RemoveType(); } public void OnResourceExecuted(ResourceExecutedContext context) { } }