Example #1
0
        public IEnumerable <FileDto> GetFiles(GetFilesCommand command)
        {
            if (command.ReferenceId == Guid.Empty)
            {
                return(null);
            }

            var files = FileRepository.GetFilesByReferenceId(command.ReferenceId);

            if (!string.IsNullOrWhiteSpace(command.ContentType))
            {
                return(files.Where(f => f.ContentType.Contains(command.ContentType)).Select(FileAdapter.ToFileDto).AsEnumerable());
            }

            var fileDtoList = new List <FileDto>();

            Parallel.ForEach(files, file =>
            {
                var url = AzureContainer.GetFileUrl($"{file.Id}_{file.Name}");

                var fileDto = new FileDto()
                {
                    Id          = file.Id,
                    Size        = file.Size,
                    ContentType = file.ContentType,
                    Name        = file.Name,
                    Content     = url
                };

                fileDtoList.Add(fileDto);
            });

            return(fileDtoList.AsEnumerable());
        }