Exemple #1
0
        public async Task <Resume> SaveResumeAsync(ResumeUploadModel resumeUploadModel, string userId)
        {
            // approximately 1 MB
            if (resumeUploadModel.FileLength > 1_000_000)
            {
                throw new ArgumentException("Resume file exceeded maximum size of 1 MB");
            }

            var fileExtension = Path.GetExtension(resumeUploadModel.FileName);

            if (fileExtension != ".pdf")
            {
                throw new ArgumentException("Resume file must be of type pdf");
            }

            var resumeKey = $"resumes/{Guid.NewGuid()}";
            await _resumeStorageService.UploadResumeAsync(resumeUploadModel.FileStream, resumeKey);

            var resume = new Resume
            {
                Name          = resumeUploadModel.Name,
                DateSubmitted = DateTime.Now,
                ResumeFileKey = resumeKey,
                UserId        = userId
            };

            await _resumeRepository.AddAsync(resume);

            await _resumeRepository.SaveChangesAsync();

            return(resume);
        }