private void OnSongListChanged() { if (SongListViewModel != null) { SongListViewModel.InitialSongList(SongList); } }
public IActionResult DetailAlbum(int id) { Album albumfromDb = _applicationDbContext.Albums .Include(x => x.AlbumSongs) .SingleOrDefault(x => x.Id == id); List <SongListViewModel> addSongs = new List <SongListViewModel>(); foreach (var song in albumfromDb.AlbumSongs) { var newSongToAlbum = new SongListViewModel() { Title = song.Titel, Artist = song.Artist, Release = song.Release, Id = song.Id }; addSongs.Add(newSongToAlbum); } DetailAlbumViewModel albumDetail = new DetailAlbumViewModel() { Id = albumfromDb.Id, Cover = albumfromDb.Cover, Title = albumfromDb.Titel, SongsToAddToAlbum = addSongs, }; return(View(albumDetail)); }
public LocalSongListActions(SongListViewModel viewModel) { fileManager = new FirebaseStorageFileManager(); fileManager.OnFileDownloaded += FileManager_OnFileDownloaded; audioPlayer = DependencyService.Get <IAudioPlayer>(); hud = DependencyService.Get <IHud>(); this.viewModel = viewModel; }
public SongListPage() { InitializeComponent(); viewModel = new SongListViewModel(); remotePlayActions = new RemoteSongListActions(viewModel); localPlayActions = new LocalSongListActions(viewModel); ConfigureSongList(); }
public MainViewModel() { SongListViewModel = new SongListViewModel(this); PlayListViewModel = new PlayListViewModel(this); TagsPanelViewModel = new TagsPanelViewModel(this); ControlViewModel = new ControlViewModel(this); SongList = SongListModel.Instance.GetSongsDb(); PlayList = PlayListModel.Instance.LoadSongs(SongList); SelectTagsCommand = new DelegateCommand <Button>(OnSelectTags); ClosingCommand = new DelegateCommand(OnClosing); }
public void LoadSongList() { var paths = SongListOperator.Instance.LoadDirectorySongList(); SongList.Clear(); for (int i = 0; i < paths.Count; i++) { Song song = new Song(paths[i]); SongList.Add(song); if (i % 10 == 0) { SongListViewModel.InitialSongList(SongList); } } }
public async Task <ActionResult> Index(SongListViewModel model) { model.Filter.PageSize = PageSize; model.Filter.AlbumIds = ProcessAlbumIds(model); Session[FilterSessionKey] = model.Filter; Session[AlbumTreesSessionKey] = model.Albums; //TODO: This is soo much inefficient, why and how could we solve this? var allSongs = await SongFacade.GetSongsAsync(new SongFilterDto()); var result = await SongFacade.GetSongsAsync(model.Filter); var newModel = await InitializeSongListViewModel(result, (int)allSongs.TotalItemsCount, model.Albums); return(View("SongListView", newModel)); }
private static Guid[] ProcessAlbumIds(SongListViewModel model) { var selectedAlbumIds = new List <Guid>(); foreach (var song in model.Songs) { foreach (var album in model.Albums) { if (song.AlbumId == album.Id) { selectedAlbumIds.Add(album.Id); } } } return(selectedAlbumIds.ToArray()); }
public IActionResult SongsTable() { SongListViewModel songViewModel = null; try { songViewModel = new SongListViewModel() { SongViews = songService.GetAllSongs() }; } catch (Exception e) { } return(PartialView("_SongsTable", songViewModel)); }
public IActionResult SongsTableGenre(string genre) { SongListViewModel songViewModel = null; try { songViewModel = new SongListViewModel() { SongViews = songService.GetSongsByGenre(genre) }; } catch (Exception e) { } return(View("_SongsTable", songViewModel)); }
public IActionResult Index() { SongListViewModel model = new SongListViewModel(); model.Songs = from s in context.Song join a in context.Artist on s.ArtistId equals a.ArtistId select new SongInfo { Id = s.SongId, Title = s.Title, Released = s.ReleaseDate, Length = s.SongLength, Artist = a.ArtistName }; return(View(model)); }
public MainViewModel() { _viewModels = new ObservableCollection<ViewModelBase>(); _playlistRepository = new PlaylistRepository(); _songRepository = new SongRepository(); _userRepo = new UserRepository(); _playlistListViewModel = new PlaylistListViewModel(_playlistRepository); _songListViewModel = new SongListViewModel(_songRepository); _songViewModel = new SongViewModel(); _menuViewModel = new MenuViewModel(); _viewModels.Add(_playlistListViewModel); _viewModels.Add(_songListViewModel); _viewModels.Add(_songViewModel); _viewModels.Add(_menuViewModel); #region Registering for ViewModel Commands // Listens for a click in menuViewModel Messenger.Default.Register<bool>(this, SetCreatePlaylistViewModel, "CreatePlaylistView"); Messenger.Default.Register<bool>(this, CloseCreatePlaylistView, "CloseCreatePlaylistView"); // Listens for click in menuViewModel Messenger.Default.Register<bool>(this, SetLoginViewModel, "CreateLoginView"); // Listens for LoginUserViewModel to send this message Messenger.Default.Register<bool>(this, CloseLoginViewModel, "CloseLoginView"); // Listens for menuViewModel logout button click Messenger.Default.Register<bool>(this, LogoutUser, "LogoutUser"); // Listens for register button click in MenuViewModel Messenger.Default.Register<bool>(this, SetRegisterViewModel, "CreateRegisterView"); Messenger.Default.Register<bool>(this, CloseRegisterViewModel, "CloseRegisterView"); // Listens for menuviewModel AddNewSong button click Messenger.Default.Register<bool>(this, SetAddNewSongViewModel, "CreateAddNewSongView"); Messenger.Default.Register<bool>(this, CloseAddNewSongViewModel, "CloseAddNewSongView"); // Listenes for menuviewModel EditPlaylist button click Messenger.Default.Register<Playlist>(this, SetEditPlaylistViewModel, "CreateEditPlaylistView"); Messenger.Default.Register<bool>(this, CloseEditPlaylistView, "CloseEditPlaylistView"); // listens for menuviewmodel Edit Song button click Messenger.Default.Register<Song>(this, SetEditSongViewModel, "CreateEditSongView"); Messenger.Default.Register<bool>(this, CloseEditSongView, "CloseEditSongView"); // Listenes for menuvireModel Credits button Messenger.Default.Register<bool>(this, SetCreditTransactionViewModel, "CreateCreditTransactionView"); Messenger.Default.Register<bool>(this, CloseCreditTransactionView, "CloseCreditTransactionView"); // Listens for LoginViewModel successful login, or a RegisterViewModel sucessful registration Messenger.Default.Register<User>(this, LoginUser, "UserLogin"); // Listens for when song is selected, changed, etc Messenger.Default.Register<bool>(this, UserPlayedSong, "UserCreditCheck"); // Listens from MenuViewModel for delete commands Messenger.Default.Register<Playlist>(this, DeletePlaylist, "DeletePlaylist"); Messenger.Default.Register<Song>(this, DeleteSong, "DeleteSong"); #endregion User = new User(); }
public RemoteSongListActions(SongListViewModel viewModel) { this.viewModel = viewModel; }
public SongListPage() { InitializeComponent(); BindingContext = _viewModel = new SongListViewModel(); }
public MainViewModel() { _viewModels = new ObservableCollection <ViewModelBase>(); _playlistRepository = new PlaylistRepository(); _songRepository = new SongRepository(); _userRepo = new UserRepository(); _playlistListViewModel = new PlaylistListViewModel(_playlistRepository); _songListViewModel = new SongListViewModel(_songRepository); _songViewModel = new SongViewModel(); _menuViewModel = new MenuViewModel(); _viewModels.Add(_playlistListViewModel); _viewModels.Add(_songListViewModel); _viewModels.Add(_songViewModel); _viewModels.Add(_menuViewModel); #region Registering for ViewModel Commands // Listens for a click in menuViewModel Messenger.Default.Register <bool>(this, SetCreatePlaylistViewModel, "CreatePlaylistView"); Messenger.Default.Register <bool>(this, CloseCreatePlaylistView, "CloseCreatePlaylistView"); // Listens for click in menuViewModel Messenger.Default.Register <bool>(this, SetLoginViewModel, "CreateLoginView"); // Listens for LoginUserViewModel to send this message Messenger.Default.Register <bool>(this, CloseLoginViewModel, "CloseLoginView"); // Listens for menuViewModel logout button click Messenger.Default.Register <bool>(this, LogoutUser, "LogoutUser"); // Listens for register button click in MenuViewModel Messenger.Default.Register <bool>(this, SetRegisterViewModel, "CreateRegisterView"); Messenger.Default.Register <bool>(this, CloseRegisterViewModel, "CloseRegisterView"); // Listens for menuviewModel AddNewSong button click Messenger.Default.Register <bool>(this, SetAddNewSongViewModel, "CreateAddNewSongView"); Messenger.Default.Register <bool>(this, CloseAddNewSongViewModel, "CloseAddNewSongView"); // Listenes for menuviewModel EditPlaylist button click Messenger.Default.Register <Playlist>(this, SetEditPlaylistViewModel, "CreateEditPlaylistView"); Messenger.Default.Register <bool>(this, CloseEditPlaylistView, "CloseEditPlaylistView"); // listens for menuviewmodel Edit Song button click Messenger.Default.Register <Song>(this, SetEditSongViewModel, "CreateEditSongView"); Messenger.Default.Register <bool>(this, CloseEditSongView, "CloseEditSongView"); // Listenes for menuvireModel Credits button Messenger.Default.Register <bool>(this, SetCreditTransactionViewModel, "CreateCreditTransactionView"); Messenger.Default.Register <bool>(this, CloseCreditTransactionView, "CloseCreditTransactionView"); // Listens for LoginViewModel successful login, or a RegisterViewModel sucessful registration Messenger.Default.Register <User>(this, LoginUser, "UserLogin"); // Listens for when song is selected, changed, etc Messenger.Default.Register <bool>(this, UserPlayedSong, "UserCreditCheck"); // Listens from MenuViewModel for delete commands Messenger.Default.Register <Playlist>(this, DeletePlaylist, "DeletePlaylist"); Messenger.Default.Register <Song>(this, DeleteSong, "DeleteSong"); #endregion User = new User(); }