public async Task <IActionResult> Create([FromForm] UploadQueueItemVm data) { var files = Request.Form.Files; if (files.Count < 1) { return(BadRequest(new { message = nameof(Resource.NoFilesAttached) })); } await _svc.CreateAsync(files, data, User.GetUserId()); return(Ok()); }
public async Task CreateAsync(IFormFileCollection files, UploadQueueItemVm data, string userId) { var today = DateTime.Now; var path = Path.Combine( Path.GetFullPath(_rootPath), _uploadDir, today.Year.ToString(), today.Month.ToString(), today.Day.ToString()); try { Directory.CreateDirectory(path); foreach (var file in files) { var filePath = Path.Combine(path, Guid.NewGuid().ToString()); using (var fileStream = new FileStream(filePath, FileMode.Create)) { await file.CopyToAsync(fileStream); _dbContext.DataSourceQueues.Add(new DataSourceQueue { UserId = userId, DataSourcePath = filePath, DataSourceFileName = file.FileName, DataSourceId = data.DataSourceId, Description = data.Description, StartImportDate = today, EndImportDate = DateTime.Now, Status = DataSourceQueueStatuses.InQueue, }); } } await _dbContext.SaveChangesAsync(); } catch (Exception e) { throw new BadRequestException(nameof(Resource.CantStoreFile), e); } }