public async Task BindModelAsync(ModelBindingContext bindingContext) { if (bindingContext == null) { throw new ArgumentNullException(nameof(bindingContext)); } IFormCollection files = await bindingContext.HttpContext.Request.ReadFormAsync(); UploadTransactionDataRequest result = new UploadTransactionDataRequest(); foreach (var file in files.Files) { ITransactionDataParser parser = _transactionDataParserFactory.CreateParser(file.ContentType); string fileContent = await GetFileContent(file); TransactionDataDto transactionData = parser.Parse(fileContent); result.TransactionData.Transactions.AddRange(transactionData.Transactions); } bindingContext.Result = ModelBindingResult.Success(result); }
public async Task <ActionResult> UploadTransactionDataCustomBinder(UploadTransactionDataRequest request) { ValidationResult validationResult = _validator.Validate(request); if (!validationResult.IsValid) { return(BadRequest(validationResult.ToString())); } try { var transactions = _mapper.Map <IEnumerable <TransactionModel> >(request.TransactionData.Transactions); await _transactionService.AddTransactionsAsync(transactions); return(Ok()); } catch (ArgumentNullException) { return(BadRequest()); } }