Exemplo n.º 1
0
        public void TestFileAllowed()
        {
            var fls = new FileLoading();

            fls.AcceptedFileTypes = new string[] { ".pdf", ".jpg", ".jpeg" };
            Assert.False(fls.isAcceptedFileType("SomeFile.xml"));
            Assert.True(fls.isAcceptedFileType("AnotherFile.jpg"));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> AddFile(int userId, IFormFile file)
        {
            var user = await _userRepo.Get(userId);

            if (user == null)
            {
                return(NotFound($"User with id = {userId} not found."));
            }
            if (file is null)
            {
                return(BadRequest("Null file."));
            }
            if (file.Length == 0)
            {
                return(BadRequest("Empty file."));
            }
            if (_flSettings.MaxBytes < file.Length)
            {
                return(BadRequest($"File is too long. Max allowed length is {_flSettings.MaxBytes}."));
            }
            if (!_flSettings.isAcceptedFileType(file.FileName))
            {
                return(BadRequest($"This file type is not allowed. Allowed extensions are: {_flSettings.AcctptedFileTypesAsString}"));
            }

            var(path, size) = await SaveAndGetRelativePath(userId, file);

            var newFile = new MFile {
                UserId     = userId,
                Name       = file.FileName,
                Size       = size,
                UploadPath = path,
                UploadDate = DateTime.UtcNow
            };

            await _repository.Add(newFile);

            await _unitOfWork.Complete();

            var result = _mapper.Map <MFile, FileResource>(newFile);

            result.User = _mapper.Map <User, UserResource>(user);

            return(Ok(result));
        }