Example #1
0
        /// <summary>
        /// Sync new Playlist with localDb and serverDb
        /// </summary>
        public void initializePlaylist()
        {
            PlaylistsNwManager.PostPlaylist(this);
            PlaylistsManager.db_Add_Update_Record(PlaylistsNwManager.GetPlaylists().FindLast(e => e.name == this.name));
            Playlist temp = PlaylistsManager.db_GetAllPlaylists().FindLast(e => e.name == this.name);

            this.id           = temp.id;
            this.resource_uri = temp.resource_uri;
        }
        /// <summary>
        /// Synchronize locale Database with Server
        /// </summary>
        private void synchronizeDatabase()
        {
            NetworkHandler.SyncLocalDbWithServerDb();

            // Synchronize View with local database
            foreach (Playlist playlist in PlaylistsManager.db_GetAllPlaylists())
            {
                Playlists.Add(playlist.name);
            }
        }
        /// <summary>
        /// Plays a selected playlist from ListView
        /// </summary>
        /// <param name="selectedPlaylist"></param>
        private void playSelectedPlaylist(string selectedPlaylist)
        {
            Playlist currentPlaylist = PlaylistsManager.db_GetAllPlaylists().Find(x => x.name == selectedPlaylist);

            musicplayer.Musicqueue.LoadPlayableContainerInQueue(currentPlaylist);

            //To decide between all Tracks and a Playlist
            SelectAllTracks = false;
            musicplayer.NextTrack();
            musicplayer.PrevTrack();
            playMusic();

            Tracks.Clear();

            CurrentFrame = "TitleView.xaml";

            foreach (Track track in currentPlaylist.Tracks)
            {
                Tracks.Add(new TrackMetadata {
                    Title = track.title
                });
            }
        }
        public MainViewModel()
        {
            musicplayer.Musicqueue.PropertyChanged += TrackChanged;

            // Subscribes to all View Commands
            this.StartPlayerCommand   = new RelayCommand(this.changePlayerState);
            this.PlayPreviousCommand  = new RelayCommand(this.playPrevious);
            this.PlayNextCommand      = new RelayCommand(this.playNext);
            this.PlayerSettingCommand = new RelayCommand(this.setRenderingModeIcon);
            this.BigPlayerCommand     = new RelayCommand(this.createBigPlayerView);
            this.ArtistsCommand       = new RelayCommand(this.createArtistsView);
            this.AlbumsCommand        = new RelayCommand(this.createAlbumsView);
            this.TracksCommand        = new RelayCommand(this.createTracksView);
            this.ListViewCommand      = new RelayCommand <TrackMetadata>((item) => this.playSelectedTrack(item));
            this.PlaylistCommand      = new RelayCommand <string>((item) => this.playSelectedPlaylist(item));
            this.ChangeViewCommand    = new RelayCommand(this.changeView);
            this.LoginCommand         = new RelayCommand(this.openLoginDialog);
            this.SleepCommand         = new RelayCommand(this.controlSleepTimer);
            this.UploadCommand        = new RelayCommand(this.uploadFiles);
            this.DownloadCommand      = new RelayCommand(this.synchronizeDatabase);


            // Set inital values
            _volumn = musicplayer.Mediaplayer.Volume;

            foreach (Playlist playlist in PlaylistsManager.db_GetAllPlaylists())
            {
                Playlists.Add(playlist.name);
            }

            DispatcherTimer timer = new DispatcherTimer();

            timer.Interval = TimeSpan.FromSeconds(1);
            timer.Tick    += timer_Tick;
            timer.Start();
        }