public IActionResult Import([ImportModelBinder] ImportSource source)
 {
     if (source != null && source.FileName != null)
     {
         ViewBag.Message = $"{source.FileName} uploaded, sized {source.FileStream.Length}.";
     }
     return(View());
 }
        public async Task <ModelBindingResult> BindModelAsync(ModelBindingContext bindingContext)
        {
            var request = bindingContext.OperationBindingContext.HttpContext.Request;
            var form    = await request.ReadFormAsync();

            var result = new ImportSource();

            if (form.Files.Count > 0)
            {
                var file = form.Files[0];
                result.FileName   = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName;
                result.FileStream = file.OpenReadStream();
            }
            return(new ModelBindingResult(result, "importSource", result.FileName != null));
        }