public PlaylistVideoModel GetPlaylistVideoModelById(Guid playlistId) { PlaylistVideoModel playlistVideoModel = new PlaylistVideoModel(); var playlistDetail = _context.TblYoutubeVideoGroups.FirstOrDefault(playlist => playlist.Id == playlistId); if (playlistDetail != null) { playlistVideoModel.playlistDetail = _iMapper.Map <PlayList>(playlistDetail); if (playlistVideoModel.playlistDetail.parentGroupId != null) { var groupName = _context.TblYoutubeVideoGroups.FirstOrDefault(y => y.Id == playlistVideoModel.playlistDetail.parentGroupId)?.GroupName; playlistVideoModel.playlistDetail.parentGroupSelectListItem = new SelectListItemStringModel { text = groupName, value = playlistVideoModel.playlistDetail.parentGroupId.ToString() }; } var playlistVideos = _context.TblYoutubeVideos.OrderBy(x => x.SequenceNumber).Where(video => video.GroupId == playlistDetail.Id && video.IsDeleted != true)?.ToList(); if (playlistVideos != null && playlistVideos.Count > 0) { playlistVideoModel.playlistVideos = _iMapper.Map <List <Video> >(playlistVideos); playlistVideoModel.totalResults = playlistVideoModel.playlistVideos.Count(); } } return(playlistVideoModel); }
public bool isPlaylistAlreadyExist(PlaylistVideoModel playlistVideoModel) { if (_context.TblYoutubeVideoGroups.Any(x => x.Id != playlistVideoModel.playlistDetail.id && x.PlaylistId == playlistVideoModel.playlistDetail.playlistId)) { return(true); } return(false); }
public void ValidatePlaylistModel(PlaylistVideoModel model, ModelStateDictionary ModelState) { if (model.playlistDetail == null) { ModelState.AddModelError("error", "Playlist model does not exist."); return; } if (_youtubeRepository.isPlaylistAlreadyExist(model)) { ModelState.AddModelError("error", $"Playlist with id {model.playlistDetail.playlistId} already exist."); } }
public Guid?SavePlaylist(PlaylistVideoModel playlistVideoModel) { if (playlistVideoModel.playlistDetail != null) { var tblPlaylist = new TblYoutubeVideoGroups(); if (playlistVideoModel.playlistDetail.id != null) { tblPlaylist = _context.TblYoutubeVideoGroups.Where(group => group.Id == playlistVideoModel.playlistDetail.id).FirstOrDefault(); if (tblPlaylist == null) { tblPlaylist = _iMapper.Map <TblYoutubeVideoGroups>(playlistVideoModel.playlistDetail); } } _iMapper.Map(playlistVideoModel.playlistDetail, tblPlaylist); if (playlistVideoModel.playlistDetail.parentGroupSelectListItem != null) { if (!(String.IsNullOrEmpty(playlistVideoModel.playlistDetail.parentGroupSelectListItem.value) || String.IsNullOrWhiteSpace(playlistVideoModel.playlistDetail.parentGroupSelectListItem.value))) { tblPlaylist.ParentGroupId = new Guid(playlistVideoModel.playlistDetail.parentGroupSelectListItem.value); } } if (tblPlaylist.Id == Guid.Empty) { tblPlaylist.CreatedDate = DateTime.Now; tblPlaylist.Id = Guid.NewGuid(); _context.TblYoutubeVideoGroups.Add(tblPlaylist); _context.SaveChanges(); } else { _context.Entry(tblPlaylist).State = Microsoft.EntityFrameworkCore.EntityState.Modified; _context.SaveChanges(); } playlistVideoModel.playlistDetail.id = tblPlaylist.Id; } if (playlistVideoModel.playlistVideos != null) { foreach (var video in playlistVideoModel.playlistVideos) { video.groupId = playlistVideoModel.playlistDetail.id; SaveVideo(video); } } return(playlistVideoModel.playlistDetail.id); }
public PlaylistVideoModel GetVideosByPlaylistId(string playlistId, string apiKey) { var youtubeService = new YouTubeService(new BaseClientService.Initializer() { ApiKey = apiKey, ApplicationName = this.GetType().ToString() }); List <PlaylistItemListResponse> lstPlaylistItemListResponse = new List <PlaylistItemListResponse>(); var playListResponse = new PlaylistItemListResponse(); var nextPageToken = ""; while (nextPageToken != null) { var searchPlaylistRequest = youtubeService.PlaylistItems.List("snippet,contentDetails,id"); searchPlaylistRequest.PlaylistId = playlistId; searchPlaylistRequest.PageToken = nextPageToken; searchPlaylistRequest.MaxResults = 50; playListResponse = searchPlaylistRequest.Execute(); lstPlaylistItemListResponse.Add(playListResponse); nextPageToken = playListResponse.NextPageToken; } var playlistVideoModel = new PlaylistVideoModel(); playlistVideoModel.playlistDetail = new PlayList(); playlistVideoModel.playlistVideos = new List <Models.Video>(); var firstplaylist = 0; foreach (var playlist in lstPlaylistItemListResponse) { if (playlist.Items.Count > 0) { if (firstplaylist == 0) { var firstPlaylist = playlist.Items.First(); playlistVideoModel.playlistDetail.channelId = firstPlaylist.Snippet.ChannelId; playlistVideoModel.playlistDetail.playlistId = firstPlaylist.Snippet.PlaylistId; playlistVideoModel.playlistDetail.groupName = firstPlaylist.Snippet.Title; playlistVideoModel.playlistDetail.groupDescription = firstPlaylist.Snippet.Description; playlistVideoModel.playlistDetail.groupImageUrl = firstPlaylist.Snippet.Thumbnails?.Medium?.Url; playlistVideoModel.totalResults = playlist.PageInfo.TotalResults; playlistVideoModel.playlistDetail.languageId = -1; playlistVideoModel.playlistDetail.genreId = -1; } foreach (var item in playlist.Items) { Models.Video video = new Models.Video(); video.videoId = item.Snippet.ResourceId.VideoId; video.videoName = item.Snippet.Title; firstplaylist = firstplaylist + 1; video.sequenceNumber = firstplaylist; video.imageUrl60 = item.Snippet.Thumbnails?.Standard?.Url; video.imageUrl90 = item.Snippet.Thumbnails?.Medium?.Url; video.imageUrl120 = item.Snippet.Thumbnails?.High?.Url; playlistVideoModel.playlistVideos.Add(video); } } } return(playlistVideoModel); }
public Guid?SavePlaylist(PlaylistVideoModel model) { return(this._youtubeRepository.SavePlaylist(model)); }