Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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));
        }