Example #1
0
        public FileDataContract DownloadWholeAudioBook(DownloadWholeBookContract requestContract)
        {
            m_authorizationManager.AuthorizeBook(requestContract.BookId);
            var audioType = (AudioType)requestContract.RequestedAudioType;
            var book      = m_bookVersionRepository.GetBookWithLastVersion(requestContract.BookId);

            FullBookRecording recording = m_bookVersionRepository.GetFullBookRecording(book.LastVersion.Id, audioType);

            if (recording == null)
            {
                var message =
                    $"Cannot locate full book recording archive for book:'{requestContract.BookId}' of requested type:'{requestContract.RequestedAudioType}'";
                if (m_log.IsErrorEnabled)
                {
                    m_log.ErrorFormat(message);
                }
                throw new ArgumentException(message);
            }

            var stream = m_fileSystemManager.GetResource(book.Guid, book.LastVersion.VersionId, recording.FileName, ResourceType.Audio);

            return(new FileDataContract
            {
                FileName = recording.FileName,
                FileData = stream,
                MimeType = recording.MimeType,
            });
        }
Example #2
0
        private void PackAllBookAudioArchives(ResourceSessionDirector resourceSessionDirector, Dictionary <AudioType, List <TrackRecording> > recordings, BookVersion bookVersionEntity)
        {
            bookVersionEntity.FullBookRecordings = new List <FullBookRecording>();

            foreach (var audioType in recordings.Keys)
            {
                var allBookArchive = GenerateFullBookArchive(recordings[audioType], bookVersionEntity, audioType, resourceSessionDirector);
                resourceSessionDirector.Resources.Add(allBookArchive);
                var entity = new FullBookRecording
                {
                    BookVersion = bookVersionEntity,
                    AudioType   = audioType,
                    FileName    = allBookArchive.FileName,
                    MimeType    = MimeType
                };

                bookVersionEntity.FullBookRecordings.Add(entity);
            }
        }