public async Task Execute(Entities.FileUpload fileUpload) { _fileUploadContext.FileUpload.Add(fileUpload); int createdRecordCount; try { createdRecordCount = await _fileUploadContext.SaveAsync(); } catch (DbUpdateException due) { // Log throw; } }
private async Task <List <Entities.FileUpload> > SaveUploadedFiles(int projAltId, string srcId, IFormFileCollection files) { var savedFiles = new List <Entities.FileUpload>(); Log.Info("*********************************************PROJECT ALT ID******************************************"); Log.Info(projAltId); Log.Info("*********************************************SRC ID******************************************"); Log.Info(srcId); //var fileNames = new Hashtable(); foreach (var file in files) { /* Save the file to fileshare */ string newfileName, filePath; string newfileKey; try { // Generate a guid to use as a file name newfileKey = Guid.NewGuid().ToString("D"); newfileName = newfileKey + (Path.GetExtension(file.FileName) ?? "").ToLower(); Log.Info("*********************************************NEW FILE NAME******************************************"); Log.Info(newfileName); //Make a Key List //fileNames.Add(newfileKey, file.FileName); var dirPath = _fileService.GetUploadedFileDirectoryName(projAltId, srcId); Log.Info("*********************************************DIR PATH******************************************"); Log.Info(dirPath); if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } filePath = _fileService.GetUploadedFilePath(projAltId, srcId, newfileName); Log.Info("*********************************************FILE PATH******************************************"); Log.Info(filePath); using (var stream = new FileStream(filePath, FileMode.Create)) { await file.CopyToAsync(stream); } } catch (Exception ex) { Log.Error(ex); return(null); } /* Save File object to the DB */ Entities.FileUpload newFile; try { newFile = new Entities.FileUpload { EventUploadId = Guid.Parse(newfileKey), EventSrc = Guid.Parse(srcId), ProjAltId = projAltId, DocumentName = file.FileName, FileSize = file.Length, PrivateInd = "N",//I need to pass a second list to deal with this ActiveInd = "A", UserId = "preicher", UploadDate = DateTime.Now }; await _fileUploads.AddArmsEventUploadAsync(newFile); //await _unitOfWork.SaveAsync(); } catch (Exception ex) { Log.Error(ex); // Cleanup files since save wasn't successful _fileService.TryDeleteFile(filePath); return(null); } savedFiles.Add(newFile); } return(savedFiles); }