public async Task <ActionResult <OVEAssetModel> > Create( [Bind("Project,Name,Description,Service,AssetMeta")] OVEAssetModel oveAssetModel, [FromForm] IFormFile upload) { // check if we have a file if (upload == null || upload.Length <= 0) { _logger.LogError("failed to upload a file"); ModelState.AddModelError("Filename", "Failed to upload file"); } else if (!_serviceRepository.ValidateServiceChoice(oveAssetModel.Service, upload)) { ModelState.AddModelError("Service", "Service does not support File Type"); } if (ModelState.IsValid) { // then try and save it try { await _fileOperations.Save(oveAssetModel, upload); _logger.LogInformation("received and uploaded a file :) " + oveAssetModel.StorageLocation); } catch (Exception e) { _logger.LogError(e, "failed to upload a file and write it to " + oveAssetModel.StorageLocation); ModelState.AddModelError("StorageLocation", "Failed to upload file"); } } if (ModelState.IsValid) { _context.Add(oveAssetModel); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(this.FormatOrView(oveAssetModel)); }