Пример #1
0
        public async Task ViewPlaylistAsync(EduardoContext context, string playlistName)
        {
            if (string.IsNullOrWhiteSpace(playlistName))
            {
                return;
            }

            Models.Playlist playlist = await _playlistRepository.GetPlaylistAsync((long)context.User.Id, playlistName);

            if (playlist == null)
            {
                await context.Channel.SendMessageAsync($"No playlist found with name \"{playlistName}\"");

                return;
            }

            EmbedBuilder playlistBuilder = new EmbedBuilder()
                                           .WithColor(Color.DarkRed)
                                           .WithTitle(playlist.Name)
                                           .WithCurrentTimestamp();

            if (playlist.Songs.Count > 0)
            {
                playlistBuilder = playlistBuilder
                                  .WithFieldsForList(playlist.Songs, x => x.Name, x => x.Url);
            }
            else
            {
                playlistBuilder = playlistBuilder
                                  .WithDescription($"This playlist doesn't contain any songs. Use ```{Constants.CMD_PREFIX}playlist add <playlist name> <song or url>``` to add a song");
            }

            await context.Channel.SendMessageAsync(embed : playlistBuilder.Build());
        }
Пример #2
0
        public void Save(Models.Playlist ply)
        {
            var dbply = PlaylistMapper.ToDatabase(ply);

            _dbContext.Playlist.Add(dbply);
            _dbContext.SaveChanges();
            //Console.WriteLine("\nSAVED");
        }
Пример #3
0
        public async Task <string> GetPlaylistTrackOneUrl(string token, Models.Playlist playlist)
        {
            var tracks = await _playlists.GetTracks(playlist.Id, accessToken : token, limit : 1);

            if (tracks.Total < 1)
            {
                return(null);
            }
            return(tracks.Items[0].Track.ExternalUrls.Spotify);
        }
Пример #4
0
        public PlaylistAddOrUpdateResponseDto AddOrUpdate(PlaylistAddOrUpdateRequestDto request)
        {
            var entity = _repository.GetAll()
                         .FirstOrDefault(x => x.Id == request.Id && x.IsDeleted == false);

            if (entity == null)
            {
                _repository.Add(entity = new Models.Playlist());
            }
            entity.Name = request.Name;
            _uow.SaveChanges();
            return(new PlaylistAddOrUpdateResponseDto(entity));
        }
Пример #5
0
        private static void GetPlaylistWithSongsFromReader(IDataReader reader, ref Models.Playlist playlist)
        {
            if (playlist == null)
            {
                playlist = GetPlaylistFromReader(reader);
            }

            if (reader.IsDBNull(reader.GetOrdinal("SONG_ID")))
            {
                return;
            }

            playlist.Songs.Add(GetSongFromReader(reader));
        }
        void init(Track track = null, Models.Playlist playlist = null)
        {
            NavigationPage.SetHasNavigationBar(this, false);

            // Initialize pages
            this.Children.Add(new MusicPlayer(track, playlist)
            {
                Title = "Hudební přehrávač", IconImageSource = "player_ico.png"
            });
            this.Children.Add(new PlaylistsPage()
            {
                Title = "Playlisty", IconImageSource = "playlist_ico.png"
            });
            //this.Children.Add(new DownloadFromYouTube() { Title = "Stáhnout", IconImageSource = "youtube_ico.png" });
        }
