private static void UploadFiles(CsvUploadViewModel upload, string uploadsFolder) { foreach (IFormFile file in upload.Files) { var uniqueFileName = $"{Guid.NewGuid().ToString()}_{file.FileName}"; var filePath = Path.Combine(uploadsFolder, uniqueFileName); using (var stream = new FileStream(filePath, FileMode.Create)) { file.CopyTo(stream); } } }
public async Task <IActionResult> Index(CsvUploadViewModel upload) { if (ModelState.IsValid) { var uploadsFolder = Path.Combine(_hostingEnvironment.WebRootPath, "upload"); if (!Directory.Exists(uploadsFolder)) { Directory.CreateDirectory(uploadsFolder); } if (upload.Files != null && upload.Files.Count > 0) { UploadFiles(upload, uploadsFolder); try { _unitOfWork.BeginTransaction(); foreach (var dbEmail in _reader.Read(uploadsFolder)) { await _dbEmailRepository.Save(dbEmail); } await _unitOfWork.Commit(); } catch (Exception ex) { await _unitOfWork.Rollback(); throw ex; } finally { _unitOfWork.CloseTransaction(); ClearUploadsFolder(uploadsFolder); } } } return(View()); }