private static Model Item(Table item) { try { if (item == null) { throw new ArgumentNullException(nameof(item)); } var output = new Model { Id = item.Id, GeneratedFilename = item.GeneratedFilename, OriginalFilename = item.OriginalFilename }; return(output); } catch (System.Exception ex) { Console.Write(ex.Message); return(null); } }
public async Task <ActionResult> OnPostUpload(IFormFile[] files) { var result = new Result(ResultStatus.Undetermined, string.Empty, null); if (files == null || files.Length <= 0) { result.Status = ResultStatus.Failed; result.Messages = new List <string> { "No files found." }; return(new JsonResult(result)); } try { var dbClientModel = Session.Json.GetObject <ClientModel>(HttpContext.Session, Session.Key.ClientDataModel); if (dbClientModel == null) { result.Status = ResultStatus.Failed; result.Messages = new List <string> { "Session client information not found." }; return(new JsonResult(result)); } var uploadedFiles = new List <UploadModel>(); foreach (IFormFile file in files) { string extension = Path.GetExtension(file.FileName); string originalFilename = file.FileName; UploadModel uploadedFile = await Repository.ProfessionalTranslator.Net.Upload.Client.Item(Guid.Empty, originalFilename); if (uploadedFile == null) { var generatedId = Guid.NewGuid(); uploadedFile = new UploadModel { Id = generatedId, GeneratedFilename = generatedId + extension, OriginalFilename = originalFilename }; } var subfolder = $"uploads/{dbClientModel.Id}"; string ensureFolderPath = Path.Combine(_environment.WebRootPath, subfolder); if (!Directory.Exists(ensureFolderPath)) { Directory.CreateDirectory(ensureFolderPath); } string savePath = Path.Combine(_environment.WebRootPath, subfolder, uploadedFile.GeneratedFilename); await using var fileStream = new FileStream(savePath, FileMode.Create); await file.CopyToAsync(fileStream); fileStream.Close(); await fileStream.DisposeAsync(); uploadedFiles.Add(uploadedFile); } dbClientModel.Uploads = uploadedFiles; Session.Json.SetObject(HttpContext.Session, Session.Key.ClientDataModel, dbClientModel); result.Status = ResultStatus.Succeeded; } catch (Exception ex) { result.Status = ResultStatus.Failed; result.Messages = new List <string> { ex.Message }; } return(new JsonResult(result)); }