public async Task <int> Handle(CreateAudioBookCommand request, CancellationToken cancellationToken) { try { using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { try { var audioBook = new AudioBookInfo() { Name = request.Name, Description = request.Description, ImageBackground = request.ImageBackground, Views = 0, Rate = 0, Duration = 0, CreatedAt = request.RequestAt, CreatedBy = request.RequestBy }; var id = await this._audioBookRepository.InsertAsync(audioBook); foreach (var track in request.Tracks) { var audioBookTrack = new AudioBookTrack() { Name = track.Name, Description = track.Description, PathFile = track.PathFile, Duration = track.Duration, AudioBookId = id, CreatedAt = request.RequestAt, CreatedBy = request.RequestBy }; await this._audioBookTrackRepository.InsertAsync(audioBookTrack); } scope.Complete(); scope.Dispose(); return(await Task.FromResult <int>(id)); } catch { scope.Dispose(); throw; } } } catch { throw; } }
public Book(AudioBookInfo info){ if (info == null) return; Title = info.Album; if (int.TryParse(info.Year, out int year)) { Published = new DateTime(year, 1,1); } Comments = info.Comments; FilePath = info.FilePath; Speech = info.Speech; Nationality = info.Nationality; }
private bool ContainsFile(AudioBookInfo result, FileSystemMetadata file) { return(result.Files.Any(i => ContainsFile(i, file)) || result.AlternateVersions.Any(i => ContainsFile(i, file)) || result.Extras.Any(i => ContainsFile(i, file))); }