Пример #7
0
        public ActionResult Delete(Guid id, Models.Playlist delPlaylist)
        {
            try
            {
                // TODO: Add delete logic here
                delPlaylist = currentUser.Playlists.Where(s => s.ID == id).FirstOrDefault();
                currentUser.Playlists.Remove(delPlaylist);

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
Пример #8
0
        public ActionResult Create(Models.Playlist newPlaylist)
        {
            try
            {
                // TODO: Add insert logic here
                newPlaylist.ID = Guid.NewGuid();
                currentUser.Playlists.Add(newPlaylist);

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
Пример #9
0
        public ActionResult Edit(Guid id, Models.Playlist upPlaylist)
        {
            try
            {
                // TODO: Add update logic here
                var oldPlaylist = currentUser.Playlists.Where(s => s.ID == id).FirstOrDefault();
                currentUser.Playlists.Remove(oldPlaylist);
                currentUser.Playlists.Add(upPlaylist);

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
Пример #10
0
        public async Task <Models.Playlist> GetPlaylistAsync(long discordUserId, string playlistName)
        {
            AsyncDataReader dr = new AsyncDataReader("PLAYLIST_GetPlaylist", _credentials.DbConnectionString);

            dr.AddParameter("@DiscordUserId", discordUserId);
            dr.AddParameter("@PlaylistName", playlistName);

            Models.Playlist playlist = null;
            await dr.ExecuteReaderAsync(reader =>
            {
                GetPlaylistWithSongsFromReader(reader, ref playlist);

                return(Task.CompletedTask);
            });

            return(playlist);
        }
 /// <inheritdoc/>
 public async Task AddVideosToPlaylistItem(IEnumerable <Models.Video> videos, Models.Playlist playlist)
 {
     // 入力の検証
     foreach (var video in videos)
     {
         try
         {
             // 以下を参考にプレイリストに指定の動画を追加
             // https://github.com/youtube/api-samples/blob/master/dotnet/Google.Apis.YouTube.Samples.Playlists/PlaylistUpdates.cs#L94
             var actualPlaylistItem = new Google.Apis.YouTube.v3.Data.PlaylistItem();
             actualPlaylistItem.Snippet                    = new PlaylistItemSnippet();
             actualPlaylistItem.Snippet.PlaylistId         = playlist.PlaylistId;
             actualPlaylistItem.Snippet.ResourceId         = new ResourceId();
             actualPlaylistItem.Snippet.ResourceId.Kind    = "youtube#video";
             actualPlaylistItem.Snippet.ResourceId.VideoId = video.VideoId;
             _ = await m_YouTubeService !.PlaylistItems.Insert(actualPlaylistItem, "snippet").ExecuteAsync();
         }
         catch
         {
             // エラーが発生した場合は何もしない
         }
     }
 }
 public MainPage(Track track = null, Models.Playlist playlist = null)
 {
     InitializeComponent();
     init(track, playlist);
 }
Пример #13
0
        protected override void Seed(YoutubeSystem.Data.YoutubeDbContext context)
        {
            if (context.Users.Any())
            {
                return;
            }

            var admin = new Models.User()
            {
                FirstName = "peshoq",
                LastName  = "someoneov",
                UserName  = "******"
            };

            for (int i = 1; i <= 5; i++)
            {
                var user = new Models.User()
                {
                    FirstName = $"userFirstName{i}",
                    LastName  = $"userLastName{i}",
                    UserName  = $"user{i}"
                };

                context.Users.Add(admin);
            }

            for (int i = 1; i < 31; i++)
            {
                var cat = new Models.Category()
                {
                    Name = $"category{i}"
                };

                context.Categories.Add(cat);
                context.SaveChanges();
            }

            //var vid = new Models.Video()
            //{
            //    Url = "https://www.youtube.com/watch?v=M46Shg-Wves"
            //};

            //context.Videos.Add(vid);

            //var rate = new Models.Rating()
            //{
            //    Value = 1
            //};

            //context.Ratings.Add(rate);

            for (int i = 1; i < 11; i++)
            {
                var playlist = new Models.Playlist()
                {
                    Title       = $"title{i}",
                    Description = $"desc{i}",
                    Author      = admin,
                    Category    = context.Categories.FirstOrDefault(),
                    DateCreated = DateTime.Now
                };

                //playlist.Videos.Add(vid);
                //playlist.Ratings.Add(rate);

                context.Playlists.Add(playlist);
            }

            try
            {
                context.SaveChanges();
            }
            catch (DbEntityValidationException ex)
            {
                StringBuilder sb = new StringBuilder();

                foreach (var failure in ex.EntityValidationErrors)
                {
                    sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                    foreach (var error in failure.ValidationErrors)
                    {
                        sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                        sb.AppendLine();
                    }
                }

                throw new DbEntityValidationException(
                          "Entity Validation Failed - errors follow:\n" +
                          sb.ToString(), ex
                          ); // Add the original exception as the innerException
            }
        }
Пример #14
0
 public PlaylistDto(Models.Playlist entity)
 {
     Id   = entity.Id;
     Name = entity.Name;
 }
Пример #15
0
 public PlaylistAddOrUpdateResponseDto(Models.Playlist entity)
     : base(entity)
 {
 }