/// <inheritdoc /> public async Task <Result> SaveVideo(SaveLinkVideoDto saveLinkVideoDto) { await using var transaction = _context.Database.BeginTransaction(); try { if (saveLinkVideoDto.ProductId != null && saveLinkVideoDto.Videos.Count > 0) { var videos = saveLinkVideoDto.Videos.Select(x => new Video { CategoryId = x.ChanelId, Link = x.Video, PlaylistId = x.PlaylistId, Title = x.Title }); _context.AddRange(videos); _context.SaveChanges(); var product = await _context.Products.FindAsync(saveLinkVideoDto.ProductId); var videoProduct = videos.Select(video => new VideoProduct { Product = product, ProductId = product.Id, Video = video, VideoId = video.Id }); _context.AddRange(videoProduct); _context.SaveChanges(); transaction.Commit(); return(Result.Ok()); } return(Result.Fail( $"Запись видео не удалась. Отсутствует товар с таким идентификатором: {saveLinkVideoDto.ProductId}")); } catch (Exception e) { await transaction.RollbackAsync(); throw; } }
public async Task <IActionResult> SaveVideo(SaveLinkVideoDto saveLinkVideoDto) { var result = await _search.SaveVideo(saveLinkVideoDto); return(Ok(result)); }