예제 #1
0
        /// <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;
            }
        }
예제 #2
0
        public async Task <IActionResult> SaveVideo(SaveLinkVideoDto saveLinkVideoDto)
        {
            var result = await _search.SaveVideo(saveLinkVideoDto);

            return(Ok(result));
        }