private (bool error, string message, long uploadFileId) UploadFile(UploadFileDto.Request item, User user) { long uploadFileId = 0; var fileGuid = Guid.NewGuid(); var fileExtension = Path.GetExtension(item.File.FileName); var fileUri = $"{item.Type.GetDirectoryName()}/{user.Guid.ToString("N")}"; var filePath = $"{uploadFilePath}/{fileUri}"; if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } try { using (var stream = new FileStream(Path.Combine(filePath, string.Concat(fileGuid, fileExtension)), FileMode.Create)) { item.File.CopyTo(stream); } fileUri = $"{fileUri}/{fileGuid}{fileExtension}"; Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry <UploadFile> newEntity = _wordMeisterDbContext.UploadFiles.Add(new Model.UploadFile { CreatedDate = DateTime.Now, Description = item.Description, Extension = fileExtension, Guid = fileGuid, OriginalName = item.File.FileName, Status = true, Type = (int)item.Type, Uri = fileUri, UserId = user.Id, }); _wordMeisterDbContext.SaveChanges(); uploadFileId = newEntity.Entity.Id; } catch (Exception ex) { return(new(true, ex.Message, uploadFileId)); } return(new(false, string.Empty, uploadFileId)); }
public IActionResult UploadFile([FromForm] UploadFileDto.Request model) { return(Ok(_userService.UploadFiles(new List <UploadFileDto.Request> { model }, User.GetUserId()))); }